2013-04-23 25 views
6

Tôi đã cố gắng thêm một số hiệu ứng cho các liên kết đã truy cập, sau đó tôi gặp sự cố này.Không thể thay đổi nội dung đã truy cập: trước phần tử giả

Đây là mã: http://dabblet.com/gist/5447894

Chỉ Opera có thể thay đổi thành công nội dung của :before pseudo-yếu tố. Tất cả các trình duyệt khác đều không thành công. Tôi đã bỏ lỡ bất cứ điều gì? Cảm ơn

+1

bản sao có thể có của [Firefox 4 không hiển thị: đã truy cập :: trước (ngoại trừ màu)] (http://stackoverflow.com/questions/5839127/firefox-4-not-rendering-avisitedbefore-except-color) – bookcasey

Trả lời

9

Các phép (= không được bỏ qua) thuộc tính CSS liên kết đến thăm là color, background-color, border-*-color, outline-colorcolumn-rule-color (hơn trong những trường hợp nhất định).

Điều này là để ngăn chặn các cuộc tấn công ăn cắp lịch sử. Xem this article để biết thêm chi tiết.

Vì vậy, về mặt kỹ thuật, bạn có thể đặt lớp học giả :before cho các liên kết :visited nhưng sẽ bị bỏ qua và xuất hiện như thể các liên kết không được truy cập. Đây không phải là lỗi, đó là tính năng;)

+0

Cảm ơn bạn, tôi ngạc nhiên rằng Opera có thể làm cho nó hoạt động :) – Peiwen

+1

Nó có nghĩa là opera thiếu bảo mật! –

2

Có rất nhiều khả năng tạo kiểu liên kết :visited trong trình duyệt hiện đại vì lý do bảo mật - do đó bạn không thể phát hiện trang web nào người dùng đã truy cập trước đây bằng cách kiểm tra phong cách tính toán với javascript.

Các thuộc tính cho phép để tạo kiểu tóc cho :visited liên kết là

  • color
  • background-color
  • border-color (và phụ thuộc tính của nó)
  • outline-color
  • Các bộ phận màu sắc của điền và đột quỵ thuộc tính

Mặc dù vậy, bạn không thể nhận được các giá trị của kiểu được tính cho các liên kết đã truy cập qua javascript.

Bạn có thể đọc thêm về nó here.

+0

Cảm ơn lời giải thích của bạn :) – Peiwen

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