2012-05-08 36 views
7

Tôi biết rằng tôi có thể làm như sau nếu tôi muốn chuyển một hình ảnh vào một liên kết nhấp thể:Có OK để có một thẻ neo rỗng không?

<a href="http://twitter.com/username"><img src="icons/twitter.png" /></a> 

Nhưng tôi muốn sử dụng một hình ảnh nền CSS để tôi có thể có một trạng thái hover:

<a class="twitter" href="http://twitter.com/username"></a> 

# css 
.twitter{display:block; width:16px; height:16px; background:url("twitter.png")} 

này hoạt động tốt, ngoại trừ tôi không chắc chắn đó là hoàn toàn hợp lệ để có một liên kết anchor có chứa gì. Chrome làm cho nó tốt, cũng như FF, nhưng tôi không chắc chắn nếu những người khác là như nhau.

Tôi nhận ra rằng tôi chỉ có thể đặt một số văn bản bên trong liên kết và ẩn nó bằng text-indent: -9999px, nhưng tôi chưa bao giờ thích cách tiếp cận đó, cho variousreasons. Mã của tôi có tương thích với trình duyệt chéo không?

Trả lời

12

Đó là hợp lệ, nhưng tốt nhất nếu bạn đã đặt một cái gì đó ở đó và sử dụng cái gì đó như

font-size: 0; 

để ẩn nó đi. Bằng cách này, nếu ai đó không có CSS ​​(ví dụ như trình đọc màn hình), anh ta vẫn có thể biết được liên kết là gì.

Here's a great article on the subject

+3

Hoặc 'font-size: 0;', có lẽ, nhưng bất kỳ kích thước tương đối dựa trên 'em' đơn vị có khả năng sẽ bị ảnh hưởng xấu bởi điều đó. –

+0

@DavidThomas: Đó là lý do tại sao tôi nói "một cái gì đó như" Có một số giải pháp :) –

+2

Hoặc bất kỳ kỹ thuật thay thế hình ảnh khác nhau: http://css-tricks.com/css-image-replacement/ –

2

Nó là hoàn toàn hợp lệ, nhưng nếu bạn muốn, bạn có thể đặt một khoảng trống bên trong: &nbsp;

+0

cảm ơn, đã không nghĩ về điều đó :) – stephenmurdoch

7

Nó không phải là OK ở tất cả, vì nó phá vỡ nguyên tắc tiếp cận cơ bản. Không có cách nào để chỉ định văn bản thay thế cho hình nền, giống như cách bạn có thể và nên chỉ định nó bằng cách sử dụng thuộc tính alt trong thẻ img cho hình ảnh nội dung. Xem WCAG 2.0 Guideline 1.1.

Nếu bạn muốn thay đổi hình ảnh khi di chuột qua, có các kỹ thuật CSS và JavaScript cho điều đó.

+0

Điểm tốt về khả năng truy cập, nhờ liên kết – stephenmurdoch

1

Sử dụng & nbsp; như văn bản, và bạn tốt.

+1

Xem nhận xét về câu trả lời của tôi ở trên về lý do tại sao đó là hành động không tốt để thực hiện. –

1

Tại Markup.tips, gần đây chúng tôi đã thực hiện một số thử nghiệm trợ năng trong iOS 8 và phát hiện ra rằng VoiceOver sẽ không điều hướng đến các liên kết trống. Phải có ít nhất là một không gian không phá vỡ. Cho dù điều này có nên được coi là một lỗi iOS hay không, chúng tôi không chắc chắn.

Các vấn đề liên quan