如何在 :focus 上正确设置 Select2 轮廓的样式?

Posted

技术标签:

【中文标题】如何在 :focus 上正确设置 Select2 轮廓的样式?【英文标题】:How to properly style the Select2 outline on :focus? 【发布时间】:2017-01-10 15:52:43 【问题描述】:

我正在使用 Select2 设置我的 <select> 框的样式,但我似乎无法设置 Chrome 应用于该样式的强制轮廓:

问题:

我已经尝试了几行(非常不专业,!important)CSS 代码,但到目前为止我还没有想出解决方案,这就是我现在的情况:

CSS:

.select2 > *:focus, .select2:focus .select2 > *, .select2 
    outline-width: 0px !important;

为了排除潜在的问题,我肯定会包含这个 CSS 文件,我的常规 select2.css

另外,一个小提琴会有问题,但如果真的需要,我可以提供一个

【问题讨论】:

【参考方案1】:

这似乎可以解决问题:

  <style>
    .select2-container *:focus 
        outline: none;
    
  </style>

这里是a plunk。

【讨论】:

啊,是的!感谢 Dave,这比我的初始解决方案清洁 100%:select + span.select2:focus, select + span.select2 *:focus outline-color: #7d3c8c; outline-width: 1px; 【参考方案2】:

这对我有用:

&.select2-container--focus 
    outline: none;

【讨论】:

【参考方案3】:

这是因为 select2 或 chrome 都没有使用 outline 属性。下面是select2(+bootstrap)中select:focus伪元素的实际定义:

.form-control:focus 
    border-color: #66afe9;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);

尝试更改 borderbox-shadow

.form-control:focus 
    border-color: unset;
    -webkit-box-shadow: none;
    box-shadow: none;

希望这会有所帮助,干杯。

【讨论】:

它以某种方式向我解释了为什么会出现这个问题,但我没有从引导程序实现表单,所以这个解决方案对我不起作用。但是感谢您的时间和精力!【参考方案4】:

它使用的是盒子阴影,而不是轮廓,看看inspector:

.form-control:focus 
    border-color: #66afe9;
    outline: 0;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);

所以你需要重置它

【讨论】:

我 100% 确定它没有使用 box-shadow,坦率地说,这没有用。 更新:这主要是因为我没有为这个表单使用引导程序 我已按照您的喜好选择2,所以我认为您使用的是旧版本 嗯,package.json 在我的node_modules 中告诉我我正在:"version": "4.0.3",

以上是关于如何在 :focus 上正确设置 Select2 轮廓的样式?的主要内容,如果未能解决你的问题,请参考以下文章

如何在初始化了select2的输入框上设置默认值?

在 iPad 上,如何在不显示选项的情况下通过 Javascript 事件在选择元素上设置 focus()?

如何使用 Tailwind CSS 在 input:focus 的前一个兄弟上设置 textColor?

如何在 WordPress 中正确使用 select2?

在 WPF 中的文本框上设置焦点

Select2 initSelection 元素 Val