Bootstrap-Select : 移除丑陋的焦点边框
Bootstrap-Select : remove ugly focus border
我知道常规 html 控件要求这样做,但我似乎无法摆脱围绕我的选择器列表框的丑陋黑色边框:
当我没有焦点时:
我的输入框周围已经有一个蓝色的焦点半径,因此为了便于访问,我不需要这个黑色的。我到处都读到我需要使用 outline: none;
css,但它在我的情况下不起作用。
这是我的 CSS:
.customSelect{
border: 1px solid #ced4da !important;
color: #495057 !important;
}
.customSelect:hover{
background-color: #f8f9fa !important;
}
.customSelect:focus{
outline:none !important;
/* also tried adding in :
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
*/
而我的输入 html:
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false"
disabled>
</select>
我错过了什么?谢谢!
更新: 这是 fiddle link 显示我的问题:
https://jsfiddle.net/jocxaqe9/
在 CSS 中添加正确的选择器。
.selectpicker:focus {
outline: none;
border-color: red;
}
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false">
<option>1</option>
<option>2</option>
</select>
outline: none
和 box-shadow: none
足以做你想做的事,你的 CSS 是正确的,但你没有正确应用它,你需要添加 class customSelect
到 select 所以:
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker customSelect"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false"
disabled>
</select>
看到问题了吗? customSelect
是你的 data-style
,你的 class 是 selectpicker
。只需将 customSelect
更改为 selectpicker
.customSelect{
border: 1px solid #ced4da !important;
color: #495057 !important;
}
.customSelect:hover{
background-color: #f8f9fa !important;
}
.customSelect:focus{
outline:none !important;
/* also tried adding in :
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
*/
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false"
</select>
我找到了解决办法。这有点“hack”,但似乎有效:
需要为select输入定义以下属性:
- data-style-base="form-control" -- 还必须保持 form-control class!
- data-style="" -- 或要应用的任何其他自定义 class
添加以下内容CSS:
.bootstrap-select .form-control:focus {
outline: 0px none #fff !important;
}
.bootstrap-select .form-control > div.filter-option:focus {
outline: 0px none #fff !important;
}
.bootstrap-select .form-control > div.filter-option > div.filter-option-inner:focus {
outline: 0px none #fff !important;
}
.bootstrap-select .form-control > div.filter-option > div.filter-option-inner > div.filter-option-inner-inner:focus {
outline: 0px none #fff !important;
}
Fiddle: https://jsfiddle.net/sak06om8/
尝试将此添加到您的 CSS。
.bootstrap-select button.dropdown-toggle:focus {
outline: none !important;
}
看,其他答案没有考虑到的是这个插件在 div[ 中添加了自己的 button =20=] 与 class bootstrap-select
并且只使用 select 中的数据来构建它的下拉列表。因此,向 select 标签添加任何样式都是无用的,也没有任何效果。
这适用于 2022 年 Bootstrap 5
移除所有焦点阴影
*:focus {
box-shadow: none !important;
}
只需确保它位于 bootstrap css 文件下方
我知道常规 html 控件要求这样做,但我似乎无法摆脱围绕我的选择器列表框的丑陋黑色边框:
当我没有焦点时:
我的输入框周围已经有一个蓝色的焦点半径,因此为了便于访问,我不需要这个黑色的。我到处都读到我需要使用 outline: none;
css,但它在我的情况下不起作用。
这是我的 CSS:
.customSelect{
border: 1px solid #ced4da !important;
color: #495057 !important;
}
.customSelect:hover{
background-color: #f8f9fa !important;
}
.customSelect:focus{
outline:none !important;
/* also tried adding in :
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
*/
而我的输入 html:
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false"
disabled>
</select>
我错过了什么?谢谢!
更新: 这是 fiddle link 显示我的问题: https://jsfiddle.net/jocxaqe9/
在 CSS 中添加正确的选择器。
.selectpicker:focus {
outline: none;
border-color: red;
}
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false">
<option>1</option>
<option>2</option>
</select>
outline: none
和 box-shadow: none
足以做你想做的事,你的 CSS 是正确的,但你没有正确应用它,你需要添加 class customSelect
到 select 所以:
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker customSelect"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false"
disabled>
</select>
看到问题了吗? customSelect
是你的 data-style
,你的 class 是 selectpicker
。只需将 customSelect
更改为 selectpicker
.customSelect{
border: 1px solid #ced4da !important;
color: #495057 !important;
}
.customSelect:hover{
background-color: #f8f9fa !important;
}
.customSelect:focus{
outline:none !important;
/* also tried adding in :
outline-width: 0 !important;
box-shadow: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
*/
<select name="function_title_id"
id="function_title_id"
title="Please select..."
class="form-control selectpicker"
data-live-search="true"
data-style="customSelect"
data-dropup-auto="false"
</select>
我找到了解决办法。这有点“hack”,但似乎有效:
需要为select输入定义以下属性:
- data-style-base="form-control" -- 还必须保持 form-control class!
- data-style="" -- 或要应用的任何其他自定义 class
添加以下内容CSS:
.bootstrap-select .form-control:focus {
outline: 0px none #fff !important;
}
.bootstrap-select .form-control > div.filter-option:focus {
outline: 0px none #fff !important;
}
.bootstrap-select .form-control > div.filter-option > div.filter-option-inner:focus {
outline: 0px none #fff !important;
}
.bootstrap-select .form-control > div.filter-option > div.filter-option-inner > div.filter-option-inner-inner:focus {
outline: 0px none #fff !important;
}
Fiddle: https://jsfiddle.net/sak06om8/
尝试将此添加到您的 CSS。
.bootstrap-select button.dropdown-toggle:focus {
outline: none !important;
}
看,其他答案没有考虑到的是这个插件在 div[ 中添加了自己的 button =20=] 与 class bootstrap-select
并且只使用 select 中的数据来构建它的下拉列表。因此,向 select 标签添加任何样式都是无用的,也没有任何效果。
这适用于 2022 年 Bootstrap 5 移除所有焦点阴影
*:focus {
box-shadow: none !important;
}
只需确保它位于 bootstrap css 文件下方