Namespaces có một cú pháp khá khó chịu trong CSS, bởi vì ":" nhân vật namespace phải được thoát ra bằng một dấu gạch chéo hàng đầu để phân biệt nó từ một pseudo-class:
html\:img {
border: 2px solid black;
}
html\:a:visited html\:img {
border-color: grey;
}
này chỉ thực sự hữu ích khi nhúng HTML bên trong một tài liệu XML. Khi thêm không gian tên html, các phần tử từ không gian tên HTML được hiển thị chính xác như chúng sẽ xuất hiện trong HTML, cho phép truy cập vào các khả năng chưa được CSS cung cấp.
<story xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">
...
<restaurant>
<name>Red Apple Inn</name>
<logo>
<HTML:A href="javascript:alert('Visit the Red Apple Inn!')">
<HTML:IMG src="red-apple.gif" height="50" width="200"/>
</HTML:A>
</logo>
...
Trong ngữ cảnh HTML5, tôi không thể nghĩ ra bất kỳ trường hợp nào bạn cần. Nơi duy nhất mà tôi đã nhìn thấy các không gian tên trong CSS cho đến nay, là CSS mặc định của Webkit cho SVG hoặc MathML và chúng sử dụng một cú pháp khác: quy tắc @namespace
.
Ví dụ, đây là mã từ WebKit/webkit/blob/master/Source/WebCore/css/mathml.css:
@namespace "http://www.w3.org/1998/Math/MathML";
math {
-webkit-line-box-contain: glyphs replaced;
text-indent: 0;
direction: ltr;
}
mtext {
line-height: 1.0;
}
...
Đây là mã từ WebKit/webkit/blob/master/Source/WebCore/css/svg.css:
@namespace "http://www.w3.org/2000/svg";
@namespace html "http://www.w3.org/1999/xhtml";
svg:not(:root), symbol, image, marker, pattern, foreignObject {
overflow: hidden
}
svg:root {
width: 100%;
height: 100%
}
text, foreignObject {
display: block
}
...
Nguồn
2015-07-30 11:07:24
tôi thậm chí không nhìn thấy nó trên [Khi tôi có thể sử dụng?] (Http: //caniuse.com/) và tôi không nghĩ rằng bất kỳ trình duyệt nào cũng hỗ trợ một phần ... –
@DominicBarnes - Đó là trạng thái Khuyến nghị, điều đó có nghĩa là phải có ít nhất hai triển khai độc lập của nó. – Quentin
@Dominic Barnes: Trên thực tế, mọi trình duyệt hiện đại đều hỗ trợ nó, bao gồm IE9 +. Gần đây tôi đã trả lời một câu hỏi về các không gian tên CSS, chứa mã mà bạn có thể sử dụng để xác minh rằng nó hoạt động: http: // stackoverflow.com/questions/9490155/trouble-getting-declaration-namespaces-to-work/9491691 # 9491691 Lý do chính tôi nghi ngờ cho các không gian tên CSS không xuất hiện trên trang web đó là bởi vì không có nhiều trường hợp sử dụng trong thế giới thực cho nó trong ngày hôm nay Ngành công nghiệp web, vì HTML5 là thứ mới mẻ, không sử dụng các không gian tên theo bất kỳ cách nào. – BoltClock