从bootstrap 3中的Select标记中删除边界半径

Tyl*_*nis 120 css twitter-bootstrap

这似乎是一个微不足道的问题,但我无法弄清楚.

在Bootstraps自己的网站上,他们有Select示例.

bootstrap选择



查看代码,看起来该select元素的边界半径为4. 在此输入图像描述



我希望将border-radius更改为0然后从select元素中删除border-radius,但是,情况并非如此 - 如下图所示.

在此输入图像描述



我已经探索了所有改变选择元素的CSS,但似乎都没有删除边界半径.

Eri*_*ric 225

这是一个适用于所有现代浏览器的版本.关键是使用appearance:none它删除默认格式.由于所有格式都消失了,您必须在箭头中添加回来,以便在视觉上区分选择和输入.注意:appearanceIE不支持.

工作示例:https://jsfiddle.net/gs2q1c7p/

select:not([multiple]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-position: right 50%;
    background-repeat: no-repeat;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDZFNDEwNjlGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDZFNDEwNkFGNzFEMTFFMkJEQ0VDRTM1N0RCMzMyMkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NkU0MTA2N0Y3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NkU0MTA2OEY3MUQxMUUyQkRDRUNFMzU3REIzMzIyQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuGsgwQAAAA5SURBVHjaYvz//z8DOYCJgUxAf42MQIzTk0D/M+KzkRGPoQSdykiKJrBGpOhgJFYTWNEIiEeAAAMAzNENEOH+do8AAAAASUVORK5CYII=);
    padding: .5em;
    padding-right: 1.5em
}

#mySelect {
    border-radius: 0
}
Run Code Online (Sandbox Code Playgroud)
<select id="mySelect">
    <option>Option 1</option>
    <option>Option 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

根据Arno Tenkink在评论中建议,这是一个使用而不是作为箭头图标的示例.

select:not([multiple]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-position: right 50%;
    background-repeat: no-repeat;
    background-image: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" version="1"><path d="M4 8L0 4h8z"/></svg>');
    padding: .5em;
    padding-right: 1.5em
}

#mySelect {
    border-radius: 0
}
Run Code Online (Sandbox Code Playgroud)
<select id="mySelect">
    <option>Option 1</option>
    <option>Option 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

  • 这应该是真正的答案. (26认同)
  • 您也可以使用SVG.`<?xml version ="1.0"encoding ="utf-8"?> <!DOCTYPE svg PUBLIC" - // W3C // DTD SVG 1.1 // EN""http://www.w3.org/Graphics/ SVG/1.1/DTD/svg11.dtd"> <svg version ="1.1"id ="Layer_1"xmlns ="http://www.w3.org/2000/svg"xmlns:xlink ="http:// www .w3.org/1999/xlink"x ="0px"y ="0px"width ="14px"height ="12px"viewBox ="0 0 14 12"enable-background ="new 0 0 14 12"xml: space ="preserve"> <polygon points ="3.862,7.931 0,4.069 7.725,4.069"/> </ svg>`它保存相同的文件空间.它也可以缓存并且更易于维护.将其复制到一个文件中并另存为.svg并将其用作背景. (7认同)
  • 这绝对是最好的答案.我已经找了几次这样做的方法.它应该有很多帮助,谢谢!:) (2认同)

小智 215

另外border-radius: 0,添加-webkit-appearance: none;.

  • 它工作但不完美,`-webkit-appearance:none;`会导致右侧选择缺少箭头指示. (100认同)
  • @nightire如果你使用`border:0`并添加如下的轮廓,它对我有用:`outline:1px inset black; 概括偏移:-1px`.将保留箭头,你可以用轮廓伪造边框. (41认同)
  • 解决方案是对的 - 但是无法理解为什么在开发工具中发生这种情况是完全错误的.谢谢你解决这个谜语男人! (2认同)
  • 是的,这不是一个真正的解决方案,因为像所有人都说的那样,选择箭头消失了. (2认同)
  • 别忘了IE!:) select :: - ms-expand {display:none; } (2认同)

Log*_*ker 12

我遇到了同样的问题,当user1732055的答案修复了边框时,它会删除下拉箭头.我通过从select元素中删除边框并创建一个span具有边框的包装来解决这个问题.

HTML:

<span class="select-wrapper">
    <select class="form-control no-radius">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
    </select>
</span>
Run Code Online (Sandbox Code Playgroud)

CSS:

select.no-radius{
    border:none;
}    
.select-wrapper{
    border: 1px solid black;
    border-radius: 0px;
}
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/Lrqh0drd/6/