首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >铬对齐-项目:选择和输入元素的基线

铬对齐-项目:选择和输入元素的基线
EN

Stack Overflow用户
提问于 2016-09-26 10:18:30
回答 2查看 1.4K关注 0票数 4

我使用flex构建了一个表单,它在Firefox、Edge和IE11中工作得很好。

不幸的是,在Chrome中,跨度中的文本并不是一致的。如果后面跟着一个select,这是很好的,但是当后面跟着一个输入时,文本看起来是对齐的底部,而不是基线。

我使用基线而不是中心来解释可能不同的字体大小。

在Chrome中的不正确布局

在FF中的正确布局

我简化了我的代码并将其发布到http://codepen.io/rachelreveley/pen/jrmbJP

代码语言:javascript
复制
form,
fieldset {
  display: flex;
  flex-direction: column;
}
label {
  display: flex;
  align-items: baseline;
  flex-direction: row;
  justify-content: flex-start;
  padding: .3rem 0;
  flex-wrap: wrap;
}
fieldset span {
  text-align: right;
  padding: 0 1rem 0 0;
}
input,
select,
textarea {
  padding: .5rem;
}
代码语言:javascript
复制
<form>
  <fieldset>
    <label>
      <span>Label</span>
      <input type="text" />
    </label>
    <label>
      <span>Label</span>
      <select>
        <option value="" selected="" disabled=""></option>
        <option value="Mr">Mr</option>
        <option value="Dr">Dr</option>
        <option value="Miss">Miss</option>
        <option value="Mrs">Mrs</option>
        <option value="Ms">Ms</option>
        <option value="Ms">Mx</option>
        <option value="Other">Other</option>
      </select>
    </label>
  </fieldset>
</form>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-26 10:21:19

您需要将placeholder=" "添加到您的输入中,它们将完美地对齐。

票数 -2
EN

Stack Overflow用户

发布于 2016-09-26 10:29:03

这是因为align-items: baseline;。而是使用align-items: center;

下面是更新的码页

代码语言:javascript
复制
form,
fieldset {
  display: flex;
  flex-direction: column;
}
label {
  display: flex;
  align-items: center;
  flex-direction: row;
  justify-content: flex-start;
  padding: .3rem 0;
  flex-wrap: wrap;
}
fieldset span {
  text-align: right;
  padding: 0 1rem 0 0;
}
input,
select,
textarea {
  padding: .5rem;
}
代码语言:javascript
复制
<form>
  <fieldset>
    <label>
      <span>Label</span>
      <input type="text" />
    </label>
    <label>
      <span>Label</span>
      <select>
        <option value="" selected="" disabled=""></option>
        <option value="Mr">Mr</option>
        <option value="Dr">Dr</option>
        <option value="Miss">Miss</option>
        <option value="Mrs">Mrs</option>
        <option value="Ms">Ms</option>
        <option value="Ms">Mx</option>
        <option value="Other">Other</option>
      </select>
    </label>
  </fieldset>
</form>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39700227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档