Css ký quỹ âm w3schools
CSS (Cascading Style Sheets) là ngôn ngữ để mô tả việc hiển thị các tài liệu HTML và XML trên màn hình, trên giấy, trong lời nói, v.v. Để liên kết các thuộc tính kiểu với các phần tử trong tài liệu, CSS sử dụng các bộ chọn, là các mẫu khớp với một hoặc nhiều phần tử. Tài liệu này mô tả các bộ chọn được đề xuất cho CSS cấp độ 3. Nó bao gồm và mở rộng các bộ chọn của CSS cấp 2 Show Tình trạng của tài liệu nàyTài liệu này là một trong những "mô-đun" của đặc tả CSS3 sắp tới. Nó không chỉ mô tả các bộ chọn đã tồn tại trong và mà còn đề xuất các bộ chọn mới cho CSS3 cũng như cho các ngôn ngữ khác có thể cần chúng. Nhóm làm việc CSS không mong đợi rằng tất cả các triển khai CSS3 sẽ phải triển khai tất cả các bộ chọn. Thay vào đó, có thể sẽ có một số ít biến thể của CSS3, được gọi là "hồ sơ". Ví dụ: có thể chỉ một hồ sơ dành cho tác nhân người dùng không tương tác sẽ bao gồm tất cả các bộ chọn được đề xuất Thông số kỹ thuật này đang được Nhóm làm việc CSS đưa ra. Tài liệu này là bản sửa đổi của Bản thảo làm việc ngày 26 tháng 1 năm 2001 và đã kết hợp các đề xuất nhận được trong quá trình xem xét cuộc gọi cuối cùng, nhận xét và thảo luận thêm của Nhóm làm việc W3C CSS Thời hạn của Đề xuất Ứng viên dự kiến sẽ kéo dài khoảng sáu tháng (kết thúc vào tháng 5 năm 2002). Tất cả mọi người được khuyến khích xem xét và thực hiện thông số kỹ thuật này và gửi lại nhận xét cho danh sách gửi thư công khai (được lưu trữ) (xem hướng dẫn). Thành viên W3C cũng có thể gửi nhận xét trực tiếp đến Nhóm làm việc CSS Nếu thông số kỹ thuật này chứng minh là không thể thực hiện được, Nhóm làm việc sẽ đưa tài liệu trở lại trạng thái Bản thảo làm việc và thực hiện các thay đổi cần thiết. Mặt khác, Nhóm công tác dự kiến sẽ yêu cầu Giám đốc W3C chuyển tài liệu này thành Khuyến nghị được đề xuất Đây vẫn là một tài liệu nháp và có thể được cập nhật, thay thế hoặc lỗi thời bởi các tài liệu khác bất cứ lúc nào. Không phù hợp khi trích dẫn Khuyến nghị của Ứng viên W3C ngoài "công việc đang tiến hành. " Có thể tìm thấy danh sách các bản nháp đang hoạt động của W3C tại http. //www. w3. tổ chức/TR Tài liệu này có thể có sẵn trong bản dịch. Phiên bản tiếng Anh của thông số kỹ thuật này là phiên bản quy chuẩn duy nhất Phụ thuộc với các Mô-đun CSS3 khác
Các thành viên của Nhóm làm việc CSS+FP đã đề xuất trong cuộc họp Clamart để mô đun hóa đặc tả CSS Việc mô đun hóa này và việc xuất hiện cú pháp chung của CSS sẽ làm giảm kích thước của đặc tả và cho phép các đặc tả mới sử dụng bộ chọn và/hoặc cú pháp chung của CSS. Ví dụ, các hành vi hoặc chuyển đổi cây Thông số kỹ thuật này chứa riêng một bài kiểm tra cho mỗi khái niệm được giới thiệu trong tài liệu này. Các thử nghiệm này không phải là thử nghiệm tuân thủ đầy đủ nhưng nhằm mục đích cung cấp cho người dùng cách kiểm tra xem một phần của thông số kỹ thuật này có được triển khai theo mức tối thiểu của quảng cáo hay hoàn toàn không được triển khai 1. 1 Thay đổi từ CSS2Sự khác biệt chính giữa bộ chọn trong CSS2 và bộ chọn trong Bộ chọn là
2. Bộ chọnMột Selector đại diện cho một cấu trúc. Cấu trúc này có thể được sử dụng như một điều kiện (e. g. trong quy tắc CSS) xác định phần tử nào mà bộ chọn khớp với cây tài liệu hoặc dưới dạng mô tả phẳng của đoạn HTML hoặc XML tương ứng với cấu trúc đó Bộ chọn có thể bao gồm từ các tên phần tử đơn giản đến các biểu diễn theo ngữ cảnh phong phú Bảng sau đây tóm tắt cú pháp Selector Ý nghĩa của mỗi bộ chọn được lấy từ bảng trên bằng cách thêm "khớp" vào trước nội dung của từng ô trong cột "Ý nghĩa" Phân biệt chữ hoa chữ thường của tên thành phần ngôn ngữ tài liệu trong bộ chọn phụ thuộc vào ngôn ngữ tài liệu. Ví dụ: trong HTML, tên phần tử không phân biệt chữ hoa chữ thường nhưng trong XML chúng phân biệt chữ hoa chữ thường Phân biệt chữ hoa chữ thường của tên thuộc tính và giá trị thuộc tính trong bộ chọn thuộc tính cũng phụ thuộc vào ngôn ngữ tài liệu Bộ chọn là một chuỗi gồm một hoặc nhiều bộ chọn được phân tách bằng Một chuỗi các bộ chọn đơn giản là một chuỗi không được phân tách bằng dấu. Nó luôn bắt đầu bằng một hoặc một. Không cho phép bộ chọn loại hoặc bộ chọn phổ quát nào khác trong chuỗi A là một , , , , , hoặc. Một cái có thể được thêm vào chuỗi cuối cùng của bộ chọn đơn giản Bộ kết hợp là. khoảng trắng, "dấu lớn hơn" ( link[hreflang=fr]2), "dấu cộng" ( link[hreflang=fr]3) và "dấu ngã" ( link[hreflang=fr]4). Khoảng trắng có thể xuất hiện giữa bộ kết hợp và bộ chọn đơn giản xung quanh nó. Chỉ các ký tự "dấu cách" (mã Unicode 32), "tab" (9), "nạp dòng" (10), "dấu xuống dòng" (13) và "nạp biểu mẫu" (12) mới có thể xuất hiện trong khoảng trắng. Các ký tự giống như khoảng trắng khác, chẳng hạn như "em-space" (8195) và "dấu cách chữ tượng hình" (12288), không bao giờ là một phần của khoảng trắng Các thành phần của cây tài liệu được đại diện bởi bộ chọn được gọi là chủ thể của bộ chọn. Một bộ chọn bao gồm một chuỗi các bộ chọn đơn giản đại diện cho bất kỳ phần tử nào đáp ứng các yêu cầu của nó. Việc thêm trước một chuỗi bộ chọn đơn giản khác và bộ kết hợp vào chuỗi sẽ áp đặt các ràng buộc đối sánh bổ sung, do đó, đối tượng của bộ chọn luôn là một tập hợp con của các phần tử được biểu thị bằng chuỗi bộ chọn đơn giản ngoài cùng bên phải Ghi chú. một bộ chọn trống, không chứa chuỗi các bộ chọn đơn giản và không có bộ kết hợp, là một Khi một số bộ chọn chia sẻ cùng một khai báo, chúng có thể được nhóm thành một danh sách được phân tách bằng dấu phẩy (Các) ví dụ CSS Trong ví dụ này, chúng tôi cô đọng ba quy tắc với các khai báo giống hệt nhau thành một. Như vậy, h1 { font-family: sans-serif } h2 { font-family: sans-serif } h3 { font-family: sans-serif }tương đương với. h1, h2, h3 { font-family: sans-serif } Cảnh báo. sự tương đương là đúng trong ví dụ này vì tất cả các bộ chọn đều là bộ chọn hợp lệ. Nếu chỉ một trong các bộ chọn này không hợp lệ, thì toàn bộ nhóm bộ chọn không hợp lệ, do đó làm mất hiệu lực quy tắc cho cả ba thành phần tiêu đề, trong khi chỉ một trong ba quy tắc tiêu đề riêng lẻ sẽ không hợp lệ Bộ chọn loại là tên của loại thành phần ngôn ngữ tài liệu. Bộ chọn loại đại diện cho một thể hiện của loại phần tử trong cây tài liệu Thí dụ Bộ chọn sau đại diện cho một phần tử link[hreflang=fr]5 trong cây tài liệu h1 6. 1. 1 Bộ chọn loại và Không gian tênBộ chọn loại cho phép một thành phần không gian tên () tùy chọn. Tiền tố không gian tên đã được khai báo trước đó có thể được thêm vào trước tên phần tử được phân tách bằng dấu tách không gian tên "thanh dọc" ( link[hreflang=fr]6). Thành phần không gian tên có thể để trống để chỉ ra rằng bộ chọn chỉ đại diện cho các phần tử không có không gian tên được khai báo. Ngoài ra, dấu hoa thị có thể được sử dụng cho tiền tố không gian tên, cho biết rằng bộ chọn đại diện cho các phần tử trong bất kỳ không gian tên nào (bao gồm cả các phần tử không có không gian tên). Bộ chọn loại phần tử không có thành phần không gian tên (không có dấu tách không gian tên), đại diện cho các phần tử mà không quan tâm đến không gian tên của phần tử (tương đương với " link[hreflang=fr]7") trừ khi một không gian tên mặc định đã được khai báo. Trong trường hợp đó, bộ chọn sẽ chỉ đại diện cho các phần tử trong không gian tên mặc định Ghi chú. bộ chọn loại chứa tiền tố không gian tên chưa được khai báo trước đó là bộ chọn. Cơ chế khai báo tiền tố không gian tên tùy thuộc vào ngôn ngữ triển khai Bộ chọn. Trong CSS, cơ chế như vậy được định nghĩa trong mô-đun Cú pháp chung Cần lưu ý rằng nếu tiền tố không gian tên được sử dụng trong bộ chọn chưa được khai báo trước đó, thì bộ chọn phải được coi là không hợp lệ và toàn bộ quy tắc kiểu sẽ bị bỏ qua theo Cần lưu ý thêm rằng trong một máy khách nhận biết không gian tên, các bộ chọn loại phần tử sẽ chỉ khớp với bộ chọn của phần tử. Xem các ghi chú về các hành vi phù hợp ở khách hàng cấp dưới Tóm tắt link[hreflang=fr]8phần tử có tên E trong không gian tên ns link[hreflang=fr]9phần tử có tên E trong bất kỳ không gian tên nào, kể cả những phần tử không có bất kỳ không gian tên nào được khai báo link[hreflang=fr]10phần tử có tên E nhưng không có bất kỳ không gian tên nào được khai báo link[hreflang=fr]11nếu không có không gian tên mặc định nào được chỉ định, điều này tương đương với *. E. Mặt khác, nó tương đương với ns. E trong đó ns là không gian tên mặc định ví dụ CSS link[hreflang=fr]3 Quy tắc đầu tiên sẽ chỉ khớp với các phần tử link[hreflang=fr]5 trong tệp "http. //www. thí dụ. không gian tên com" Quy tắc thứ hai sẽ phù hợp với tất cả các yếu tố trong "http. //www. thí dụ. không gian tên com" Quy tắc thứ ba sẽ chỉ khớp với các phần tử link[hreflang=fr]5 mà không có bất kỳ không gian tên nào được khai báo Quy tắc thứ tư sẽ khớp với các phần tử link[hreflang=fr]5 trong bất kỳ không gian tên nào (kể cả những phần tử không có bất kỳ không gian tên nào được khai báo) Quy tắc cuối cùng tương đương với quy tắc thứ tư vì không có vùng tên mặc định nào được xác định Bộ chọn chung, được viết là "dấu hoa thị" ( link[hreflang=fr]15), đại diện cho tên đủ điều kiện của bất kỳ loại phần tử nào. Sau đó, nó đại diện cho bất kỳ phần tử đơn lẻ nào trong cây tài liệu trong bất kỳ không gian tên nào (bao gồm cả những phần tử không có bất kỳ không gian tên được khai báo nào) nếu không có không gian tên mặc định nào được chỉ định. Nếu một không gian tên mặc định đã được chỉ định, xem bên dưới Nếu bộ chọn phổ quát không phải là thành phần duy nhất của chuỗi các bộ chọn đơn giản, thì có thể bỏ qua link[hreflang=fr]15. Ví dụ
Ghi chú. không nên bỏ qua link[hreflang=fr]15, đại diện cho bộ chọn chung 6. 2. 1 Bộ chọn chung và Không gian tênBộ chọn chung cho phép một thành phần không gian tên tùy chọn h1, h2, h3 { font-family: sans-serif }04tất cả các phần tử trong không gian tên ns____405tất cả các phần tử h1, h2, h3 { font-family: sans-serif }06tất cả các phần tử không có bất kỳ không gian tên nào được khai báo link[hreflang=fr]15nếu không có không gian tên mặc định nào được chỉ định, điều này tương đương với *. *. Mặt khác, nó tương đương với ns. * trong đó ns là không gian tên mặc định Ghi chú. bộ chọn chung chứa tiền tố không gian tên chưa được khai báo trước đó là bộ chọn. Cơ chế khai báo tiền tố không gian tên tùy thuộc vào ngôn ngữ triển khai Bộ chọn. Trong CSS, cơ chế như vậy được định nghĩa trong mô-đun Cú pháp chung Bộ chọn cho phép biểu diễn các thuộc tính của phần tử 6. 3. 1 Bộ chọn giá trị và hiện diện thuộc tínhCSS2 đã giới thiệu bốn bộ chọn thuộc tính h1, h2, h3 { font-family: sans-serif }08Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09, bất kể giá trị của thuộc tính là gì. h1, h2, h3 { font-family: sans-serif }10Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09 với giá trị chính xác là "val". h1, h2, h3 { font-family: sans-serif }12Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09 có giá trị là danh sách các từ được phân tách bằng dấu cách, một trong số đó chính xác là "val". Nếu bộ chọn này được sử dụng, các từ trong giá trị không được chứa dấu cách (vì chúng được phân tách bằng dấu cách). h1, h2, h3 { font-family: sans-serif }14Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09, giá trị của nó chính xác là "val" hoặc bắt đầu bằng "val" ngay sau dấu "-". Điều này chủ yếu nhằm mục đích cho phép khớp mã con ngôn ngữ (e. g. , thuộc tính h1, h2, h3 { font-family: sans-serif }16 trên phần tử h1, h2, h3 { font-family: sans-serif }17 trong HTML) như được mô tả trong RFC 3066 (). Ghi chú. để khớp mã con ngôn ngữ h1, h2, h3 { font-family: sans-serif }18 (hoặc h1, h2, h3 { font-family: sans-serif }19), vui lòng xem Giá trị thuộc tính phải là định danh hoặc chuỗi. Phân biệt chữ hoa chữ thường của tên và giá trị thuộc tính trong bộ chọn tùy thuộc vào ngôn ngữ tài liệu ví dụ Ví dụ: bộ chọn thuộc tính sau đại diện cho một phần tử link[hreflang=fr]5 mang thuộc tính h1, h2, h3 { font-family: sans-serif }22, bất kể giá trị của nó là gì h1, h2, h3 { font-family: sans-serif }4 Trong ví dụ sau, bộ chọn đại diện cho một phần tử h1, h2, h3 { font-family: sans-serif }23 có thuộc tính h1, h2, h3 { font-family: sans-serif }24 có chính xác giá trị "ví dụ" h1, h2, h3 { font-family: sans-serif }7Có thể sử dụng nhiều bộ chọn thuộc tính để biểu thị một số thuộc tính của một phần tử hoặc một số điều kiện trên cùng một thuộc tính Ở đây, bộ chọn đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }23 có thuộc tính h1, h2, h3 { font-family: sans-serif }26 có giá trị chính xác là "Cleveland" và thuộc tính h1, h2, h3 { font-family: sans-serif }27 có giá trị chính xác là "Columbus" link[hreflang=fr]1 Các bộ chọn sau đây minh họa sự khác biệt giữa "=" và "~=". Ví dụ, bộ chọn đầu tiên sẽ đại diện cho giá trị "copyright copyleft copyeditor" trên thuộc tính h1, h2, h3 { font-family: sans-serif }28. Bộ chọn thứ hai sẽ chỉ đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }29 với thuộc tính h1, h2, h3 { font-family: sans-serif }30 có giá trị chính xác "http. //www. w3. tổ chức/" link[hreflang=fr]5 Bộ chọn sau đại diện cho một phần tử h1, h2, h3 { font-family: sans-serif }17 có thuộc tính h1, h2, h3 { font-family: sans-serif }16 chính xác là "fr" link[hreflang=fr] Bộ chọn sau đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }17 mà các giá trị của thuộc tính h1, h2, h3 { font-family: sans-serif }16 bắt đầu bằng "en", bao gồm "en", "en-US" và "en-cockney" link[hreflang=fr]1 Tương tự, các bộ chọn sau đại diện cho một phần tử h1, h2, h3 { font-family: sans-serif }35 bất cứ khi nào nó có một trong hai giá trị khác nhau cho một thuộc tính h1, h2, h3 { font-family: sans-serif }36 h1, h2, h3 { font-family: sans-serif }0 6. 3. 2 bộ chọn thuộc tính phù hợp với chuỗi conBa bộ chọn thuộc tính bổ sung được cung cấp để khớp các chuỗi con trong giá trị của một thuộc tính h1, h2, h3 { font-family: sans-serif }37Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09 có giá trị bắt đầu bằng tiền tố "val" h1, h2, h3 { font-family: sans-serif }39Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09 có giá trị kết thúc bằng hậu tố "val" h1, h2, h3 { font-family: sans-serif }41Đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }09 có giá trị chứa ít nhất một phiên bản của chuỗi con "val" Giá trị thuộc tính phải là định danh hoặc chuỗi. Phân biệt chữ hoa chữ thường của tên thuộc tính trong bộ chọn tùy thuộc vào ngôn ngữ tài liệu Thí dụ Bộ chọn sau đại diện cho một HTML h1, h2, h3 { font-family: sans-serif }43, tham chiếu một hình ảnh h1, h2, h3 { font-family: sans-serif }1 Bộ chọn sau đại diện cho một liên kết HTML h1, h2, h3 { font-family: sans-serif }29 với thuộc tính h1, h2, h3 { font-family: sans-serif }30 có giá trị kết thúc bằng ". html" h1, h2, h3 { font-family: sans-serif }2 Bộ chọn sau đại diện cho một đoạn HTML có thuộc tính h1, h2, h3 { font-family: sans-serif }22 có giá trị chứa chuỗi con "xin chào" h1, h2, h3 { font-family: sans-serif }3 6. 3. 3 Bộ chọn thuộc tính và Không gian tênBộ chọn thuộc tính cho phép một thành phần không gian tên tùy chọn cho tên thuộc tính. Tiền tố không gian tên đã được khai báo trước đó có thể được thêm vào trước tên thuộc tính được phân tách bằng dấu tách không gian tên "thanh dọc" ( link[hreflang=fr]6). Để phù hợp với Không gian tên trong đề xuất XML, các không gian tên mặc định không áp dụng cho các thuộc tính, do đó, bộ chọn thuộc tính không có thành phần không gian tên chỉ áp dụng cho các thuộc tính không có không gian tên được khai báo (tương đương với " h1, h2, h3 { font-family: sans-serif }48"). Dấu hoa thị có thể được sử dụng cho tiền tố không gian tên cho biết rằng bộ chọn sẽ khớp với tất cả các tên thuộc tính mà không cần quan tâm đến không gian tên của thuộc tính Ghi chú. bộ chọn thuộc tính có tên thuộc tính chứa tiền tố không gian tên chưa được khai báo trước đó là bộ chọn. Cơ chế khai báo tiền tố không gian tên tùy thuộc vào ngôn ngữ triển khai Bộ chọn. Trong CSS, cơ chế như vậy được định nghĩa trong mô-đun Cú pháp chung ví dụ CSS h1, h2, h3 { font-family: sans-serif }4Quy tắc đầu tiên sẽ chỉ khớp với các phần tử có thuộc tính h1, h2, h3 { font-family: sans-serif }09 trong tệp "http. //www. thí dụ. com" với giá trị "val" Quy tắc thứ hai sẽ chỉ khớp với các phần tử có thuộc tính h1, h2, h3 { font-family: sans-serif }09 bất kể không gian tên của thuộc tính (bao gồm cả không gian tên được khai báo) Hai quy tắc cuối cùng là tương đương và sẽ chỉ khớp với các phần tử có thuộc tính h1, h2, h3 { font-family: sans-serif }09 trong đó thuộc tính không được khai báo trong một không gian tên 6. 3. 4 Giá trị thuộc tính mặc định trong DTDBộ chọn thuộc tính biểu thị các giá trị thuộc tính được đặt rõ ràng trong cây tài liệu. Các giá trị thuộc tính mặc định có thể được xác định trong DTD hoặc ở nơi khác. Bộ chọn phải được thiết kế để chúng hoạt động ngay cả khi các giá trị mặc định không được bao gồm trong cây tài liệu ví dụ Ví dụ: hãy xem xét một phần tử h1, h2, h3 { font-family: sans-serif }52 với thuộc tính h1, h2, h3 { font-family: sans-serif }53 có giá trị mặc định là "thập phân". Đoạn DTD có thể làNếu bộ chọn đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }52 khi giá trị của thuộc tính được đặt rõ ràng. h1, h2, h3 { font-family: sans-serif }5sau đó để chỉ đại diện cho trường hợp thuộc tính này được đặt theo mặc định và không rõ ràng, bộ chọn sau có thể được sử dụng. h1, h2, h3 { font-family: sans-serif }6 Khi làm việc với HTML, tác giả có thể sử dụng ký hiệu dấu chấm ( h1, h2, h3 { font-family: sans-serif }55) thay thế cho ký hiệu h1, h2, h3 { font-family: sans-serif }56 khi đại diện cho thuộc tính h1, h2, h3 { font-family: sans-serif }24. Như vậy, đối với HTML, h1, h2, h3 { font-family: sans-serif }58 và h1, h2, h3 { font-family: sans-serif }59 có cùng ý nghĩa. Giá trị thuộc tính phải ngay sau "dấu chấm" ( h1, h2, h3 { font-family: sans-serif }55). Ghi chú. UAs có thể áp dụng bộ chọn bằng cách sử dụng khoảng thời gian (. ) trong tài liệu XML nếu UA có kiến thức cụ thể về không gian tên cho phép nó xác định thuộc tính nào là thuộc tính "lớp" cho không gian tên tương ứng. Một ví dụ như vậy về kiến thức cụ thể về không gian tên là văn xuôi trong đặc tả cho một không gian tên cụ thể (e. g. SVG 1. 0 [] mô tả và cách UA diễn giải nó, và tương tự như vậy MathML 1. 01 [] mô tả. ) ví dụ Ví dụ, chúng ta có thể biểu diễn một phần tử tùy ý bằng h1, h2, h3 { font-family: sans-serif }61 như sau h1, h2, h3 { font-family: sans-serif }7or just h1, h2, h3 { font-family: sans-serif }8The selector sau đại diện cho một phần tử link[hreflang=fr]5 với h1, h2, h3 { font-family: sans-serif }61. h1, h2, h3 { font-family: sans-serif }9 Ví dụ: bộ chọn sau đại diện cho một phần tử h1, h2, h3 { font-family: sans-serif }64 có thuộc tính h1, h2, h3 { font-family: sans-serif }24 đã được gán một danh sách các giá trị được phân tách bằng dấu cách bao gồm "mục vụ" và "hàng hải" h10 Nó hoàn toàn giống với h11 Bộ chọn này đại diện cho ví dụ một h1, h2, h3 { font-family: sans-serif }64 với h1, h2, h3 { font-family: sans-serif }67 hoặc h1, h2, h3 { font-family: sans-serif }68 nhưng không phải là h1, h2, h3 { font-family: sans-serif }69 Ngôn ngữ tài liệu có thể chứa các thuộc tính được khai báo là loại ID. Điều làm cho các thuộc tính của loại ID trở nên đặc biệt là không có hai thuộc tính nào như vậy có thể có cùng giá trị trong một tài liệu, bất kể loại phần tử chứa chúng; . Trong HTML, tất cả các thuộc tính ID được đặt tên là "id"; Thuộc tính đã nhập ID của ngôn ngữ tài liệu cho phép tác giả gán mã định danh cho một thể hiện phần tử trong cây tài liệu. Bộ chọn W3C ID đại diện cho một phiên bản phần tử dựa trên mã định danh của nó. Bộ chọn ID chứa "dấu số" (#) ngay sau giá trị ID ví dụ Bộ chọn ID sau đại diện cho một phần tử link[hreflang=fr]5 có thuộc tính đã nhập ID có giá trị "chapter1" h12 Bộ chọn ID sau đại diện cho một phần tử có thuộc tính loại ID có giá trị "chapter 1" h13Bộ chọn sau đại diện cho bất kỳ phần tử nào có thuộc tính đã nhập ID có giá trị "z98y". h14 Ghi chú. Trong XML1. 0 , thông tin về thuộc tính nào chứa ID của phần tử được chứa trong DTD hoặc lược đồ. Khi phân tích cú pháp XML, các UA không phải lúc nào cũng đọc DTD và do đó có thể không biết ID của một phần tử là gì (mặc dù UA có thể có kiến thức cụ thể về không gian tên cho phép nó xác định thuộc tính nào là thuộc tính ID cho không gian tên đó). Nếu một nhà thiết kế biểu định kiểu biết hoặc nghi ngờ rằng một UA có thể không biết ID của một phần tử là gì, anh ta nên sử dụng các bộ chọn thuộc tính thông thường để thay thế. h1, h2, h3 { font-family: sans-serif }71 thay vì h1, h2, h3 { font-family: sans-serif }72. Các phần tử trong XML 1. 0 tài liệu không có DTD hoàn toàn không có ID Khái niệm lớp giả được giới thiệu để cho phép lựa chọn dựa trên thông tin nằm ngoài cây tài liệu hoặc không thể biểu thị bằng các bộ chọn đơn giản khác Một lớp giả luôn chứa một "dấu hai chấm" ( h1, h2, h3 { font-family: sans-serif }73) theo sau là tên của lớp giả và tùy chọn bởi một giá trị giữa các dấu ngoặc đơn Các lớp giả được cho phép trong tất cả các chuỗi bộ chọn đơn giản có trong bộ chọn. Các lớp giả được phép ở bất kỳ đâu trong chuỗi các bộ chọn đơn giản, sau bộ chọn loại hàng đầu hoặc bộ chọn phổ quát (có thể bỏ qua). Tên lớp giả không phân biệt chữ hoa chữ thường. Một số lớp giả loại trừ lẫn nhau, trong khi những lớp khác có thể được áp dụng đồng thời cho cùng một phần tử. Các lớp giả có thể động, theo nghĩa là một phần tử có thể có hoặc mất một lớp giả trong khi người dùng tương tác với tài liệu 6. 6. 1 Lớp giả độngCác lớp giả động phân loại các phần tử theo các đặc điểm khác với tên, thuộc tính hoặc nội dung của chúng, về nguyên tắc là các đặc điểm không thể suy ra từ cây tài liệu Lớp giả động không xuất hiện trong nguồn tài liệu hoặc cây tài liệu Lớp giả liên kết. . liên kết và. đã đến thămTác nhân người dùng thường hiển thị các liên kết chưa được truy cập khác với các liên kết đã truy cập trước đó. Bộ chọn cung cấp các lớp giả h1, h2, h3 { font-family: sans-serif }74 và h1, h2, h3 { font-family: sans-serif }75 để phân biệt chúng
Ghi chú. Sau một khoảng thời gian, tác nhân người dùng có thể chọn trả lại liên kết đã truy cập tới (chưa được truy cập) '. liên kết nhà nước Hai trạng thái loại trừ lẫn nhau Thí dụ Bộ chọn sau đại diện cho các liên kết mang lớp h1, h2, h3 { font-family: sans-serif }78 và đã được truy cập h15 Lớp giả hành động của người dùng. bay lượn,. năng động và. tiêu điểmTác nhân người dùng tương tác đôi khi thay đổi kết xuất để đáp ứng với hành động của người dùng. Bộ chọn cung cấp ba lớp giả để lựa chọn một phần tử mà người dùng đang thao tác
Có thể có ngôn ngữ tài liệu hoặc giới hạn triển khai cụ thể mà các phần tử có thể trở thành h1, h2, h3 { font-family: sans-serif }80 hoặc có được h1, h2, h3 { font-family: sans-serif }81 Các lớp giả này không loại trừ lẫn nhau. Một phần tử có thể khớp với nhiều phần tử trong số chúng cùng một lúc ví dụ. h16 Một ví dụ về kết hợp các lớp giả động h17 Bộ chọn cuối cùng khớp với các phần tử h1, h2, h3 { font-family: sans-serif }29 ở lớp giả. tập trung và trong lớp giả. bay lượn Ghi chú. Một phần tử có thể là cả '. đã đến thăm' và '. đang hoạt động' (hoặc '. liên kết' và '. tích cực') 6. 6. 2 Lớp giả mục tiêu. Mục tiêuMột số URI đề cập đến một vị trí trong tài nguyên. Loại URI này kết thúc bằng một "ký hiệu số" ( h1, h2, h3 { font-family: sans-serif }85) theo sau là một mã định danh neo (được gọi là mã định danh đoạn) Các URI có mã định danh phân đoạn liên kết đến một phần tử nhất định trong tài liệu, được gọi là phần tử đích. Chẳng hạn, đây là một URI trỏ đến một anchor có tên là section_2 trong tài liệu HTML h18 Một phần tử đích có thể được đại diện bởi lớp giả h1, h2, h3 { font-family: sans-serif }86 h19 đại diện cho một h1, h2, h3 { font-family: sans-serif }64 của ghi chú lớp là phần tử đích của URI giới thiệu Ví dụ CSS về việc sử dụng lớp giả h1, h2, h3 { font-family: sans-serif }86. link[hreflang=fr]30 6. 6. 3 Lớp giả ngôn ngữ. lang thangNếu ngôn ngữ tài liệu chỉ định cách xác định ngôn ngữ con người của một phần tử, thì có thể viết các bộ chọn đại diện cho một phần tử dựa trên ngôn ngữ của phần tử đó. Ví dụ: trong HTML, ngôn ngữ được xác định bởi sự kết hợp của thuộc tính h1, h2, h3 { font-family: sans-serif }18, phần tử h1, h2, h3 { font-family: sans-serif }90 và có thể bởi thông tin từ giao thức (chẳng hạn như tiêu đề HTTP). XML sử dụng một thuộc tính có tên là h1, h2, h3 { font-family: sans-serif }19 và có thể có các phương pháp dành riêng cho ngôn ngữ tài liệu khác để xác định ngôn ngữ Lớp giả h1, h2, h3 { font-family: sans-serif }92 đại diện cho một phần tử trong ngôn ngữ C. Ở đây C là mã ngôn ngữ như được chỉ định trong HTML 4. 01 và RFC 3066 ví dụ Hai bộ chọn sau đại diện cho một tài liệu HTML bằng tiếng Pháp hoặc tiếng Đức của Bỉ. Hai bộ chọn tiếp theo đại diện cho các trích dẫn của h1, h2, h3 { font-family: sans-serif }93 trong một yếu tố tùy ý bằng tiếng Pháp hoặc tiếng Đức của Bỉ link[hreflang=fr]31 6. 6. 4 Phần tử giao diện người dùng cho biết các lớp giảCác. kích hoạt và. lớp giả bị vô hiệu hóaMục đích của lớp giả h1, h2, h3 { font-family: sans-serif }94 là cho phép tác giả tùy chỉnh giao diện của các phần tử giao diện người dùng được bật - mà người dùng có thể chọn/kích hoạt theo cách nào đó (e. g. nhấp vào một nút bằng chuột). Cần có một lớp giả như vậy bởi vì không có cách nào để lập trình chỉ định giao diện mặc định của một phần tử h1, h2, h3 { font-family: sans-serif }95 được bật mà không chỉ định nó sẽ trông như thế nào khi nó bị vô hiệu hóa Tương tự như h1, h2, h3 { font-family: sans-serif }94, h1, h2, h3 { font-family: sans-serif }97 cho phép tác giả chỉ định chính xác giao diện của phần tử giao diện người dùng bị vô hiệu hóa hoặc không hoạt động sẽ trông như thế nào Cần lưu ý rằng hầu hết các yếu tố sẽ không được bật hoặc tắt. Một phần tử được kích hoạt nếu người dùng có thể kích hoạt nó hoặc chuyển tiêu điểm sang nó. Một phần tử bị vô hiệu hóa nếu phần tử đó có thể được bật, nhưng hiện tại người dùng không thể kích hoạt phần tử đó hoặc chuyển tiêu điểm sang phần tử đó Các. đã kiểm tra lớp giảNgười dùng có thể bật tắt các phần tử radio và hộp kiểm. Một số mục menu được "kiểm tra" khi người dùng chọn chúng. Khi các phần tử như vậy được bật "bật" thì lớp giả h1, h2, h3 { font-family: sans-serif }98 sẽ được áp dụng. Lớp giả h1, h2, h3 { font-family: sans-serif }98 ban đầu áp dụng cho các phần tử như vậy có thuộc tính HTML4 h100 như được mô tả trong , nhưng tất nhiên người dùng có thể "tắt" các phần tử đó, trong trường hợp đó, lớp giả h1, h2, h3 { font-family: sans-serif }98 sẽ không còn được áp dụng. Mặc dù lớp giả h1, h2, h3 { font-family: sans-serif }98 có bản chất động và bị thay đổi bởi hành động của người dùng, vì nó cũng có thể dựa trên sự hiện diện của thuộc tính ngữ nghĩa HTML4 h100, nó áp dụng cho tất cả các phương tiện. Các. lớp giả không xác địnhNgười dùng có thể bật/tắt các phần tử radio và hộp kiểm, nhưng đôi khi ở trạng thái không xác định, không được chọn cũng như không được chọn. Điều này có thể là do thuộc tính phần tử hoặc thao tác DOM. Lớp giả h104 áp dụng cho các phần tử như vậy. Mặc dù lớp giả h104 có bản chất động và bị thay đổi bởi hành động của người dùng, vì nó cũng có thể dựa trên sự hiện diện của một thuộc tính phần tử, nó áp dụng cho tất cả các phương tiện. Các thành phần của nhóm radio được khởi tạo không có lựa chọn được chọn trước là một ví dụ về. trạng thái không xác định 6. 6. 5 lớp giả cấu trúcBộ chọn giới thiệu khái niệm lớp giả cấu trúc để cho phép lựa chọn dựa trên thông tin bổ sung nằm trong cây tài liệu nhưng không thể được biểu thị bằng bộ chọn hoặc bộ kết hợp đơn giản khác Lưu ý rằng PCDATA độc lập không được tính khi tính toán vị trí của một phần tử trong danh sách con của phần tử cha của nó. Khi tính toán vị trí của một phần tử trong danh sách con của phần tử cha, việc đánh số chỉ mục bắt đầu từ 1 lớp giả gốcLớp giả h106 đại diện cho một phần tử là gốc của tài liệu. Trong HTML 4, đây là phần tử h107. Trong XML, nó là bất cứ thứ gì phù hợp với DTD hoặc lược đồ và không gian tên cho tài liệu XML đó lớp giả nth-child()Ký hiệu lớp giả h108 đại diện cho một phần tử có +b-1 anh chị em trước nó trong cây tài liệu, đối với một số nguyên dương hoặc giá trị 0 nhất định của n. Nói cách khác, điều này khớp với phần tử con thứ b của một phần tử sau khi tất cả các phần tử con đã được chia thành các nhóm phần tử a. Ví dụ: điều này cho phép bộ chọn giải quyết mọi hàng khác trong bảng và có thể được sử dụng, chẳng hạn, để thay thế màu của văn bản đoạn văn trong một chu kỳ bốn. Các giá trị a và b phải bằng 0, số nguyên âm hoặc số nguyên dương. Chỉ số của phần tử con đầu tiên là 1 Ngoài ra, h109 có thể lấy 'lẻ' và 'chẵn' làm đối số. 'lẻ' có cùng ý nghĩa với 2n+1 và 'chẵn' có cùng ý nghĩa với 2n ví dụ. link[hreflang=fr]32 Khi a=0, không sử dụng phép lặp, vì vậy, ví dụ: h110 chỉ khớp với phần tử con thứ năm. Khi a=0, phần a không cần đưa vào, vì vậy cú pháp đơn giản hóa thành h111 và ví dụ cuối cùng đơn giản hóa thành h112 link[hreflang=fr]33 Khi a=1, số có thể bị bỏ qua trong quy tắc, vì vậy các ví dụ sau là tương đương link[hreflang=fr]34 Nếu b=0, thì mọi phần tử thứ a đều được chọn link[hreflang=fr]35 Nếu cả a và b đều bằng 0, lớp giả không đại diện cho phần tử nào trong cây tài liệu Giá trị a có thể âm, nhưng chỉ các giá trị dương của an+b, với n>= 0, mới có thể đại diện cho một phần tử trong cây tài liệu, tất nhiên link[hreflang=fr]36 lớp giả nth-last-child()Ký hiệu lớp giả h113 đại diện cho một phần tử có +b-1 anh chị em sau nó trong cây tài liệu, đối với một số nguyên dương hoặc giá trị 0 nhất định của n. Xem lớp giả h109 để biết cú pháp đối số của nó. Nó cũng chấp nhận các giá trị 'chẵn' và 'lẻ' cho đối số ví dụ. link[hreflang=fr]37 lớp giả nth-of-type()Ký hiệu lớp giả h115 đại diện cho một phần tử có +b-1 anh chị em có cùng tên phần tử trước nó trong cây tài liệu, với giá trị nguyên dương hoặc 0 nhất định của n. Nói cách khác, điều này khớp với phần tử con thứ b của loại đó sau khi tất cả các phần tử con của loại đó đã được chia thành các nhóm của mỗi phần tử a. Xem lớp giả h109 để biết cú pháp đối số của nó. Nó cũng chấp nhận các giá trị 'chẵn' và 'lẻ' cho đối số Ví dụ: điều này cho phép trong CSS thay thế vị trí của hình ảnh nổi. link[hreflang=fr]38 lớp giả nth-last-of-type()Ký hiệu lớp giả h117 đại diện cho một phần tử có +b-1 anh chị em có cùng tên phần tử sau nó trong cây tài liệu, với giá trị nguyên dương hoặc 0 nhất định của n. Xem lớp giả h109 để biết cú pháp đối số của nó. Nó cũng chấp nhận các giá trị 'chẵn' và 'lẻ' cho đối số Ví dụ: để đại diện cho tất cả h119 con của XHTML h120 ngoại trừ con đầu tiên và con cuối cùng, người ta sẽ sử dụng bộ chọn sau. link[hreflang=fr]39 Trong trường hợp này, người ta cũng có thể sử dụng h121, mặc dù bộ chọn cuối cùng chỉ dài bằng h1, h2, h3 { font-family: sans-serif }40 lớp giả con đầu lòngTương tự như h122. Lớp giả h123 đại diện cho một phần tử là con đầu tiên của một số phần tử khác ví dụ Trong ví dụ sau, bộ chọn đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }64 là phần tử con đầu tiên của phần tử h125 h1, h2, h3 { font-family: sans-serif }41Bộ chọn này có thể đại diện cho h1, h2, h3 { font-family: sans-serif }64 bên trong h125 của đoạn sau. h1, h2, h3 { font-family: sans-serif }42nhưng không thể đại diện cho h1, h2, h3 { font-family: sans-serif }64 thứ hai trong đoạn sau. h1, h2, h3 { font-family: sans-serif }43Hai bộ chọn sau là tương đương. h1, h2, h3 { font-family: sans-serif }44 lớp giả con cuối cùngTương tự như h129. Lớp giả h130 đại diện cho một phần tử là con cuối cùng của một số phần tử khác Bộ chọn sau đại diện cho một mục danh sách h131 là phần tử con cuối cùng của danh sách có thứ tự h132 lớp giả đầu tiênTương tự như h133. Lớp giả h134 đại diện cho một phần tử là anh chị em đầu tiên của loại của nó trong danh sách con của phần tử cha của nó Thí dụ Bộ chọn sau đại diện cho tiêu đề định nghĩa h135 bên trong danh sách định nghĩa h136, h135 này là kiểu đầu tiên trong danh sách phần tử con của phần tử cha h1, h2, h3 { font-family: sans-serif }45Đó là một mô tả hợp lệ cho hai h135 đầu tiên trong ví dụ sau nhưng không phải cho cái thứ ba. h1, h2, h3 { font-family: sans-serif }46 lớp giả loại cuối cùngTương tự như h139. Lớp giả h140 đại diện cho một phần tử là anh chị em cuối cùng của loại của nó trong danh sách con của phần tử cha của nó Thí dụ Bộ chọn sau đại diện cho ô dữ liệu cuối cùng h141 của một hàng trong bảng h1, h2, h3 { font-family: sans-serif }47 lớp giả con mộtĐại diện cho một phần tử không có anh chị em. Tương tự như h142 hoặc h143, nhưng có độ đặc hiệu thấp hơn lớp giả duy nhất của loạiĐại diện cho một phần tử không có anh chị em nào có cùng tên phần tử. Tương tự như h144 hoặc h145, nhưng có độ đặc hiệu thấp hơn lớp giả trốngLớp giả h146 đại diện cho một phần tử không có phần tử con nào, bao gồm các nút văn bản có thể trống, theo quan điểm DOM ví dụ h147 là một đại diện hợp lệ của đoạn sau h1, h2, h3 { font-family: sans-serif }48 h148 không phải là đại diện hợp lệ cho các đoạn sau h1, h2, h3 { font-family: sans-serif }49 h1, h2, h3 { font-family: sans-serif }70 h1, h2, h3 { font-family: sans-serif }71 6. 6. 6 Lớp giả nội dungKý hiệu lớp giả h149 đại diện cho một phần tử có nội dung văn bản chứa chuỗi con đã cho. Đối số của lớp giả này có thể là một chuỗi (được bao quanh bởi dấu ngoặc kép) hoặc từ khóa Việc sử dụng lớp giả nội dung bị hạn chế đối với các loại phương tiện tĩnh (xem phần ) Nội dung văn bản của một phần tử nhất định được xác định bằng cách ghép nối tất cả PCDATA có trong phần tử và các phần tử con Thí dụ. h1, h2, h3 { font-family: sans-serif }72 là một mô tả chính xác và hợp lệ, nhưng một phần, về. h1, h2, h3 { font-family: sans-serif }73 Các ký tự đặc biệt có thể được chèn vào đối số của một lớp giả nội dung bằng cách sử dụng cơ chế thoát cho các ký tự Unicode và ký tự xuống dòng Cảnh báo. bộ chọn h150 sẽ khớp với danh sách
Ghi chú. h153 là lớp giả, không phải phần tử giả. Quy tắc CSS sau được áp dụng cho đoạn HTML ở trên sẽ không chỉ thêm nền đỏ cho từ "Đánh dấu" mà sẽ thêm nền như vậy cho toàn bộ đoạn văn h1, h2, h3 { font-family: sans-serif }74 6. 6. 7 Lớp giả phủ địnhLớp giả phủ định là một ký hiệu chức năng lấy a (không bao gồm chính lớp giả phủ định và các phần tử giả) làm đối số. Nó đại diện cho một phần tử không được đại diện bởi đối số ví dụ Bộ chọn CSS sau phù hợp với tất cả các phần tử h154 trong tài liệu HTML không bị tắt h1, h2, h3 { font-family: sans-serif }75 Bộ chọn sau đại diện cho tất cả trừ các phần tử h155 h1, h2, h3 { font-family: sans-serif }76 Nhóm bộ chọn sau đại diện cho tất cả các phần tử trừ các liên kết HTML h1, h2, h3 { font-family: sans-serif }77 Ghi chú. các. not() pseudo cho phép viết các bộ chọn vô dụng. Ví dụ: h156, không đại diện cho phần tử nào cả, hoặc h157, tương đương với h158 nhưng có độ đặc hiệu cao hơn Các phần tử giả tạo các phần trừu tượng về cây tài liệu ngoài những phần được chỉ định bởi ngôn ngữ tài liệu. Chẳng hạn, ngôn ngữ tài liệu không cung cấp cơ chế để truy cập chữ cái đầu tiên hoặc dòng đầu tiên của nội dung phần tử. Các phần tử giả cho phép các nhà thiết kế tham khảo thông tin không thể truy cập này. Các phần tử giả cũng có thể cung cấp cho các nhà thiết kế một cách để tham khảo nội dung không tồn tại trong tài liệu nguồn (e. g. , các phần tử giả h159 và h160 cấp quyền truy cập vào nội dung được tạo) Một phần tử giả được tạo bởi hai dấu hai chấm (_______661) theo sau là tên của phần tử giả Ghi chú. ký hiệu h161 này được giới thiệu bởi tài liệu hiện tại để thiết lập sự phân biệt giữa các lớp giả và các phần tử giả. Để tương thích với biểu định kiểu hiện có, tác nhân người dùng cũng phải chấp nhận ký hiệu một dấu hai chấm trước đó cho các phần tử giả được giới thiệu trong CSS cấp 1 và 2. Khả năng tương thích này không được phép đối với các phần tử giả mới được giới thiệu trong CSS cấp 3 Các phần tử giả chỉ có thể xuất hiện một lần trong chuỗi các bộ chọn đơn giản đại diện cho bộ chọn 7. 1 cái. phần tử giả dòng đầu tiênPhần tử giả h163 mô tả dòng được định dạng đầu tiên của một phần tử Ví dụ trong CSS h1, h2, h3 { font-family: sans-serif }78 Quy tắc trên có nghĩa là "đổi các chữ cái ở dòng đầu tiên của mỗi đoạn văn thành chữ hoa". Tuy nhiên, bộ chọn h164 không khớp với bất kỳ phần tử HTML thực nào. Nó khớp với một phần tử giả mà các tác nhân người dùng phù hợp sẽ chèn vào đầu mỗi đoạn Lưu ý rằng độ dài của dòng đầu tiên phụ thuộc vào một số yếu tố, bao gồm chiều rộng của trang, cỡ chữ, v.v. Do đó, một đoạn HTML thông thường chẳng hạn như h1, h2, h3 { font-family: sans-serif }79 các dòng trong số đó sẽ được hiển thị như sau nếu áp dụng quy tắc kiểu ở trên link[hreflang=fr]10 có thể được tác nhân người dùng "viết lại" để bao gồm chuỗi thẻ hư cấu cho h163. Trình tự thẻ hư cấu này giúp hiển thị cách các thuộc tính được kế thừa link[hreflang=fr]11 Nếu một phần tử giả phá vỡ một phần tử thực, hiệu ứng mong muốn có thể được mô tả bằng cách đóng và sau đó mở lại trình tự thẻ hư cấu. Do đó, nếu chúng ta đánh dấu đoạn trước đó bằng phần tử h1, h2, h3 { font-family: sans-serif }23 link[hreflang=fr]11 tác nhân người dùng có thể tạo thẻ bắt đầu và thẻ kết thúc thích hợp cho chuỗi thẻ hư cấu cho h163 link[hreflang=fr]13 Phần tử giả h163 chỉ có thể được gắn vào phần tử cấp khối Phần tử giả h163 tương tự như phần tử cấp độ nội tuyến, nhưng có một số hạn chế nhất định, tùy thuộc vào cách sử dụng. Chỉ các thuộc tính sau áp dụng cho phần tử giả h163. thuộc tính phông chữ, thuộc tính màu sắc, thuộc tính nền, 'khoảng cách giữa các từ', 'khoảng cách giữa các chữ cái', 'trang trí văn bản', 'căn dọc', 'chuyển đổi văn bản', 'chiều cao dòng', 'bóng đổ văn bản' 7. 2 cái. phần tử giả chữ cái đầu tiênPhần tử giả h171 mô tả chữ cái được định dạng đầu tiên của một phần tử Phần tử giả h171 có thể được gắn vào tất cả các phần tử Phần tử giả h171 có thể được sử dụng cho "intial caps" và "drop caps", đây là những hiệu ứng đánh máy phổ biến. Loại chữ cái đầu tiên này tương tự như phần tử cấp độ nội tuyến nếu thuộc tính CSS 'float' của nó là 'không', nhưng với một số hạn chế nhất định, tùy thuộc vào cách sử dụng. Mặt khác, nó tương tự như một phần tử nổi Đây là các thuộc tính CSS áp dụng cho các phần tử giả h171. thuộc tính phông chữ, thuộc tính màu, thuộc tính nền, 'trang trí văn bản', 'căn dọc' (chỉ khi 'float' là 'không'), 'chuyển đổi văn bản', 'chiều cao dòng', thuộc tính lề, thuộc tính đệm, CSS2 sau đây sẽ tạo một chữ cái đầu tiên của drop cap kéo dài hai dòng link[hreflang=fr]14 Ví dụ này có thể được định dạng như sau Trình tự thẻ hư cấu là link[hreflang=fr]15 Lưu ý rằng các thẻ phần tử giả ________ 671 về nội dung (e. g. , ký tự ban đầu). Khi cả phần tử giả h163 và h171 được sử dụng, chuỗi thẻ hư cấu h171 được chèn vào bên trong chuỗi thẻ hư cấu h163 Để đạt được định dạng chữ hoa đầu dòng truyền thống, tác nhân người dùng có thể ước tính kích thước phông chữ, ví dụ: để căn chỉnh đường cơ sở. Ngoài ra, đường viền glyph có thể được tính đến khi định dạng Dấu chấm câu (tôi. e, các ký tự được định nghĩa bằng Unicode trong các lớp dấu chấm câu "mở" (Ps), "đóng" (Pe) và "khác" (Po)), đứng trước chữ cái đầu tiên, như trong Phần tử giả h171 chỉ khớp với các phần của phần tử Một số ngôn ngữ có thể có các quy tắc cụ thể về cách xử lý các tổ hợp chữ cái nhất định. Ví dụ: trong tiếng Hà Lan, nếu tổ hợp chữ cái "ij" xuất hiện ở đầu một từ, cả hai chữ cái sẽ được xem xét trong phần tử giả h171. Phần tử giả h171 nên chọn chọn từ phần đầu của phần tử cho đến cụm ký tự không có dấu chấm câu mở đầu tiên Ví dụ sau minh họa cách các phần tử giả chồng chéo có thể tương tác với nhau. Chữ cái đầu tiên của mỗi phần tử h183 sẽ có màu xanh lục với cỡ chữ là '24pt'. Phần còn lại của dòng được định dạng đầu tiên sẽ có màu "xanh lam" trong khi phần còn lại của đoạn văn sẽ có màu "đỏ" link[hreflang=fr]16 Giả sử rằng ngắt dòng sẽ xảy ra trước từ "kết thúc", trình tự thẻ hư cấu cho đoạn này có thể là link[hreflang=fr]17 Lưu ý rằng phần tử ______671 nằm bên trong phần tử h163. Các thuộc tính được đặt trên h163 được kế thừa bởi h171, nhưng sẽ bị ghi đè nếu cùng một thuộc tính được đặt trên h171 7. 3 Phần tử giao diện người dùng phân mảnh các phần tử giảCác. phần tử giả lựa chọnPhần tử giả h189 áp dụng cho phần tài liệu đã được người dùng đánh dấu. Ví dụ, điều này cũng áp dụng cho văn bản đã chọn trong trường văn bản có thể chỉnh sửa. Không nên nhầm lẫn phần tử giả này với lớp giả h190 (trước đây được đặt tên là h191) Mặc dù phần tử giả h189 có bản chất là động và bị thay đổi bởi hành động của người dùng, nhưng thật hợp lý khi kỳ vọng rằng khi UA hiển thị lại một phương tiện tĩnh (chẳng hạn như trang in, xem ) mà ban đầu được hiển thị thành một phương tiện động ( . Điều này là không bắt buộc - UAs có thể bỏ qua phần tử giả h189 cho phương tiện tĩnh Đây là các thuộc tính CSS áp dụng cho các phần tử giả h189. màu, con trỏ, nền, phác thảo. Giá trị được tính toán của thuộc tính 'background-image' trên h189 có thể bị bỏ qua 7. 4 cái. trước và. sau các phần tử giảCác phần tử giả h159 và h160 có thể được sử dụng để mô tả nội dung được tạo trước hoặc sau nội dung của phần tử. Chúng được giải thích trong Mô-đun CSS3 nội dung/điểm đánh dấu được tạo Khi các phần tử giả h171 và h163 được kết hợp với h159 và h160, chúng sẽ áp dụng cho chữ cái hoặc dòng đầu tiên của phần tử bao gồm văn bản được chèn Đôi khi, các tác giả có thể muốn các bộ chọn mô tả một phần tử là hậu duệ của một phần tử khác trong cây tài liệu (e. g. , "phần tử link[hreflang=fr]303 được chứa trong phần tử link[hreflang=fr]304"). Tổ hợp hậu duệ thể hiện mối quan hệ như vậy. Bộ kết hợp hậu duệ là bộ phân tách hai chuỗi bộ chọn đơn giản. Bộ chọn có dạng " link[hreflang=fr]305" đại diện cho một phần tử link[hreflang=fr]306 là hậu duệ tùy ý của một số phần tử tổ tiên link[hreflang=fr]307 ví dụ Ví dụ: hãy xem xét bộ chọn sau link[hreflang=fr]18Nó đại diện cho một phần tử link[hreflang=fr]308 là hậu duệ của một phần tử link[hreflang=fr]5. Đó là một mô tả chính xác và hợp lệ, nhưng một phần, của đoạn sau. link[hreflang=fr]19Bộ chọn sau. link[hreflang=fr]50 đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }64 là cháu hoặc hậu duệ sau này của phần tử h125. Lưu ý khoảng trắng ở hai bên của "*" Bộ chọn sau, kết hợp các bộ tổ hợp con cháu và , đại diện cho một phần tử (1) có tập thuộc tính h1, h2, h3 { font-family: sans-serif }30 và (2) nằm trong một h1, h2, h3 { font-family: sans-serif }64 mà chính nó nằm trong một h125 link[hreflang=fr]51 Một bộ kết hợp con mô tả mối quan hệ thời thơ ấu giữa hai phần tử. Bộ kết hợp con được tạo từ ký tự "lớn hơn dấu" ( link[hreflang=fr]2) và phân tách hai chuỗi bộ chọn đơn giản ví dụ Bộ chọn sau đại diện cho một phần tử h1, h2, h3 { font-family: sans-serif }64 là con của h120 link[hreflang=fr]52 Ví dụ sau kết hợp các tổ hợp con và tổ hợp con link[hreflang=fr]53 Nó đại diện cho một phần tử h1, h2, h3 { font-family: sans-serif }64 là hậu duệ của một h131; . Lưu ý rằng khoảng trắng tùy chọn xung quanh bộ kết hợp ">" đã bị loại bỏ Để biết thông tin về cách chọn con đầu tiên của một phần tử, vui lòng xem phần về lớp giả link[hreflang=fr]324 ở trên Có hai tổ hợp anh chị em liền kề khác nhau. tổ hợp liền kề trực tiếp và tổ hợp liền kề gián tiếp 8. 3. 1 Tổ hợp liền kề trực tiếpCác bộ tổ hợp liền kề trực tiếp được tạo bằng ký tự "dấu cộng" ( link[hreflang=fr]3) phân tách hai chuỗi bộ chọn đơn giản. Các phần tử được đại diện bởi hai chuỗi chia sẻ cùng một gốc trong cây tài liệu và phần tử được đại diện bởi chuỗi đầu tiên ngay trước phần tử được đại diện bởi chuỗi thứ hai ví dụ Do đó, bộ chọn sau đại diện cho phần tử h1, h2, h3 { font-family: sans-serif }64 ngay sau phần tử link[hreflang=fr]327 link[hreflang=fr]54 Bộ chọn sau đây tương tự về mặt khái niệm với bộ chọn trong ví dụ trước, ngoại trừ việc nó thêm một bộ chọn thuộc tính. Do đó, nó thêm một ràng buộc đối với phần tử link[hreflang=fr]5 phải có link[hreflang=fr]329 link[hreflang=fr]55 8. 3. 2 Tổ hợp liền kề gián tiếpCác tổ hợp liền kề gián tiếp được tạo bằng ký tự "dấu ngã" ( link[hreflang=fr]4) phân tách hai chuỗi các bộ chọn đơn giản. Các phần tử được đại diện bởi hai chuỗi chia sẻ cùng một gốc trong cây tài liệu và phần tử được đại diện bởi chuỗi đầu tiên đứng trước (không nhất thiết phải ngay lập tức) phần tử được đại diện bởi chuỗi thứ hai Thí dụ. link[hreflang=fr]56 đại diện cho một phần tử link[hreflang=fr]331 theo sau một link[hreflang=fr]5. Đó là một mô tả chính xác và hợp lệ, nhưng một phần, về. link[hreflang=fr]57 Độ đặc hiệu của bộ chọn được tính như sau
Ghép ba số a-b-c (trong hệ số có cơ số lớn) cho ta tính đặc trưng Vài ví dụ link[hreflang=fr]58 Ghi chú. tính đặc hiệu của các kiểu được chỉ định trong thuộc tính HTML link[hreflang=fr]333 được mô tả trong Mô-đun CSS3 khác "Cascade and Inheritance" Ngữ pháp dưới đây xác định cú pháp của Bộ chọn. Nó là LL(1) trên toàn cầu và có thể là LL(2) cục bộ (nhưng lưu ý rằng hầu hết các UA không nên sử dụng nó trực tiếp, vì nó không thể hiện các quy ước phân tích cú pháp). Định dạng của sản phẩm được tối ưu hóa cho tiêu dùng của con người và một số ký hiệu tốc ký ngoài Yacc (xem ) được sử dụng
Các sản phẩm là link[hreflang=fr]59 Sau đây là mã thông báo, được viết bằng ký hiệu Flex (xem ). Mã thông báo không phân biệt chữ hoa chữ thường Hai lần xuất hiện của "\377" biểu thị số ký tự cao nhất mà các phiên bản Flex hiện tại có thể xử lý (thập phân 255). Chúng phải được đọc là "\4177777" (số thập phân 1114111), đây là điểm mã cao nhất có thể có trong Unicode/ISO-10646 link[hreflang=fr]0 Một vấn đề quan trọng là sự tương tác của các bộ chọn CSS với các tài liệu XML trong các máy khách web được tạo trước tài liệu này. Thật không may, do các không gian tên phải được đối sánh dựa trên URI xác định không gian tên chứ không phải tiền tố không gian tên, nên cũng cần có một số cơ chế để xác định các không gian tên trong CSS bằng URI của chúng. Nếu không có cơ chế như vậy, không thể xây dựng biểu định kiểu CSS sẽ khớp chính xác các bộ chọn trong mọi trường hợp với một bộ tài liệu XML ngẫu nhiên. Tuy nhiên, với kiến thức đầy đủ về tài liệu XML mà biểu định kiểu sẽ được áp dụng và việc sử dụng hạn chế các không gian tên trong tài liệu XML, có thể xây dựng biểu định kiểu trong đó các bộ chọn sẽ khớp chính xác các thành phần và thuộc tính Cần lưu ý rằng ứng dụng khách CSS cấp thấp sẽ (nếu nó tuân thủ đúng các quy tắc phân tích cú pháp tương thích chuyển tiếp CSS) sẽ bỏ qua tất cả các quy tắc tại link[hreflang=fr]334, cũng như tất cả các quy tắc kiểu sử dụng bộ chọn thuộc tính hoặc loại phần tử đủ điều kiện cho không gian tên. Cú pháp phân định các tiền tố không gian tên trong CSS đã được chọn một cách có chủ ý để các máy khách CSS cấp thấp sẽ bỏ qua các quy tắc kiểu thay vì có thể khớp chúng không chính xác Việc sử dụng các không gian tên mặc định trong CSS giúp có thể viết các bộ chọn loại phần tử sẽ hoạt động trong cả ứng dụng khách CSS nhận biết không gian tên cũng như ứng dụng khách cấp thấp. Cần lưu ý rằng các máy khách cấp thấp có thể khớp sai các bộ chọn với các phần tử XML trong các không gian tên khác Sau đây là các tình huống và ví dụ trong đó có thể xây dựng các biểu định kiểu sẽ hoạt động bình thường trong các máy khách web không triển khai đề xuất này
Trong các tình huống khác. khi các tiền tố không gian tên được sử dụng trong XML không được tác giả biểu định kiểu biết trước; Mỗi thông số kỹ thuật sử dụng Bộ chọn phải xác định tập hợp con của Bộ chọn W3C mà nó cho phép và loại trừ, đồng thời mô tả ý nghĩa cục bộ của tất cả các thành phần của tập hợp con đó ví dụ phi quy chuẩn Hồ sơ bộ chọnThông số kỹ thuậtCSS cấp 1Chấp nhận bộ chọn loại bộ chọn chung không gian tên Các ràng buộc bổ sung chỉ cho phép một bộ chọn lớp cho mỗi chuỗi bộ chọn đơn giảnHồ sơ bộ chọnThông số kỹ thuậtCSS cấp 2Chấp nhận bộ chọn loại bộ chọn chung bộ chọn giá trị và hiện diện thuộc tính bộ chọn lớp ID selectors :link, :visited, :active, :hover, :focus, :lang() and :first-child pseudo-classes bộ kết hợp con cháu bộ kết hợp con bộ kết hợp trực tiếp liền kề . dòng đầu tiên và. phần tử giả chữ cái đầu tiên . trước và. sau phần tử giả Loại trừ bộ chọn nội dung không gian tên Các ràng buộc bổ sung cho phép nhiều hơn một bộ chọn lớp trên mỗi chuỗi các bộ chọn đơn giản (ràng buộc CSS1)Trong CSS, bộ chọn thể hiện các quy tắc khớp mẫu để xác định quy tắc kiểu nào áp dụng cho các thành phần trong cây tài liệu Bộ chọn sau (CSS cấp 2) sẽ khớp với tất cả các neo h1, h2, h3 { font-family: sans-serif }29 với thuộc tính link[hreflang=fr]340 được đặt bên trong tiêu đề phần 1 link[hreflang=fr]5 link[hreflang=fr]1 Tất cả các khai báo CSS được đính kèm với bộ chọn như vậy đều được áp dụng cho các phần tử khớp với nó Hồ sơ bộ chọnThông số kỹ thuậtSTTS 3Chấp nhận bộ chọn loại không gian tên Loại trừ các lớp giả không được chấp nhậnphần tử giả Không cho phép một số bộ chọn và bộ kết hợp ràng buộc bổ sung trong mô tả đoạn ở bên phải của khai báo STTS. Bộ chọn có thể được sử dụng trong STTS 3 theo hai cách khác nhau
13. Tuân thủ và Yêu cầuPhần này chỉ xác định sự phù hợp với thông số kỹ thuật hiện tại Tác nhân người dùng không thể thực hiện một phần của thông số kỹ thuật này do những hạn chế của một thiết bị cụ thể (e. g. , các tác nhân người dùng không tương tác có thể sẽ không triển khai các lớp giả động vì chúng không có ý nghĩa gì nếu không có tính tương tác) không có nghĩa là không tuân thủ Tất cả các thông số kỹ thuật sử dụng lại Bộ chọn phải chứa danh sách tập hợp con của Bộ chọn mà nó chấp nhận hoặc loại trừ và mô tả các ràng buộc mà nó thêm vào thông số kỹ thuật hiện tại Tính không hợp lệ là do lỗi phân tích cú pháp, e. g. mã thông báo không được nhận dạng hoặc mã thông báo không được phép tại điểm phân tích cú pháp hiện tại Tác nhân người dùng phải tuân thủ các quy tắc xử lý lỗi phân tích cú pháp
Việc triển khai đặc tả này phải hoạt động như "người nhận dữ liệu văn bản" như được xác định khi phân tích cú pháp bộ chọn và cố gắng so khớp. (Cụ thể, việc triển khai phải giả sử dữ liệu được chuẩn hóa và không được chuẩn hóa dữ liệu. ) Các quy tắc chuẩn cho các chuỗi phù hợp được xác định trong và áp dụng cho việc triển khai đặc tả này 14. bài kiểm traThông số kỹ thuật này chứa một bộ kiểm tra cho phép các tác nhân người dùng xác minh sự tuân thủ cơ bản của họ đối với thông số kỹ thuật. Bộ kiểm tra này không giả vờ đầy đủ và không bao gồm tất cả các trường hợp kết hợp có thể có của Bộ chọn Những bài kiểm tra này có sẵn [liên kết sắp tới] 15. Sự nhìn nhậnThông số kỹ thuật này là sản phẩm của Nhóm làm việc W3C về Cascading Style Sheets và Formatting Properties. Ngoài các biên tập viên của đặc tả này, các thành viên của Nhóm làm việc là
Một số chuyên gia được mời vào Nhóm làm việc có đóng góp đáng kể cho CSS3. L. David Baron, Tim Boland (NIST), Todd Fahrner, Daniel Glazman, Ian Hickson, Eric Meyer (Nhóm OPAL), Jeff Veen Các thành viên cũ của Tổ công tác
Chúng tôi cảm ơn tất cả họ (các thành viên, các chuyên gia được mời và các thành viên cũ) vì những nỗ lực của họ Tất nhiên, tài liệu này bắt nguồn từ Đề xuất CSS cấp 1 và CSS cấp 2. Chúng tôi cảm ơn tất cả các tác giả, biên tập viên và cộng tác viên CSS1 và CSS2 Tiến sĩ. Hasan Ali Çelik đề xuất cú pháp đơn giản và mạnh mẽ của lập luận cho. nth-child() trong khi Nhóm làm việc đang xem xét các giải pháp phức tạp hơn nhiều Các cuộc thảo luận trên www-style@w3. org đã có ảnh hưởng trong nhiều vấn đề quan trọng. Đặc biệt, chúng tôi xin cảm ơn Ian Graham, David Baron, Björn Höhrmann, fantasai, Jelks Cabanis và Matthew Brealey vì sự tham gia tích cực và hữu ích của họ |