【问题标题】: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
  • 我猜你不能以你想要的方式设置选择选项!!!尝试一些替代方法,例如使用
  • 作为选项的
      标签并设置它们的样式......这将是非常简单的方法

标签: html css select


【解决方案1】:

您看过这篇 Stackoverflow 帖子了吗?
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

    .selectBox{border-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;
      }
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签