nút bootstrap hiển thị đường viền màu xanh khi nhấp vào


137

Tôi đã thêm điều này nhưng vẫn có đường viền màu xanh xuất hiện khi nhấp vào nút.

.btn:focus {
  outline: none;
}

Làm thế nào để loại bỏ điều xấu xí đó?


cố gắng đặt :activecho nút. Bổ sung: Sử dụng Trình theo dõi trong trình duyệt của bạn để tìm Sự cố.
Adrian Preuss

1
Bạn có thể đăng thêm mã của mình hoặc bản demo jsfiddle để chúng tôi có thể giúp bạn không
Richa

Không chắc chắn về các nút nhưng bootstrap thêm bóng hộp vào các trường đầu vào có thể được loại bỏ bằng bóng hộp: none;
davidcondrey

3
FWIW, kiểu dáng lấy nét rất quan trọng đối với điều hướng bàn phím.
Nate Whittaker

Một hình ảnh sẽ hữu ích ở đây
Súp gà

Câu trả lời:


203

Có thể tài sản của bạn đang bị ghi đè. Hãy thử đính kèm !importantmã của bạn cùng với: active.

.btn:focus,.btn:active {
   outline: none !important;
   box-shadow: none;
}

Đồng thời thêm bóng hộp vì nếu không bạn vẫn sẽ thấy nút bóng xung quanh.

Mặc dù đây không phải là một cách thực hành tốt để sử dụng! Quan trọng, tôi khuyên bạn nên sử dụng lớp cụ thể hơn và sau đó thử áp dụng css với việc sử dụng! Quan trọng ...


@Janak Nhưng tại sao lại cần thiết khi ghi đè: active?

Tôi cũng có thể thêm rằng khi bắt đầu với! Quan trọng, các lớp giả không cần thiết

7
Nếu bạn đang sử dụng Bootstrap 4, hãy thêm box-shadow: none(và đừng quên tiền tố -webkit-box-shadow: none) vào câu trả lời này. Cũng lưu ý rằng Bootstrap 4 đã có .btn:focus { outline: none }trong các lớp btn của nó.
Coolonie

1
Các tín hiệu thị giác rất quan trọng khi không điều hướng bằng chuột. Nếu bạn xóa phác thảo, bạn phải thêm một số phản hồi trực quan khác, nếu không bạn sẽ làm tê liệt trang web của bạn.
Josef Engelfrost

52

Trong phiên bản mới nhất của Bootstrap, tôi thấy việc xóa phác thảo không hoạt động. Và tôi phải thêm cái này vì cũng có một cái bóng hình hộp:

.btn:focus, .btn:active {
  outline: none !important;
  box-shadow: none !important;
}

1
Đây là những gì đã giúp cho tôi.
Vahx

Nếu bạn muốn đảm bảo rằng bạn nhấn tất cả các nút của mình, chỉ cần sử dụng nút {phác thảo: không có gì quan trọng; hộp bóng: không có! quan trọng; }
vẽ

52

Có lớp boostrap tích shadow-nonehợp để vô hiệu hóa box-shadow(không outline) ( https://getbootstrap.com/docs/4.1/utilities/shadows/ ). Điều này loại bỏ bóng của nút:

<button class='btn btn-primary shadow-none'>Example button</button>

Cảm ơn bạn rất nhiều.
Nikolay Tsenkov

3
đây là câu trả lời hay nhất
jmrueda

1
Đây là giải pháp bạn đang tìm kiếm. Đây là giải pháp, di chuyển dọc, di chuyển dọc. Cảm ơn điều này đã giải quyết nó cho Firefox với Bootstrap 4.
swudev

Bài này là về loại bỏ các phác thảo, không phải là bóng. Thật đáng buồn, nhận xét này là sai lệch.
Clay Records

Vâng, đó là câu trả lời tốt nhất nhưng tại sao nó không được chấp nhận trên nút chéo Thông báo loại bỏ
Nawaraj

19

Thử mã dưới đây

.button:active, 
 button:active,
.button:focus, 
 button:focus,
.button:hover, 
 button:hover{
    border:none !important;
    outline:none !important;
}

4
Tôi chỉ cần phần này để xóa phác thảo trong chrome: button: tập trung {phác thảo: none;}
TTT

13

Điều này đã xảy ra với tôi trong Chrome (mặc dù không phải trong Firefox). Tôi đã phát hiện ra rằng outlinetài sản đang được Bootstrap đặt là outline: 5px auto -webkit-focus-ring-color;. Được giải quyết bằng cách ghi đè thuộc outlinetính sau này trong CSS tùy chỉnh của tôi như sau:

.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus {
    outline: 0;
}

12

Điều này sẽ giải quyết nút bằng một văn bản, chỉ có một biểu tượng hoặc một nút là một liên kết:

 <!--1. button with a text -->
 <button type="button" class="btn btn-success" id="newWord">Save</button>

 <!--2. button only with a close icon -->
 <button type="button" class="close"></button>

 <!--3. button is a link -->
 <a class="btn btn-success btn-xs" href="#">Save</a>



button,
button:active,
button:focus, 
button:hover,
.btn,
.btn:active, 
.btn:focus, 
.btn:hover{   
    outline:none !important;
}

Nếu bạn thêm border:none !important;

{
    border:none !important;
    outline:none !important;
}

sau đó nút sẽ trở thành kích thước nhỏ hơn khi nhấp vào.



7

Trong Bootstrap 4 họ sử dụng box-shadow: 0 0 0 0px rgba(0,123,255,0);: tập trung, tôi đã giải quyết vấn đề của mình với

a.active.focus,
a.active:focus,
a.focus,
a:active.focus,
a:active:focus,
a:focus,
button.active.focus,
button.active:focus,
button.focus,
button:active.focus,
button:active:focus,
button:focus,
.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn:active:focus,
.btn:focus {
    outline: 0;
    outline-color: transparent;
    outline-width: 0;
    outline-style: none;
    box-shadow: 0 0 0 0 rgba(0,123,255,0);
}

4

Ngay cả sau khi xóa phác thảo khỏi nút bằng cách đặt giá trị của nó thành 0, vẫn có một hành vi hài hước trên nút khi nhấp vào, kích thước của nó co lại một chút. Vì vậy, tôi đã đưa ra một giải pháp tối ưu:

.btn:focus {
   outline: none !important;
   box-shadow: 0 0 0 0;
}

Hi vọng điêu nay co ich...


3

Bạn cần sử dụng lồng đúng cách và sau đó áp dụng các kiểu cho nó.

  • Nhấp chuột phải vào nút và tìm lớp lồng chính xác cho nó bằng cách sử dụng (Kiểm tra phần tử bằng cách sử dụng fireorms cho firefox), (kiểm tra phần tử cho chrome).

  • Thêm phong cách cho toàn bộ các lớp. Chỉ sau đó nó sẽ làm việc


3

Tôi thấy điều này khá hữu ích trong trường hợp của tôi sau khi nhấp vào nút.

$('#buttonId').blur();

3

Tôi đã chọn chỉ đơn giản là loại bỏ chiều rộng đường viền trên :focus. Điều này loại bỏ không gian xấu xí giữa phác thảo và các góc tròn của nút. Vì một số lý do, vấn đề này chỉ xảy ra đối với các yếu tố nút thực tế chứ không phải <a class="btn">các yếu tố.

button.btn:focus {
  border-width: 0;
}

3

Điều này có thể giúp nếu ai đó vẫn còn câu hỏi này chưa được giải quyết.

(function() {
  $('button').on('click', function() {
    $("#action").html("button was clicked");
    console.log("the button was clicked");
  });
})();
.btn-clear {
  background-color: transparent !important;
  border-style: none !important;
  cursor: pointer;
}

.btn-clear:active,
.btn-clear:focus {
  outline-style: none !important;
  outline-color: transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- this button has default style -->
<button>Action</button>
<!-- this button is clear of style -->
<button class="btn-clear">Action</button>

<label id="action"></label>


3

Đây là giải pháp Boostrap 4 của tôi để loại bỏ các phác thảo nút

/*
* Boostrap 4
* Remove blue outline from button
*/

.btn:focus,
.btn:active {
  box-shadow: none;
}

3

Tôi chỉ gặp vấn đề tương tự và đoạn mã sau hoạt động với tôi:

.btn:active, .btn:focus, .btn:active:focus, .btn.active:focus {
    outline: none !important;
}

.btn {
  margin:32px;
}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->




<button type="button" class="btn btn-default">Button</button>

Hy vọng nó sẽ giúp!


đề cương! doh !! thud
Adam Cox

3

Trên thực tế trong bootstrap được định nghĩa tất cả các biến cho tất cả các trường hợp. Trong trường hợp của bạn, bạn chỉ cần ghi đè biến mặc định '$ input-btn-Focus-box-Shadow' từ tệp '_variabled.scss'. Giống như vậy: $input-btn-focus-box-shadow: none; Lưu ý rằng bạn cần ghi đè biến đó trong tùy chỉnh '_yourCusomVarsFile.scss' của riêng bạn. Và tập tin đó nên được nhập trong dự án theo thứ tự đầu tiên và sau đó bootstrap như vậy:

@import "yourCusomVarsFile";
@import "bootstrap/scss/bootstrap";
@import "someOther";

Các vars bootstraps đi với cờ '! Mặc định'.

$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

Vì vậy, trong tệp của bạn, bạn sẽ ghi đè các giá trị mặc định. Đây là hình minh họa:

$input-focus-box-shadow: none;
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;

Các var đầu tiên có nhiều ưu tiên hơn thứ hai. Điều tương tự là cho các trạng thái và trường hợp còn lại. Hy vọng nó sẽ giúp bạn.

Đây là tệp '_variable.scss' từ repo, nơi bạn có thể tìm thấy tất cả các giá trị ban đầu từ bootstrap: https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss

Chears


2
a:focus {
  outline: none;
}

cái này hiệu quả với tôi trên BS3


2

Cái này hoạt động với tôi trong Bootstrap 4:

.btn {border-color: transparent;}



1

Hãy ghi nhớ, nếu nút của bạn nằm trong một neo như:

<a href='some_link'>
    <button class='btn'>Button</button>
</a>

Thêm kiểu vào nút có thể không đủ, bạn có thể cần thêm các a:focus, a:active { outline: none }quy tắc CSS khi thích hợp (điều này phù hợp với tôi).


1

Hãy thử dưới đây

.bootstrap-select .dropdown-toggle:focus 
 {
          outline: 0 !important;
 }

1

Đôi khi {outline: 0}không giải quyết được vấn đề và chúng ta có thể thử{box-shadow: none;}


1

Tôi đang sử dụng bootstrap 4, bạn có thể sử dụng phác thảo và bóng hộp.

#buttonId {
    box-shadow: none;
    outline: none;
}

Hoặc nếu nút nằm trong một phần tử như div mà không có mặt sau, bóng hộp là đủ.

#buttonId {
     box-shadow: none;
}

Ví dụ: https://codepen.io/techednelson/pen/XRwgRB


1

Nếu bạn đang sử dụng phiên bản 4.3 trở lên, mã của bạn sẽ không hoạt động chính xác. Đây là những gì tôi đã sử dụng. Nó làm việc cho tôi.

.btn:focus, .btn:active {
    outline: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}

Bạn đúng. Nó không hoạt động mà không có -webkit-box-Shadow: none! Quan trọng; hàng.
Tiểu bang

1

Thay vào đó để nhắm mục tiêu vào lớp nút ( .btn ), ở đây tôi nhắm mục tiêu đến chính phần tử nút và nó hoạt động với tôi.

        button:focus {
          outline:none !important;
          box-shadow:none !important;
        }

Và có thể sử dụng shadow-nonelớp cho trường đầu vào


0

Đây là một phương pháp không phải CSS. Sử dụng JQuery, chỉ cần xóa lớp "tiêu điểm" bất cứ khi nào phần tử được nhấp vào.

$(".btn").mousemove(function(element) { $(this).removeClass("focus"); });

Phương pháp này có thể khiến đường viền lóe lên và sau đó rút lui một cách ngắn gọn, theo quan điểm của tôi (nó trông giống như một phần của phản hồi khi nhấp vào nút).

Lý do tôi sử dụng .mousemove () là .click () và .mouseup () đều tỏ ra không hiệu quả.


2
không thêm nhiều javascript để đánh bại CSS không phải là cách thực hành tốt nhất. IMHO.
David

0

Thay đổi những giá trị này làm việc cho tôi. Tôi đã tìm thấy nó bằng cách xem Công cụ dành cho nhà phát triển của Chrome

.btn-primary:not(:disabled):not(.disabled).active,
.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
    color: #fff;
    background-color: /*Change This*/;
    border-color: /*Change This*/;
}

Cái này cũng giữ lại bóng của nút, nó chỉ thay đổi màu của nút khi nhấp.


0

Ghi đè các câu lệnh bootstrap chính xác:

.btn-primary.focus, .btn-primary:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{
 box-shadow: none;
}

0

Thay đổi màu viền trở lại màu xám

.btn:focus,
.btn:active{
 border: 1px solid #ced4da !important;
}

0

Cách SCSS cho tất cả các yếu tố (không chỉ các nút):

body {
  * {
    &:focus, &.focus,
    &:active, &.active {
      outline: transparent none 0 !important;
      box-shadow: 0 0 0 0 rgba(0,123,255,0) !important;
      -webkit-box-shadow: none !important;
    }
  }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.