Cách xóa đường viền ngoài khỏi nút nhập


138

Khi nhấp vào một nơi khác, đường viền biến mất, đã thử onfocus none, nhưng không giúp được gì, làm thế nào để làm cho đường viền nút xấu xí biến mất khi nhấp vào?

input[type="button"] {
  width: 120px;
  height: 60px;
  margin-left: 35px;
  display: block;
  background-color: gray;
  color: white;
  border: none;
}
<input type="button" value="Example Button">


trông tốt trên trình duyệt mozilla tôi
Drixson Oseña

1
Hình chữ nhật tiêu điểm được cho là giúp người dùng quan sát thấy lần nhấp đó có hiệu quả và do đó ngăn anh ta vô tình nhấp hai lần. Vì vậy, bạn có chắc bạn đang giải quyết một vấn đề và không tạo ra một vấn đề?
Jukka K. Korpela

Câu trả lời:


194

sử dụng dàn ý: không có; chúng ta có thể xóa đường viền đó trong chrome

<style>
input[type="button"]
{
    width:120px;
    height:60px;
    margin-left:35px;
    display:block;
    background-color:gray;
    color:white;
    border: none;
    outline:none;
}
</style>

19
Trên Chrome, tôi phải thêm outline: none;quy tắc vào input[type="button"]:focusthay vì input[type="button"].
Sung Cho

@SungCho: Cảm ơn. Phương pháp của bạn đã giúp tôi.
priyamtheone

76

Tiêu điểm phác thảo trong Chrome và FF

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

loại bỏ:

nhập mô tả hình ảnh ở đây

input[type="button"]{
   outline:none;
}
input[type="button"]::-moz-focus-inner {
   border: 0;
}

Bản giới thiệu

Khả năng tiếp cận (A11Y)

/* Don't forget! User accessibility is important */
input[type="button"]:focus {
  /* your custom focused styles here */
}

54

Nó hoạt động đơn giản đối với tôi :)

*:focus {
    outline: 0 !important;
}

1
Đây là câu trả lời duy nhất phù hợp với tôi, nhưng bạn sẽ làm thế nào nếu không có! Tôi đã nghe từ rất nhiều nguồn rằng bạn chỉ nên sử dụng nó nếu thực sự cần thiết.
Jay

Tôi đã tạo kiểu nút này cho toàn bộ ứng dụng trong css bên ngoài. Nếu bạn muốn bỏ qua nó, bạn có thể làm điều đó với #id trong css bằng cách sử dụng điều đó trong mỗi nút: # button-tyle {outline: 0; } hoặc sử dụng cùng một kiểu cho tất cả các nút mà không có #id trong mỗi nút, đây là liên kết demo : input [type = "button"] {width: 70px; chiều cao: 30px; lề trái: 72px; margin-top: 15px; hiển thị: khối; nền-màu: xám; màu trắng; biên giới: không có; dàn ý: 0; }
X-Coder

19

Cái này làm việc cho tôi

button:focus {
    border: none;
    outline: none;
}

14

Tài outlinesản là những gì bạn cần. Đây là cách viết tắt để đặt từng thuộc tính sau trong một khai báo:

  • outline-style
  • outline-width
  • outline-color

Bạn có thể sử dụng outline: none;, được gợi ý trong câu trả lời được chấp nhận. Bạn cũng có thể cụ thể hơn nếu bạn muốn:

button {
    outline-style: none;
}


5

Đặt cả thuộc tính outlinebox-shadowthuộc tính của nút thành nonevà làm cho chúng quan trọng .

input[type="button"] {
    outline: none !important;
    box-shadow: none !important;
} 


Lý do để đặt các giá trị thành quan trọng là vì nếu bạn đang sử dụng các thư viện hoặc khung công tác CSS khác như Bootstrap, nó có thể bị ghi đè.


4

Để tránh sự cố gây ra khi bạn thay đổi thuộc tính phác thảo trên tiêu điểm, hãy tạo hiệu ứng hình ảnh khi người dùng Tab trên nút nhập hoặc nhấp vào nó.

Trong trường hợp này là loại gửi, nhưng bạn cũng có thể áp dụng cho loại = "nút".

input[type="submit"]:focus {
    outline: none !important;
    background-color: rgb(208, 192, 74);
}


3

Nó rất đơn giản hơn bạn nghĩ. Khi nút được lấy tiêu điểm, hãy áp dụng thuộc outlinetính, như sau:

button:focus {
    outline: 0 !important;
}

Nhưng khi tôi sử dụng nonegiá trị, nó không có tác dụng với tôi.


3

Loại bỏ sự kiện có thể truy cập không cần thiết không phải là một ý tưởng hay trong các phát triển web chuẩn. một trong hai cách nếu bạn đang tìm kiếm một giải pháp, chỉ xóa đường viền không giải quyết được vấn đề. bạn cũng phải loại bỏ bóng màu xanh lam. đối với các tình huống cụ thể, hãy sử dụng một tên lớp riêng biệt để tách biệt kiểu đặc biệt này với nút của bạn.

.btn.focus, .btn:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
}

Tốt hơn nên làm điều này

.remove-border.focus, .remove-border:focus {
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
 }

2

Xóa đường viền là một cơn ác mộng về khả năng tiếp cận. Mọi người tab bằng bàn phím sẽ không bao giờ biết họ đang ở mục nào.

Tốt nhất là để nó, vì hầu hết các nút được nhấp vào sẽ đưa bạn đến một nơi nào đó, hoặc nếu bạn PHẢI xóa đường viền thì hãy tách nó ra một tên lớp cụ thể.

.no-outline {
  outline: none;
}

Sau đó, bạn có thể áp dụng lớp học đó bất cứ khi nào bạn cần.


2

Đưa ra html dưới đây:

<button class="btn-without-border"> Submit </button>

Trong kiểu css, hãy làm như sau:

.btn-without-border:focus {
    border: none;
    outline: none;
}

Mã này sẽ xóa đường viền nút và sẽ vô hiệu hóa tiêu điểm đường viền nút khi nút được nhấp.


2

Như nhiều người khác đã đề cập, selector:focus {outline: none;}sẽ loại bỏ đường viền đó nhưng đường viền đó là một tính năng trợ năng chính cho phép người dùng bàn phím tìm thấy nút và không nên loại bỏ.

Vì mối quan tâm của bạn có vẻ là vấn đề thẩm mỹ, bạn nên biết rằng bạn có thể thay đổi màu sắc, kiểu dáng và chiều rộng của đường viền, làm cho nó phù hợp hơn với kiểu trang web của bạn.

selector:focus {
  outline-width: 1px;
  outline-style: dashed;
  outline-color: red;
}

Tốc ký:

selector:focus {
  outline: 1px dashed red;
}
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.