【问题标题】:Change Bootstrap input focus blue glow更改 Bootstrap 输入焦点蓝色发光
【发布时间】:2013-01-27 01:47:43
【问题描述】:

有谁知道如何更改 Bootstrap 的input:focus?当您单击 input 字段时出现蓝色光晕?

【问题讨论】:

标签: html css twitter-bootstrap


【解决方案1】:

最后我在 bootstrap.css 中更改了以下 css 条目

textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {   
  border-color: rgba(126, 239, 104, 0.8);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(126, 239, 104, 0.6);
  outline: 0 none;
}

【讨论】:

  • 我遇到了目标input[type] {}
  • 这对于 Bootstrap 3.x 不再是必需的。有关更多信息,请参阅我的答案。
  • @Cricket 这个变量目前在 Boostrap 定制器中不可用:(
  • @Caumons 现在是。我建议使用@input-border-focus 而不是这个答案。
  • 你忘了select
【解决方案2】:

您可以使用.form-control 选择器来匹配所有输入。比如变成红色:

.form-control:focus {
  border-color: #FF0000;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 0, 0, 0.6);
}

将其放入您的自定义 css 文件并在 bootstrap.css 之后加载。它将适用于所有输入,包括 textarea、select 等...

【讨论】:

  • 这不是 OP 想要的。他问的是如何改变辉光,而不是边界
  • @lonesword 是对的,事实上你必须同时改变边框颜色和阴影颜色。我已经更新了答案
  • 这比@felix001 的解决方案干净得多,而且有效
  • 对我来说效果很好 - 只是添加了 !important 到类以覆盖引导程序
  • 你知道吗,实际上不需要输入第一句代码它可以简单地是 box-shadow: 0 0 8px rgba(255, 0, 0, 0.6);但你必须包括边界线
【解决方案3】:

如果您使用的是 Bootstrap 3.x,您现在可以使用新的 @input-border-focus 变量更改颜色。

请参阅the commit 了解更多信息和警告。

_variables.scss中更新@input-border-focus

要修改此发光的大小/其他部分,请修改 mixins/_forms.scss

@mixin form-control-focus($color: $input-border-focus) {
  $color-rgba: rgba(red($color), green($color), blue($color), .6);
  &:focus {
    border-color: $color;
    outline: 0;
    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 4px $color-rgba);
  }
}

【讨论】:

  • 您有如何完成或执行此操作的示例吗?提前致谢
  • 您需要使用 Bootstrap 样式表的 Less 或 Sass 版本。然后,在导入 Bootstrap 样式表之前设置您的自定义变量,它将覆盖 Bootstrap 默认值。您要么需要预编译样式表,要么使用 Sprockets 之类的东西。
  • 您也可以使用官方引导站点对 less 变量进行自定义更改:getbootstrap.com/customize
  • 很好,但这不适用于按钮和其他链接,显然只适用于输入和文本区域。例如,对于按钮,您仍然需要使用 .btn:focus { outline: none; } 覆盖。
  • 这个答案确实适用于那些使用 SASS/SCSS 的人。 @input-order-focus 在_variables.scss
【解决方案4】:

您可以通过这种方式修改.form-control:focus 颜色而不改变引导样式:

快速修复

.form-control:focus {
        border-color: #28a745;
        box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
    } 

完整解释

  1. 找到您正在使用的 bootstrapCDN 版本。 例如对我来说现在是 4.3.1:https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.css
  2. 搜索要修改的类。 例如.form-control:focus 并将您要修改的参数复制到您的 css 中。在这种情况下是border-colorbox-shadow
  3. border-color 选择一种颜色。 在这种情况下,我选择通过在步骤 1 中提到的 bootstrap.css 页面中搜索特定类来选择引导程序用于其.btn-success 类的相同绿色。
  4. 将您选择的颜色转换为 RGB 并将其添加到 box-shadow 参数,而无需更改引导程序用于透明度的第四个 RGBA 参数 (0.25)。

【讨论】:

  • 太棒了,它简单又好用,我也需要绿色 :)
  • 这不适用于文件输入。知道为什么吗?
  • 不知道为什么,我已经很长时间没有使用引导程序了。我可以建议的是尝试找到用作默认值的输入类,尝试通过修改它来了解您需要更改的内容。
  • 工作。补充:如果你想设置选择元素的样式,你还必须添加它们的选择器,例如:.form-control:focus, select:focus { box-shadow: 0 4px 2px -2px grey; }
【解决方案5】:

对于 Bootstrap v4.0.0 beta 版本,您需要将以下内容添加到覆盖 Bootstrap 的样式表中(在 CDN/本地链接之后添加到 bootstrap v4.0.0 beta 或添加 !important 到样式:

.form-control:focus {
  border-color: #6265e4 !important;
  box-shadow: 0 0 5px rgba(98, 101, 228, 1) !important;
}

将 box-shadow 上的边框颜色和 rgba 替换为您喜欢的任何颜色样式*。

【讨论】:

    【解决方案6】:

    在Bootstrap 4中,如果你自己编译SASS,你可以改变以下变量来控制焦点阴影的样式:

    $input-btn-focus-width:       .2rem !default;
    $input-btn-focus-color:       rgba($component-active-bg, .25) !default;
    $input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
    

    注意:从 Bootstrap 4.1 开始,$input-btn-focus-color$input-btn-focus-box-shadow 变量仅用于输入元素,而不用于按钮。按钮的焦点阴影硬编码为box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);,因此您只能通过$input-btn-focus-width 变量控制阴影宽度。

    【讨论】:

      【解决方案7】:

      如果您希望 Chrome 显示平台默认的“黄色”轮廓,请进行以下更改。

      textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus, .uneditable-    input:focus {
          border-color: none;
          box-shadow: none;
          -webkit-box-shadow: none;
          outline: -webkit-focus-ring-color auto 5px;
      }
      

      【讨论】:

      • 如何禁用铬黄色轮廓?
      • 实际上,不要禁用所有 :focus 轮廓(正如我上面建议的那样)。仅键盘用户的可访问性是可怕的。您可以像上面那样禁用平台默认值并添加一些适当的可访问性:outline: dotted thin black;(或您的测试建议的任何东西)
      【解决方案8】:

      要禁用蓝色发光(但您可以修改代码以更改颜色、大小等),请将其添加到您的 css:

      .search-form input[type="search"] {  
          -webkit-box-shadow: none;
          outline: -webkit-focus-ring-color auto 0px;
      } 
      

      这是显示效果的屏幕截图:之前和之后:

      【讨论】:

      • 这对我有用。但我还必须添加边框颜色,因为它会使它变成蓝色。
      【解决方案9】:

      我登陆这个线程寻找完全禁用发光的方法。出于我的目的,许多答案过于复杂。为了简单的解决方案,我只需要一行 CSS 如下。

      input, textarea, button {outline: none; }
      

      【讨论】:

      • 我想你可能也需要box-shadow: none;
      • 它对我有用,但我必须在@silverliebt 建议的box-shadow 之后添加!important
      【解决方案10】:

      在 body 标签中添加一个 ID。在你自己的 Css(不是 bootstrap.css)中指向新的 body ID 并设置你想要覆盖的类或标签和新的属性。 现在您可以随时更新引导程序而不会丢失您的更改。

      html 文件:

        <body id="bootstrap-overrides">
      

      css 文件:

      #bootstrap-overrides input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, textarea:focus{
        border-color: red;
        box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(126, 239, 104, 0.6);
        outline: 0 none;
      }
      

      另请参阅:best way to override bootstrap css

      【讨论】:

        【解决方案11】:

        实际上,在 Bootstrap 4.0.0-Beta(截至 2017 年 10 月)中,输入元素没有被 input[type="text"] 引用,输入元素的所有 Bootstrap 4 属性实际上是基于形式的。

        所以它使用 .form-control:focus 样式。输入元素的“焦点”突出显示的适当代码如下:

        .form-control:focus {
          color: #495057;
          background-color: #fff;
          border-color: #80bdff;
          outline: none;
        }
        

        很容易实现,只需更改 border-color 属性即可。

        【讨论】:

        • 或者如果使用 scss,只需覆盖 bootstrap 4.0.0-Beta 的 $input-focus-border-color 变量
        • 我觉得你也需要加入这个box-shadow: xpx ypx #80bdff;
        【解决方案12】:

        简单的一个

        删除它:

        .form-control, .btn {
            box-shadow: none !important;
            outline: none !important;
        }
        

        改变它

        .form-control, .btn {
            box-shadow: new-value !important;
            outline: new-value !important;
        }
        

        【讨论】:

          【解决方案13】:

          如果您想完全移除阴影,请将 shadow-none 类添加到您的输入元素中。

          【讨论】:

            【解决方案14】:

            以上面的@wasinger's reply 为基础,在Bootstrap 4.5中,我不仅要覆盖颜色变量,还要覆盖box-shadow 本身。

            $input-focus-width: .2rem !default;
            $input-focus-color: rgba($YOUR_COLOR, .25) !default;
            $input-focus-border-color: rgba($YOUR_COLOR, .5) !default;
            $input-focus-box-shadow: 0 0 0 $input-focus-width $input-focus-color !default;
            

            【讨论】:

            • 在布尔玛,它也是使发光的盒子阴影。
            【解决方案15】:

            在 Bootstrap 3.3.7 中,您可以在自定义程序的 Forms 部分更改 @input-border-focus 值:

            【讨论】:

              【解决方案16】:

              用于焦点前的输入边框。您可以指定要使用的最喜欢的颜色和其他 css,如填充等

              
              .input {
                  padding: 6px 190px 6px 15px;
                  outline: #2a65ea auto 105px ;
              }
              

              当我们专注于输入时。您可以指定自己喜欢的颜色轮廓

              
              .input:focus{
                  box-shadow: none;
                  border-color: none;
                  outline: lightgreen auto 5px ;
              }
              

              【讨论】:

                【解决方案17】:

                为什么不直接使用?

                 input:focus{
                        outline-color : #7a0ac5;
                    }
                

                【讨论】:

                  【解决方案18】:

                  我无法用 CSS 解决这个问题。似乎 Boostrap 获得了最后的发言权,即使我在引导后通过 site.css 获得了发言权。无论如何,这对我有用。

                  $(document).ready(function () {
                      var elements = document.getElementsByClassName("form-control");
                  
                      Array.from(elements).forEach(function () {
                          this.addEventListener("click", cbChange, false);
                      })
                  
                      });
                  
                  function cbChange(event) {
                      var ele = event.target;
                      var obj = document.getElementById(ele.id);
                      obj.style.borderColor = "lightgrey";
                  }
                  

                  后来我发现这可以在 css 中使用。显然只有表单控件

                  .form-control.focus, .form-control:focus {
                      border-color: gainsboro;
                  } 
                  

                  以下是来自 Chrome 开发者工具的前后截图。注意焦点打开和焦点关闭之间边框颜色的差异。附带说明,这不适用于按钮。带按钮。使用按钮,您必须将大纲属性更改为无。

                  【讨论】:

                    【解决方案19】:

                    这将 100% 使用:

                    .form-control, .form-control:focus{
                       box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
                       border: rgba(255, 255, 255, 0);
                    }
                    

                    【讨论】:

                    • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
                    【解决方案20】:

                    这应该有助于删除它!

                    input[type = text] {
                      border: none;
                    }
                    
                    input[type = text]:focus {
                      border: none;
                      box-shadow: none;
                     }

                    【讨论】:

                    • 您好,只是想说这里不需要code sn-p功能,可以使用code fence来格式化代码。祝你有美好的一天,再见!
                    猜你喜欢
                    • 2019-04-05
                    • 1970-01-01
                    • 2015-04-18
                    • 2013-01-02
                    • 2018-12-01
                    • 2017-02-19
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多