Tôi đã xem xét chức năng mặc định của các phần tử biểu mẫu và các trạng thái khác nhau mà chúng có giữa các trình duyệt. Tôi tìm thấy một cái gì đó khá lạ. Điều này đã được thử nghiệm trong các trình duyệt khác nhau và kết quả tương tự. Ảnh chụp màn hình bên dưới là từ Chrome v44.0.2403.155m (Windows 64 bit).Tại sao phần tử giả: tập trung vào nút khi sử dụng TAB nhưng không nhấp?
Ok, do đó, vấn đề là với trạng thái lấy nét của các nút. Dưới đây bạn sẽ thấy một biểu mẫu mặc định không có kiểu dáng css. Tôi bấm vào đầu vào đầu tiên và sau đó sử dụng phím Tab để tab xuống các yếu tố hình thức. Trong chrome, bạn sẽ nhận được đường viền màu xanh nhạt được áp dụng cho mọi phần tử bạn tab lên.
Chú ý rằng khi tôi nhấp vào nút chuột không có màu xanh nhạt "tập trung" nhà nước nó chỉ xảy ra khi tôi tab vào nó.
Tôi cho rằng điều này chỉ sử dụng: lấy nét và nếu nút theo kiểu của tôi: lấy nét thì tôi sẽ có thể sao chép hành vi mặc định này. Tab lên một nút nó nổi bật, bấm vào một nút nó không. Có một cái nhìn tại phiên bản này mang phong cách của mẫu ...
Khi tôi bấm vào các đầu vào đầu tiên và tab xuống nó điều tương tự, phác thảo tùy chỉnh của tôi được hiển thị (điều này là tốt). Tuy nhiên, hãy chú ý khi tôi nhấp vào nút, nó đang áp dụng trạng thái: focus cho nó. Điều này không giống như hành vi mặc định. Trong phiên bản không theo kiểu, nhấp chuột không áp dụng trạng thái lấy nét.
CSS duy nhất mà tôi đang sử dụng vào nút là ...
input:focus, button:focus {
outline: 2px solid green;
}
Đây là một bản demo: http://jsfiddle.net/oy83s4up
Làm thế nào để đảm bảo không có đề cương khi nút được nhấn vào, chỉ khi nó được tab?. Ngoài ra, theo mặc định khi một nút được lấy nét bằng phím tab, ngay cả khi nút được nhấp, đường viền vẫn còn, đây cũng là chức năng tôi muốn sao chép.
Lưu ý: Tôi không tìm kiếm công việc JS xung quanh, Hoạt ảnh đầu tiên là hành vi mặc định trong trình duyệt. Chắc chắn nó có thể sao chép với css chỉ? Nếu không, thì đó là một lỗi.
Nếu bạn không muốn đề cương xanh cho nút gửi - tốt, sau đó không định dạng 'nút: focus' với một phác thảo ...? Không thực sự rõ ràng với tôi những gì bạn đang yêu cầu ở đây. – CBroe
@CBroe Theo mặc định, khi tabbing vào nút, đường viền được hiển thị. Khi nhấp vào nó, mặc dù, phác thảo không được hiển thị. Đây là hành vi mà anh ta muốn. Tuy nhiên, ngay khi bạn tạo kiểu cho nút (theo bất kỳ cách nào), hành vi này sẽ thay đổi. Đường viền vẫn được hiển thị khi nút được gắn thẻ, nhưng bây giờ đường viền cũng được hiển thị khi nhấp chuột. Câu hỏi là: Làm thế nào để loại bỏ các phác thảo trên nhấp chuột, nhưng không phải khi tabbed (như là mặc định). – Lionel