"select" 简单 html 表单的下拉部分抵制 css 样式

"select" dropdown section of simple html form resists css styling

我有一个相当简单的网络表单来输入姓名、电子邮件,并提供了一个下拉框 select 人们正在使用哪种设备。除了 select(下拉列表)之外的每个部分都符合 css 样式。 select 也会忽略下面列出的宽度表达式。我在网上找到的解决方案都没有扩展它以满足 190px 的长度。 (它的高度也阻止了任何改变它的尝试。)谁能指出我正确的方向?

Select html 代码部分:

Device Type:<br />
<select name="Dtype" style="width: 150px">
<option value="iPad">iPad</option>
<option value="iPhone">iPhone</option>
<option value="AndroidTablet">Android Tablet</option>
<option value="AndroidPhone">Android Phone</option></select>

CSS:

label {
    display: inline-block;
    position: relative;
    float: left;
    text-align: left;
    margin-right: 20px;
    width: 190px;
    padding: 5px;
}

input, textarea { 
    padding: 9px; 
    border: solid 1px #E5E5E5; 
    outline: 0; 
    font: normal 13px/100% Verdana, Tahoma, sans-serif; 
    width: 190px; 
    background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(4%, #EEEEEE), to(#FFFFFF)); 
    background: -moz-linear-gradient(top, #FFFFFF, #EEEEEE 1px, #FFFFFF 25px); 
    box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; 
    -moz-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; 
    -webkit-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; 
    } 

input:hover, textarea:hover, 
input:focus, textarea:focus { 
    border-color: #C9C9C9; 
    -webkit-box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 8px; 
    } 

select { 
    padding: 9px; 
    border: solid 1px #E5E5E5; 
    outline: 0; 
    width: 190px;
    font: normal 13px/100% Verdana, Tahoma, sans-serif;
    background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(4%, #EEEEEE), to(#FFFFFF)); 
    background: -moz-linear-gradient(top, #FFFFFF, #EEEEEE 1px, #FFFFFF 25px); 
    box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; 
    -moz-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; 
    -webkit-box-shadow: rgba(0,0,0, 0.1) 0px 0px 8px; 
    }    



.form label { 
    margin-left: 10px; 
    color: #999999; 
    } 

.submit input { 
    width: auto; 
    padding: 9px 15px; 
    background: #617798; 
    border: 0; 
    font-size: 14px; 
    color: #FFFFFF; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    }

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}

input[type=number] {
-moz-appearance: textfield;
}

您必须从 html 中删除 style="width: 150px",或在 css 中使用 !important:width: 190px !important;

以下选择器列表是递增特异性的:

  • 通用选择器
  • 类型选择器
  • Class 个选择器
  • 属性选择器
  • 伪类 ID选择器
  • 内联样式

css 正在按预期工作。就宽度而言,那是因为你有内联样式,它覆盖了 css 规则。

演示:http://jsfiddle.net/lotusgodkk/GCu2D/558/

HTML:

Device Type:
<br />
<select name="Dtype">
    <option value="iPad">iPad</option>
    <option value="iPhone">iPhone</option>
    <option value="AndroidTablet">Android Tablet</option>
    <option value="AndroidPhone">Android Phone</option>
</select>

从 select 标签中删除 style="width: 150px",内联样式始终覆盖通过 css.

应用的样式

如果删除内联样式,它将选择 css 中应用的样式。