如何制作带有圆角边框的选择下拉菜单?

Posted

技术标签:

【中文标题】如何制作带有圆角边框的选择下拉菜单?【英文标题】:how to make select dropdown with rounded border? 【发布时间】:2013-10-26 23:36:18 【问题描述】:

我正在使用下拉菜单的选择标签,使用 css 我将选择框设为圆角,通过这样做下拉菜单保持方形,我也想转动那个圆角。

这是现场演示

http://jsfiddle.net/ankurdhanuka/AwUHn/1/

HTML

<p class="formRight">
<span style="padding-right:100px">Lead Type: </span>

    <select id="leadType" class="box2" name="lead_type">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
    </select>
</p>

CSS

.formRight select 
    background: none repeat scroll 0 0 #FFFFFF;
    border: 1px solid #E5E5E5;
    border-radius: 5px 5px 5px 5px;
    box-shadow: 0 0 10px #E8E8E8 inset;
    height: 40px;
    margin: 0 0 0 25px;
    padding: 10px;
    width: 110px;

您的帮助将不胜感激。提前致谢。

【问题讨论】:

这些控件由操作系统处理,因此您不妨考虑使用 CSS 和 JS 创建自己的下拉列表。 @MatthewBaker 如何创建我们自己的下拉列表? @AnkurDhanuka 您可以使用 html 和 JS 创建自己的样式下拉列表。你可以试试这样的 jQuery 插件:dev7studios.com/dropit 阅读这个问题:***.com/questions/8927974/… 我猜你不能以你想要的方式设置选择选项!!!尝试一些替代方法,例如使用 作为选项的 标签并设置它们的样式......这将是非常简单的方法 【参考方案1】:

您看过这篇 *** 帖子了吗? CSS - Border Radius for the drop down box when using the SELECT tag? Not the SELECT input ittself, the actual drop down box? 因为您的要求是不可能的(或者至少不兼容跨浏览器)

要使其工作并使其跨浏览器兼容,您必须使用 DIV 元素(或任何非表单元素)创建下拉/选择,并使用 JS/jQuery 将其值更新为隐藏选择。这样您就可以不受限制地按照自己的方式设置 DIV 的样式。

这可能会对您有所帮助:JQuery Auto Complete substitute for Select Drop Down

【讨论】:

【参考方案2】:

Ankur,下拉列表由用户操作系统控制,因此这些元素的完整样式是不可能的。为了获得您想要的外观,您不妨考虑开发或使用third-party custom drop-down list。

看着你的小提琴; Demo 5 by Hugo Giraidel 可能会为您提供所需的内容。

它基本上使用 HTML &lt;li&gt; 元素,然后使用 JS/jQuery 创建带有几个基本过渡效果的下拉列表效果。

【讨论】:

使用自定义选择通常以糟糕的用户体验告终。很难创建具有良好可访问性的良好选择框。这个例子也有问题。生产中的演示和使用是不同的东西......【参考方案3】:

这是我的解决方案。

CSS

.selectBoxborder-radius:4px;border:1px solid #AAAAAA;

HTML

<select class="selectBox">
.............
</select>

【讨论】:

【参考方案4】:

请检查解决方案:

现场演示:https://jsfiddle.net/webx/2g5bydyo/

.selectWrapper
  border-radius:36px;
  display:inline-block;
  overflow:hidden;
  background:#cccccc;
  border:1px solid #cccccc;

.selectBox
  width:140px;
  height:40px;
  border:0px;
  outline:none;
<div class="selectWrapper">
  <select class="selectBox">
  <option>Option 1</option>
  <option>Option 2</option>
  <option>Option 3</option>
  <option>Option 4</option>
</select>
</div>

【讨论】:

我会添加 width: initial 而不是 width: 140px; 下拉菜单不是半径。【参考方案5】:

我现在不知道为什么,但是当删除选择默认箭头时它可以工作

select 
  /* for Firefox */
  -moz-appearance: none;
  /* for Chrome */
  -webkit-appearance: none;


select::-ms-expand 
  /* For IE10 */
  display: none;


select 
  border-radius: 20px;
  width: 100px;
  height: 40px;
  padding-right: 10px;
  padding-left: 10px;

【讨论】:

以上是关于如何制作带有圆角边框的选择下拉菜单?的主要内容,如果未能解决你的问题,请参考以下文章

如何制作带有动画三行的下拉移动菜单?

如何在离子中制作下拉菜单或选择框

在EXCEL如何制作树形结构的下拉菜单进行输入到单元格

如何从表格的下拉菜单中删除先前选择的选项?

无法从 Firefox 选择下拉菜单中删除轮廓/虚线边框 [重复]

如何实现这个菜单布局?全高边框和下拉菜单与菜单边框底部正确对齐?