css - 使用 CSS 选择框自定义

标签 css

有很多问题问同样的问题。我已经经历了所有事情并对以下情况感到困惑。我有一个选择框和文本框。我希望两者都有特定的高度和边框。

所以,我为两者定义了以下类

   .selClass
    {    

        border: 1px solid #CCC;
        height: 40px;   
        color:red; 

    } 


  <select class="selClass">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
  </select>

这工作正常。但是,在审阅与此相关的其他问题时,据了解选择是在操作系统级别控制的,我们可以使用 css 应用于选择框的样式非常少。

如果是这样,我的代码是否存在浏览器兼容性错误?我检查了 IE9+、Edge、Mozilla、Chrome、iphone,一切正常。所以,我认为我的代码很好。请对此发表评论。

如果我的代码是正确的,它是如何工作的,因为据我所知,select 不能由 css 控制。请帮忙。

最佳答案

需要添加appearance: none;,使浏览器不走系统默认的选择框。

就像:

select {
  -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
}

或者看看下面的代码片段:

.select-style {
    padding: 0;
    margin: 0;
    border: 1px solid #ccc;
    width: 200px;
    border-radius: 3px;
    overflow: hidden;
    background-color: #fff;

    background: #fff url("http://www.scottgood.com/jsg/blog.nsf/images/arrowdown.gif") no-repeat 90% 50%;
}

.select-style select {
    padding: 5px 8px;
    width: 200px;
    height: 35px;
    border: none;
    box-shadow: none;
    background-color: transparent;
    background-image: none;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}

.select-style select:focus {
    outline: none;
}
<div class="select-style">
  <select>
    <option value="volvo">Option 1</option>
    <option value="saab">Option 2</option>
    <option value="mercedes">Option 3</option>
    <option value="audi">Option 4</option>
  </select>
</div>

希望这对您有所帮助!

关于css - 使用 CSS 选择框自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40508078/

相关文章:

jquery - 鼠标悬停使表格单元格发疯

CSS 3 面板液体布局内容间距

html - 不影响容器的 float 图像

javascript - 如何将媒体查询与 javascript 结合起来?

html - 在 bootstrap 中自定义 css

jquery - 动态显示更改 iframe 滚动

jquery - 具有长高度图像的响应式背景

css - 嵌套 CSS : How to get to the child?

javascript - Google 日历标题设置为不显示

javascript - 如何剪切这样的 css sprite 图像来制作动画?