Moj*_*imi 7 html css css3 twitter-bootstrap bootstrap-4
简而言之,这个小提琴在Firefox上运行正常,但在Chrome上却没有.
输入与选择具有相同的样式,应该是相同的高度,但它不在Chrome上,我该如何解决这个问题?
经过进一步检查,它似乎与溢出属性有关,不知道为什么
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
.my-custom-forms {
font-family: 'Open Sans',serif;
}
select.my-custom-forms, input.my-custom-forms{
border-top: none;
border-left: none;
border-right: none;
border-radius: 0;
border-bottom: 2px solid lightblue;
padding: .25rem .1rem .25rem .1rem;
overflow: auto;
width: 100%;
background-color: transparent;
transition: border .5s ease;
}Run Code Online (Sandbox Code Playgroud)
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container m-3">
<div class="row">
<div class="col-3">
<select class="my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-3">
<select class="my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-6">
<input placeholder="text" class="my-custom-forms">
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我使用Bootstrap作为准系统,但不确定它是否与问题有关.
问题在于用户代理样式表上定义的元素overflow: visible !important。<select>您不能使用<select>元素本身的 CSS 或内联样式来覆盖此规则。
以下 CSS 规则始终有效:
select:not(:-internal-list-box) {
overflow: visible !important;
}
Run Code Online (Sandbox Code Playgroud)
如果将溢出设置为.my-custom-forms(visible与元素相同<select>),则所有控件都会获得相同的高度。
因此,您可以使用以下解决方案(使用您当前的代码):
select:not(:-internal-list-box) {
overflow: visible !important;
}
Run Code Online (Sandbox Code Playgroud)
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
.my-custom-forms {
font-family: 'Open Sans',serif;
}
select.my-custom-forms, input.my-custom-forms {
background-color: transparent;
border: none;
border-bottom: 2px solid lightblue;
border-radius: 0;
overflow: visible;
padding: 0.25rem 0.1rem;
transition: border 0.5s ease;
width: 100%;
}Run Code Online (Sandbox Code Playgroud)
我还建议在相应的元素上使用.form-row和类。.form-control现在您可以覆盖 CSS 规则select.form-control:not([size]):not([multiple]),因此元素的高度<select>不会被计算,而是取决于指定的padding:
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="container m-3">
<div class="row">
<div class="col-3">
<select class="my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-3">
<select class="my-custom-forms">
<option>Option</option>
</select>
</div>
<div class="col-6">
<input placeholder="text" class="my-custom-forms">
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
@import url(https://fonts.googleapis.com/css?family=Open+Sans);
.my-custom-forms {
font-family: 'Open Sans',serif;
}
select.form-control.my-custom-forms:not([size]):not([multiple]) {
height: auto !important;
}
select.my-custom-forms, input.my-custom-forms {
background-color: transparent;
border: none;
border-bottom: 2px solid lightblue;
border-radius: 0;
overflow: visible;
padding: 0.25rem 0.1rem;
transition: border 0.5s ease;
width: 100%;
}Run Code Online (Sandbox Code Playgroud)