求问css如何对齐文本与文本输入框

html-css08

求问css如何对齐文本与文本输入框,第1张

中文字符的中线和英文字符的中线定义是不一样的,你在设置输入框与文本居中对齐的时候,最好将文本的字体样式设置成英文字体,比如font-family:Verdana这样有助于解决中线问题。然后再给输入框添加vertical-align:middle样式。

注意,由于涉及到中线问题,所以字号会影响对齐的效果。例子就不举了,你可以改变字号(12px、13px等)自己尝试一下。追问:

你所说的中线是指删除线吗????字号是指h1~h6吗??回答:

不是,中线指的是字体的中间的位置(居中的时候中线是对齐的,它是观察对象是否对齐的参考,并不是一条存在的线)

字号是指字的大小,在这里我是用像素表示的。

h1~h6不是用来表示字号的。它是用来修饰标题的。追问:

其实..整个的兼容问题是不是想将文本框和文本垂直对其在某个div的高度。。。是吗?回答:

不是,这里的对齐只是文本和文本框的对齐。追问:

嗯。。。这个vertical-align:middle是给文本框定义的?这个font-family:Verdana是给文本定义的?回答:是的。追问:

我还有一个~~~哈哈~~真的不好意思~~你叫回答这么多个问题。。。。。。

<style>

/*flex布局*/

  .row{

    display: flex

    flex-direction: row

  }

  .row > label{

    width: 100px

  }

  .row > .auto{

    flex:1

  }

  /*常规布局*/

.row:after{

  height: 0

  display: block

  clear: both

}

.row > label{

  width: 20%

  float: left

}

.row > .auto{

  width: 75%

  float: right

}

</style>

<div class="row">

  <label>1</label>

  <input class="auto" type="text" />

</div>

<div class="row">

  <label>1</label>

  <input class="auto" type="text" />

</div>

<div class="row">

  <label>1</label>

  <input class="auto" type="text" />

</div>

<div class="row">

  <label>1</label>

  <input class="auto" type="text" />

</div>

上面的flex布局有兼容性,某些浏览器不支持。

如果是左右对齐,用 text-align:left/center/right (左对齐,中对齐,右对齐)

如果是上下对齐,用 line-height:30px(你文本框的高度)