如何将背景色仅作为选择的一部分?CSS

Mar*_*ius 12 html css

我有这个样本:

链接

代码HTML:

<div class="select-style">
  <select>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </select>
</div>
Run Code Online (Sandbox Code Playgroud)

代码CSS:

.select-style {
    padding: 0;
    margin: 0;
    border: 1px solid #ccc;
    width: 120px;
    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: 130%;
    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;
}
Run Code Online (Sandbox Code Playgroud)

我把照片更好地理解了我想做的事情.

在此输入图像描述

我怎么能在我的结构上做到这一点?

目前的结构?或者有另一个结构创建HTML?

提前致谢!

Man*_*mar 6

你可以linear-gradient结合使用background-image.

  1. background-image属性允许的组合url(),并linear-gradient()因此您可以尝试分离值.与background-position我们控制具有95px值的url图像位置相同,而线性渐变不受中心中心干扰.
  2. 使用线性渐变,前70%填充背景颜色白色,而另外30%将在示例中为浅灰色.
  3. 创建使用百分比值的一小部分的边界即70% gray71% gray线性梯度.

.select-style {
  background-image: url("http://www.scottgood.com/jsg/blog.nsf/images/arrowdown.gif"), linear-gradient(to right, white 70%, gray 70%, gray 71%, lightgray 71%, lightgray 100%);
  background-position: 95px center, center center;
  background-repeat: no-repeat;
  border: 1px solid #ccc;
  border-radius: 3px;
  margin: 0;
  overflow: hidden;
  padding: 0;
  width: 120px;
}
.select-style select {
  padding: 5px 8px;
  width: 130%;
  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;
}
Run Code Online (Sandbox Code Playgroud)
<div class="select-style">
  <select>
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </select>
</div>
Run Code Online (Sandbox Code Playgroud)


Par*_*n0a 3

你想要这样的东西吗?

http://codepen.io/anon/pen/bVWmgP

.select-style:after {
          content: '';
          background-color: #000;
          position: absolute;
          border-left: 3px solid #F00;
          z-index: 0;
          top: 0;
          right: 0;
          bottom: 0;
          left: 85px;
        }

    .select-style:before {
        content: '';
        background-color: white;
        position: absolute;
        z-index: -20;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
Run Code Online (Sandbox Code Playgroud)

注意:如果不添加代表该箭头的额外图像,您将无法更改选择列表箭头颜色。