我在-webkit和其他浏览器之间的select元素上发现了这种不一致的行为。元素内文本的间距与其他输入元素不一致。 (请参见示例)。所选内容的左侧额外有〜2px间距。因此不会与上面的输入元素水平对齐。
Chrome 效果很好,元素中的文本水平对齐。
Firefox 不能与上面的输入完全水平对齐。
元素上的填充相同。除了-webkit浏览器之外,select元素中仅存在我无法解释的间距。我已经检查了它:
FF,Edge和IE11的间距(对我而言)无法解释。没有文字缩进,没有什么可以解释这个额外的空间。
这是我(简体)的css作为输入,然后选择
html {
font-size: 93.75%;
line-height: 2;
min-height: 100%;
webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
}
body {
margin: 0;
padding: 0;
position: relative;
background-color: #fff;
}
* {
box-sizing: border-box;
}
.form
{
background: #f1f1f1;
padding: 15px;
margin: 30px;
max-width: 250px;
border-radius: 3px;
}
.form__group + .form__group
{
margin-top: 10px;
}
input[type="text"], input[type="email"], input[type="tel"], input[type="password"] {
border: 1px solid #999;
padding: 6.5px 14px;
margin: 0;
width: 100%;
border-radius: 0;
-webkit-appearance: none;
line-height: inherit;
border-radius: 3px;
height: 3rem;
font-size: 14px;
line-height: 24px;
}
select {
font-size: 14px;
line-height: 24px;
-webkit-appearance: none;
-webkit-padding-end: 29px !important;
-webkit-padding-start: 14px !important;
-moz-appearance: none;
-o-appearance: none;
appearance: none;
border: 1px solid #999;
padding: 6.5px 29px 6.5px 14px;
margin: 0;
width: 100%;
outline: 0;
border-radius: 3px;
background: #fff;
color: #484A4E;
cursor: pointer;
height: 3rem;
background-size: 30px 50px;
background-position: right center;
background-repeat: no-repeat;
background-image: url(data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lJyB2aWV3Q…lsZT0nZmlsbDojREZFNEVDOycgcG9pbnRzPScxNSwxNyAxMCwyMiAyMCwyMicvPjwvc3ZnPg==);
}
<div class="form">
<div class="form__group">
<input type="text" name="example-input" value="" placeholder="Example input" />
</div>
<div class="form__group">
<select name="example-select">
<option value="">Example select</option>
<option value="example">Example select item</option>
<option value="another">Another one</option>
</select>
</div>
</div>
更新08/2018
经过一番头痛并在网上搜索后,我发现了两个答案here和here,似乎可以“回答”我的问题。答案就像我认为的浏览器渲染不一致一样。不幸的是,没有简单的CSS方法可以解决该问题。
答案 0 :(得分:0)
请遵循基本准则。
* {box-sizing: border-box; padding: 0;margin: 0;}