Xóa kiểu dáng hoàn chỉnh của nút / gửi HTML


94

Có cách nào để loại bỏ hoàn toàn kiểu dáng của một nút trong Internet Explorer không? Tôi sử dụng một sprite css cho nút của mình và mọi thứ đều ổn.

Nhưng khi tôi nhấp vào nút, nó di chuyển lên trên cùng một chút, nó làm cho nó trông mất hình dạng. Có trạng thái nhấp css, hoặc tạm dừng không? Tôi không biết điều gì gây ra trạng thái đó.

Tôi biết nó không phải là một vấn đề thực sự lớn, nhưng đôi khi những điều nhỏ nhặt lại quan trọng.

Câu trả lời:


71

Tôi giả định rằng khi bạn nói ' nhấp vào nút, nó sẽ di chuyển lên trên cùng một chút ' bạn đang nói về trạng thái nhấp chuột xuống đối với nút và khi bạn thả nhấp chuột, nó sẽ trở lại trạng thái bình thường ? Và bạn đang tắt hiển thị mặc định của nút bằng cách sử dụng:

input, button, submit { border:none; } 

Nếu vậy..

Cá nhân tôi nhận thấy rằng bạn thực sự không thể dừng / ghi đè / tắt tác vụ gốc của IE này, điều này khiến tôi phải thay đổi đánh dấu của mình một chút để cho phép chuyển động này và không ảnh hưởng đến giao diện tổng thể của nút cho các trạng thái khác nhau.

Đây là đánh dấu cuối cùng của tôi:

<span class="your-button-class">
    <span>
        <input type="Submit" value="View Person">
    </span>
</span>


131

Tôi nghĩ điều này cung cấp một cách tiếp cận toàn diện hơn:

button, input[type="submit"], input[type="reset"] {
	background: none;
	color: inherit;
	border: none;
	padding: 0;
	font: inherit;
	cursor: pointer;
	outline: inherit;
}
<button>Example</button>


2
Tôi không nghĩ nền có 'không' - và điều quan trọng là không tốt.
sheriffderek

4
Thông thường, khi bạn làm điều này, bạn muốn ghi đè các kiểu hiện có tồn tại cho một nút. Hiếm khi bạn muốn làm điều này với HTML sạch sẽ, không có định dạng, do đó sử dụng !important. Điều đó nói rằng tôi đã xóa nó vì đó là một quyết định tình huống. background: nonehoàn toàn hợp lệ: stackoverflow.com/questions/20784292/…
Kevin Leary

Đối với mỗi riêng của họ liên quan đến! Quan trọng. Tôi không nghĩ rằng tôi có thể làm việc trong một dự án mà tôi buộc phải sử dụng nó. RE: 'none' Đây là một tài liệu tham khảo tốt hơn một bài đăng SO. Khi bạn sử dụng 'background' của chính nó, bạn thực sự đang sử dụng tốc ký và làm tắc nghẽn tất cả các thuộc tính.
sheriffderek

Tôi đã tự lái xe cho mình về sự khác biệt giữa tạo kiểu một hình ảnh và một số văn bản bên trong một nút và để nó trông giống như bên ngoài <button/>... trong trường hợp của tôi, font: inherit;đã thực hiện một mẹo nhỏ. Cảm ơn bạn!
Kate

3
Tôi nghĩ rằng vì mục đích trợ năng, bạn có thể muốn để phác thảo đó ở đó. nếu không, khi bạn lướt qua nó, không có gợi ý trực quan cho thấy bạn đang ở đâu. câu trả lời tuyệt vời mặc dù!
John Hooper

43

Câu hỏi của bạn là "Internet Explorer", nhưng đối với những người quan tâm đến các trình duyệt khác, giờ đây bạn có thể sử dụng all: unsettrên các nút để loại bỏ chúng.

Nó không hoạt động trong IE hoặc Edge 18, nhưng nó được hỗ trợ tốt ở mọi nơi khác.

https://caniuse.com/#feat=css-all

Cảnh báo màu Safari: Việc thiết lập văn bản colorcủa nút sau khi sử dụng all: unsetcó thể không thành công trong Safari 13.1, do lỗi trong WebKit . (Lỗi sẽ được sửa trong Safari 14 trở lên.) " all: unsetĐang đặt -webkit-text-fill-colorthành màu đen và màu đó sẽ ghi đè." Nếu bạn cần đặt văn bản colorsau khi sử dụng all: unset, hãy đảm bảo đặt cả dấu colorvà chữ -webkit-text-fill-colorthành cùng một màu.

Cảnh báo trợ năng: Vì lợi ích của những người dùng không sử dụng con trỏ chuột, hãy nhớ thêm lại một số :focuskiểu, ví dụ: button:focus { outline: orange auto 5px }đối với khả năng tiếp cận bàn phím .

Và đừng quên cursor: pointer. all: unsetloại bỏ tất cả kiểu dáng, bao gồm cả kiểu cursor: pointerlàm cho con trỏ chuột của bạn trông giống như một bàn tay trỏ khi bạn di chuột qua nút. Bạn gần như chắc chắn muốn mang điều đó trở lại.

button {
  all: unset;
  color: blue;
  -webkit-text-fill-color: blue;
  cursor: pointer;
}

button:focus {
  outline: orange 5px auto;
}
<button>check it out</button>


1
Cảm ơn vì điều này!
Will Ediger

Điều này không được khuyến khích vì lý do trợ năng. Ví dụ: bạn sẽ cần thêm lại tất cả các outlinekiểu cho :focustrạng thái phần tử.
Devin ngày

@Devin Điểm tuyệt vời! Tôi đã cập nhật bài đăng của mình với một gợi ý để thêm lại một outlinekiểu. (Nhưng tôi không nghĩ rằng có bất cứ điều gì khác mà chúng tôi cần thêm lại cho các mục đích của năm. Bạn có biết gì không?)
Dan Fabulich

8

Thử xóa đường viền khỏi nút của bạn:

input, button, submit
{
  border:none;
}

4

Trong bootstrap 4 là dễ nhất. Bạn có thể sử dụng các lớp: bg-transparentborder-0


+ shadow-noneđối với tôi và nó đủ. Cám ơn!
Bachet

0

Tôi nghĩ rằng đó là trạng thái "hoạt động" của nút.


Nó phải là trạng thái hoạt động, bạn đúng +1 cho điều đó. Nhưng tôi đã không làm cho nó hoạt động đúng
Saif Bechan

"Tôi nghĩ" không phải là một câu trả lời.
shinzou
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.