2010-01-29 29 views

Trả lời

37

đường dẫn CSS luôn (trừ khi IE6 là buggy và ngu ngốc và cố gắng để tải .htc file được xác định trong CSS behavior các thuộc tính liên quan đến tài liệu) liên quan đến bản định kiểu và không phụ thuộc vào vị trí HTML. Đối với các nội dung khác, <base> sẽ ảnh hưởng đến thư mục hiện tại được nhận biết của HTML như thể tệp được đặt trong thư mục được xác định bởi cơ sở. Do đó, nó ảnh hưởng đến những thứ như location.href=...;. Nhân tiện, kiểu nội tuyến và thông tin kiểu trong phần tử <style> được tải tương đối so với vị trí tài liệu. Những người bị ảnh hưởng bởi các tag <base>, tất nhiên.

+0

kỹ lưỡng và concise.Thanks. –

12

Thẻ base thực sự chỉ được vinh danh bởi các liên kết tương đối bên trong tài liệu HTML chính nó. Tuy nhiên, có một lỗi cụ thể của IE6 mà bạn thực sự cần phải tính đến khi sử dụng thẻ <base> trong HTML (không phải trong XHTML). Thẻ <base> được trong HTML ghi nhận như không có một thẻ kết thúc </base>, nhưng IE6 sai giả định nó cho đúng mà sẽ gây ra rằng toàn bộ nội dung sau thẻ <base> được đặt như con của <base> thẻ trong cây HTML DOM của nó . Điều này có thể gây ra ngay từ những vấn đề không thể giải thích đầu tiên trong Javascript/jQuery/CSS, tức là các yếu tố không thể truy cập được hoàn toàn trong các lựa chọn cụ thể (ví dụ: html>body) cho đến khi bạn phát hiện ra có một số base ở giữa.

Một bình thường sửa chữa IE6 đang sử dụng bình luận có điều kiện để bao gồm các thẻ kết thúc:

<base href="http://example.com/"><!--[if lte IE 6]></base><![endif]--> 
+0

+1 để làm rõ IE6. –

+0

Có lý do nào để không làm không? –

+1

@Marcus: Nó không hợp lệ HTML4 (mặc dù các trình duyệt chấp nhận nó). Nhưng trong HTML5 bạn hoàn toàn có thể làm như vậy. – BalusC

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