2012-05-06 41 views
8

Ví dụ sau: http://jsfiddle.net/A8v9x/4/ - khi bạn nhấp vào liên kết đầu tiên và sau đó quay lại trang, liên kết đầu tiên chuyển sang màu xanh lục. Tuy nhiên, nó vẫn không có gạch dưới, mặc dù các liên kết được truy cập được khai báo là có text-decoration:underline;. Không có gì thay đổi ngay cả khi bạn thêm !important vào quy tắc đó.Gạch dưới các liên kết đã truy cập

Không thể tìm thấy bất kỳ thông tin nào về hành vi như vậy trong thông số CSS. Đây có phải là lỗi trình duyệt phổ biến không? Làm thế nào để làm việc xung quanh nó?

+0

câu hỏi rất hay, có vẻ như 'a: hover' không tôn trọng' text-decoration: underline', nhưng 'a: visited' không vì một lý do nếu' a: link' có 'text-decoration: none' ... –

Trả lời

14

Bạn không thể thay đổi kiểu trang trí văn bản trong :visited. Điều này nằm ngoài mối quan tâm riêng tư được thảo luận tại https://developer.mozilla.org/en/CSS/Privacy_and_the_:visited_selector. Về cơ bản, việc thay đổi các thuộc tính được tính toán có thể cho phép các trang web xác định trang web mà người dùng đã truy cập.

Thuộc tính CSS có thể được sử dụng để tạo kiểu liên kết được truy cập là màu, màu nền, đường viền - * - màu, đường viền màu và màu cột quy tắc và khi cả kiểu không được truy cập và truy cập là màu (không sơn máy chủ hoặc không có), các thuộc tính điền và đột quỵ. Đối với các thuộc tính không được phép (và đối với các thành phần alpha của thuộc tính được phép, khi sử dụng màu rgba() hoặc hsla() hoặc màu trong suốt), thay vào đó, kiểu dáng cho các liên kết chưa được sử dụng sẽ được sử dụng.

+1

Cảm ơn bạn, điều này nghe có vẻ hợp lý! – naivists

1

Tôi đã gặp vấn đề tương tự ngày hôm qua và tôi đã tìm thấy giải pháp thay thế. Trong những ngày cũ tôi đã sử dụng để đặt các liên kết với các liên kết gạch chân và truy cập mà không cần, để đơn giản hơn cho khách truy cập không nhấp vào liên kết tương tự hai lần.

Tôi đã có một bất ngờ hôm qua khi cố gắng làm điều tương tự và không hoạt động. Tôi mất 30 phút cho đến khi tôi tìm thấy trên internet rằng kể từ năm 2007 tất cả các trình duyệt giới hạn các thuộc tính mà bạn có thể đưa vào "truy cập" vì lý do bảo mật. Họ chỉ giống như 6-7 tài sản bạn có thể thiết lập để "truy cập". Và một trong số đó có màu đường viền. Sau đó, tôi nghĩ đặt gạch dưới là không, và sử dụng "đường viền dưới cùng màu" để gạch dưới. Bạn không thể đặt "border-bottom-color: transparent;" cho lượt truy cập, nhưng bạn có thể đặt màu đường viền có cùng màu với thành phần gốc màu nền. Điều đó sẽ làm cho gạch dưới vô hình khi liên kết được truy cập.

<style type="text/css"> 
body{color:black;background-color:white;} 
a:link{color:blue;text-decoration:none;border-bottom: 1px solid;border-bottom-color:blue;} 
a:visited{color:red;border-bottom-color:white;} 
</style> 

Hoặc bạn có thể làm ngược lại (những gì bạn đang yêu cầu) bằng cách đặt màu đường viền liên kết giống như nền và màu khác cho lượt truy cập.

Demo để ngược lại: https://jsfiddle.net/stfr9f9a

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