【发布时间】:2013-10-21 15:41:18
【问题描述】:
我正在尝试设计一个如下图所示的Select标签:
不知何故,我设法通过将选择标签包装在一个 div 中来设计它。但问题是当我点击设计的箭头时,选择标签不起作用或显示所有列表。
我期望的是,当我单击箭头时,选择标签应该显示所有选项。这不会发生,因为箭头部分是使用父包装元素伪元素生成的。我没有使用伪元素选择器选择标签,因为it seems to be not working。
我可以将background-image 用于父包装器来解决此问题,但由于我拥有更改 html 的全部权利,因此我正在寻找不使用图像或 JavaScript 的更好方法,即仅使用 CSS。
这里是fiddle。
<div class="select-wrapper">
<select>
<option>EEE</option>
<option>ECE</option>
<option>EIE</option>
</select>
</div>
.select-wrapper {
display:inline-block;
border:1px solid #bbbbbb;
position:relative;
width:120px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
margin-top: 10px;
}
.select-wrapper:before{
content: "";
position:absolute;
right: 5px;
top:8px;
border-width: 5px 5px 5px 5px;
border-style: solid;
border-color: #666666 transparent transparent transparent ;
z-index:3;
}
.select-wrapper:after {
content:"";
display:block;
position:absolute;
top:0px;
bottom:0px;
width:20px;
right:0px;
border-left:1px solid #bababa;
background-color:#ededed;
-webkit-border-top-right-radius:5px;
-moz-border-top-right-radius:5px;
border-top-right-radius:5px;
-webkit-border-bottom-right-radius:5px;
-moz-border-bottom-right-radius:5px;
border-bottom-right-radius:5px;
}
select {
width:100%;
background-color:#ededed;
border:none;
outline:none;
padding:0px;
margin:0px;
position:relative;
}
【问题讨论】:
-
+1 喜欢您正在创建的插件
-
我不知道它是否可能仅使用 CSS(使用背景图像除外),但我能得到的最好的是这样的。 jsfiddle.net/PhuTS/1,
-
@user1671639 谢谢 :) 不过在你们的帮助下是不可能的。
-
你是如何绕过“没有附带代码的 JS Fiddle 链接”规则的?