Bộ quy tắc CSS bao gồm

Trong khoảng 10 năm qua, tôi đã thực hiện rất nhiều công việc chỉnh sửa kỹ thuật. Tôi đã trợ giúp về các bài báo CSS và sách CSS cho các ấn phẩm in ấn và trực tuyến khác nhau. Một trong những điều thường xuất hiện khi tôi đưa ra đề xuất là sự khác biệt giữa quy tắc CSS và bộ quy tắc CSS

Trong hầu hết các trường hợp, hầu hết các tác giả đều sử dụng thuật ngữ “quy tắc CSS” để chỉ các khối CSS bao gồm bộ chọn và các khai báo CSS. Điều này có đúng không?

Quay trở lại năm 2010, tôi đã viết một bài báo đầy đủ về định nghĩa các thuật ngữ CSS mà tôi vẫn theo dõi cho đến ngày nay. Nhưng tôi đã cập nhật phần “Bộ quy tắc CSS” của bài viết đó, mà tôi nghĩ rằng tôi sẽ giải thích chi tiết hơn ở đây

Theo tài liệu mới nhất của W3C về cú pháp CSS

Quy tắc kiểu là quy tắc đủ điều kiện liên kết danh sách bộ chọn với danh sách khai báo thuộc tính và có thể là danh sách quy tắc lồng nhau. Chúng còn được gọi là bộ quy tắc trong CSS2

Vì vậy, về mặt kỹ thuật, việc gọi các đoạn CSS này là “quy tắc kiểu”, “quy tắc” hoặc “bộ quy tắc” là đúng về mặt kỹ thuật. Thật thú vị, thông số kỹ thuật sử dụng “bộ quy tắc” (hai từ) trong khi MDN sử dụng “bộ quy tắc” (một từ). MDN cũng sử dụng "quy tắc" như một từ đồng nghĩa có thể chấp nhận được, nhưng dường như không đề cập đến bất cứ điều gì về "quy tắc kiểu". Có lẽ điều đó cần làm mới

Như trích dẫn ở trên từ W3C đã chỉ ra, có vẻ như W3C coi “bộ quy tắc” là một thuật ngữ hơi lỗi thời, thích thuật ngữ “quy tắc phong cách” (hoặc có thể gọi tắt là “quy tắc”). Tôi biết trước đây một số tác giả đã gọi các dòng CSS riêng lẻ là các quy tắc CSS, nhưng điều đó không đúng. Các dòng riêng lẻ được gọi là khai báo và toàn bộ nhóm các dòng bên trong dấu ngoặc nhọn được gọi là khối khai báo. Mã bên dưới, với các bình luận, chứng minh điều này

/* Everything below is a style rule (or rule set, or just rule) */
section { /* Everything between the braces is a declaration block */
  margin: 0 20px; /* This line is an individual declaration */
  color: #888; /* Another declaration */
}

Hiểu các thuật ngữ này không quan trọng để viết mã CSS. Nhưng tôi nghĩ nó rất quan trọng khi viết bài, hướng dẫn và sách về chủ đề này

Quy tắc hoặc "bộ quy tắc" là một câu lệnh cho trình duyệt biết cách hiển thị các phần tử cụ thể trên trang HTML. Một bộ quy tắc bao gồm một bộ chọn theo sau là một khối khai báo

cấu trúc quy tắc

Bộ quy tắc CSS bao gồm

Bộ chọn

Bộ chọn "chọn" các thành phần trên trang HTML bị ảnh hưởng bởi bộ quy tắc. Bộ chọn bao gồm mọi thứ cho đến (nhưng không bao gồm) dấu ngoặc nhọn bên trái đầu tiên. Ví dụ

h1 { color: blue; margin-top: 1em; }
p { padding: 5px; }
td { background-color: #ddd; }

khối khai báo

Khối khai báo là một thùng chứa bất kỳ thứ gì nằm giữa (và bao gồm) các dấu ngoặc nhọn. Khoảng trắng bên trong một khối khai báo bị bỏ qua - vì vậy nó có thể được sử dụng để sắp xếp các quy tắc theo bất kỳ cách nào bạn muốn. Ví dụ

h1 { color: blue; }
p { padding: 5px; }
td { background-color: #ddd; }

Hoặc, với khoảng trắng được thêm vào để hỗ trợ khả năng đọc

h1
{
color: blue;
}

Tuyên ngôn

Tuyên bố cho trình duyệt biết cách vẽ bất kỳ phần tử nào trên trang được chọn. Một khai báo bao gồm một thuộc tính và một giá trị, được phân tách bằng dấu hai chấm ". ". Mặc dù không cần thiết phải thêm dấu chấm phẩy sau một khai báo, nhưng bạn nên hoàn thành khai báo cuối cùng trong một khối bằng dấu chấm phẩy. Ví dụ

h1 { color: blue; }

Tài sản

Thuộc tính là khía cạnh của phần tử mà bạn đang chọn để tạo kiểu. Chỉ có thể có một thuộc tính trong mỗi khai báo. Ví dụ

Tôi đã cố gắng nghĩ ra tên của một thứ bằng tiếng địa phương CSS vào ngày hôm trước. Nó khiến tôi nghĩ rằng chúng ta nên có một số loại tài liệu tham khảo ngay tại đây về Thủ thuật CSS, vì một trang web có CSS ​​trong tiêu đề có lẽ nên có. Vì vậy, đây là những điều cơ bản

Bộ quy tắc CSS bao gồm

Phá vỡ điều đó…

  • Toàn bộ là một bộ quy tắc
  • Các dấu ngoặc nhọn và mọi thứ bên trong là một khối khai báo
  • Bit trước dấu ngoặc nhọn mở là một bộ chọn
  • Mỗi cặp khóa/giá trị, được phân tách bằng dấu hai chấm và kết thúc bằng dấu chấm phẩy, là một khai báo
  • Trong các cặp khóa/giá trị đó, khóa là một thuộc tính (hoặc tên thuộc tính) và giá trị là một giá trị (hoặc giá trị thuộc tính)

Marco Biedermann đã từng tạo sơ đồ này từ chính HTML và CSS, điều mà tôi nghĩ là cực kỳ thông minh

Mục tiêu cơ bản của ngôn ngữ Cascading Stylesheet (CSS) là cho phép một công cụ trình duyệt vẽ các thành phần của trang bằng các tính năng cụ thể, như màu sắc, định vị hoặc trang trí. Cú pháp CSS phản ánh mục tiêu này và các khối xây dựng cơ bản của nó là

  • Thuộc tính là mã định danh, là tên mà con người có thể đọc được, xác định tính năng nào được xem xét
  • Giá trị mô tả cách tính năng phải được xử lý bởi động cơ. Mỗi thuộc tính có một tập hợp các giá trị hợp lệ, được xác định bởi ngữ pháp chính thức, cũng như ý nghĩa ngữ nghĩa, được thực hiện bởi công cụ trình duyệt

khai báo CSS

Đặt các thuộc tính CSS thành các giá trị cụ thể là chức năng cốt lõi của ngôn ngữ CSS. Một cặp thuộc tính và giá trị được gọi là một khai báo và bất kỳ công cụ CSS nào cũng sẽ tính toán những khai báo nào áp dụng cho từng thành phần của trang để bố trí và tạo kiểu cho nó một cách thích hợp

Cả thuộc tính và giá trị đều không phân biệt chữ hoa chữ thường theo mặc định trong CSS. Cặp được phân tách bằng dấu hai chấm, ':' (U+003A COLON) và các khoảng trắng trước, giữa và sau các thuộc tính và giá trị, nhưng không nhất thiết phải ở bên trong, được bỏ qua

Bộ quy tắc CSS bao gồm

Có hơn 100 thuộc tính khác nhau trong CSS và gần như vô số giá trị khác nhau. Không phải tất cả các cặp thuộc tính và giá trị đều được phép và mỗi thuộc tính xác định giá trị hợp lệ là gì. Khi một giá trị không hợp lệ cho một thuộc tính nhất định, khai báo được coi là không hợp lệ và hoàn toàn bị công cụ CSS bỏ qua

khối khai báo CSS

Các khai báo được nhóm thành các khối, đó là trong một cấu trúc được phân định bằng dấu ngoặc mở, '{' (U+007B LEFT CURLY BRACKET), và dấu đóng, '}' (h1 { color: blue; margin-top: 1em; }
p { padding: 5px; }
td { background-color: #ddd; }
0). Các khối đôi khi có thể được lồng vào nhau, vì vậy các dấu ngoặc mở và đóng phải khớp với nhau

Bộ quy tắc CSS bao gồm

Các khối như vậy được gọi một cách tự nhiên là các khối khai báo và các khai báo bên trong chúng được phân tách bằng dấu chấm phẩy, 'h1 { color: blue; margin-top: 1em; }
p { padding: 5px; }
td { background-color: #ddd; }
1' (h1 { color: blue; margin-top: 1em; }
p { padding: 5px; }
td { background-color: #ddd; }
2). Một khối khai báo có thể trống, có chứa khai báo null. Khoảng trắng xung quanh khai báo được bỏ qua. Phần khai báo cuối cùng của một khối không cần phải kết thúc bằng dấu chấm phẩy, mặc dù nó thường được coi là cách tốt để làm điều đó vì nó tránh việc quên thêm nó khi mở rộng khối bằng một phần khai báo khác

Một khối khai báo CSS được hiển thị trong sơ đồ bên dưới

Bộ quy tắc CSS bao gồm

Ghi chú. Nội dung của khối khai báo CSS, đó là danh sách các khai báo được phân tách bằng dấu chấm phẩy, không có dấu ngoặc nhọn mở đầu và dấu ngoặc nhọn đóng, có thể được đặt bên trong thuộc tính h1 { color: blue; margin-top: 1em; }
p { padding: 5px; }
td { background-color: #ddd; }
3 của HTML

bộ quy tắc CSS

Nếu các biểu định kiểu chỉ có thể áp dụng một khai báo cho từng thành phần của trang Web, thì chúng sẽ khá vô dụng. Mục tiêu thực sự là áp dụng các khai báo khác nhau cho các phần khác nhau của tài liệu

CSS cho phép điều này bằng cách liên kết các điều kiện với các khối khai báo. Mỗi khối khai báo (hợp lệ) được đặt trước bởi một hoặc nhiều bộ chọn được phân tách bằng dấu phẩy, là các điều kiện chọn một số thành phần của trang. Một nhóm bộ chọn và một khối khai báo liên quan, cùng nhau, được gọi là một bộ quy tắc hoặc thường là một quy tắc

Một bộ quy tắc CSS (hoặc quy tắc) được hiển thị trong sơ đồ bên dưới

Bộ quy tắc CSS bao gồm

Vì một phần tử của trang có thể được so khớp bởi một số bộ chọn và do đó, theo một số quy tắc có khả năng chứa một thuộc tính nhất định nhiều lần, với các giá trị khác nhau, nên tiêu chuẩn CSS xác định cái nào được ưu tiên hơn cái kia và phải được áp dụng. đây được gọi là thuật toán xếp tầng

Ghi chú. Điều quan trọng cần lưu ý là ngay cả khi một bộ quy tắc được đặc trưng bởi một nhóm bộ chọn là một loại tốc ký thay thế các bộ quy tắc bằng một bộ chọn duy nhất, thì điều này không áp dụng cho tính hợp lệ của chính bộ quy tắc đó

Điều này dẫn đến một hệ quả quan trọng. nếu một bộ chọn cơ bản duy nhất không hợp lệ, chẳng hạn như khi sử dụng một phần tử giả hoặc lớp giả không xác định, thì toàn bộ bộ chọn không hợp lệ và do đó, toàn bộ quy tắc sẽ bị bỏ qua (cũng không hợp lệ)

câu lệnh CSS

Bộ quy tắc là các khối xây dựng chính của biểu định kiểu, thường chỉ bao gồm một danh sách lớn các quy tắc đó. Nhưng có những thông tin khác mà tác giả Web muốn truyền đạt trong biểu định kiểu, chẳng hạn như bộ ký tự, các biểu định kiểu bên ngoài khác để nhập, mặt phông chữ hoặc mô tả bộ đếm danh sách, v.v. Nó sẽ sử dụng các loại câu lệnh cụ thể và khác để làm điều đó

Câu lệnh là một khối xây dựng bắt đầu bằng bất kỳ ký tự không phải dấu cách nào và kết thúc bằng dấu ngoặc nhọn hoặc dấu chấm phẩy đầu tiên (bên ngoài chuỗi, không thoát và không được đưa vào cặp {}, () hoặc [] khác)

Bộ quy tắc CSS bao gồm

Có hai loại tuyên bố

  • Bộ quy tắc (hoặc quy tắc), như đã thấy, liên kết một tập hợp các khai báo CSS với một điều kiện được mô tả bởi bộ chọn
  • Các quy tắc tại bắt đầu bằng ký hiệu tại, 'h1 { color: blue; margin-top: 1em; }
    p { padding: 5px; }
    td { background-color: #ddd; }
    4' (U+003A COLON0), theo sau là một mã định danh và sau đó tiếp tục cho đến cuối câu lệnh, cho đến dấu chấm phẩy (;) tiếp theo bên ngoài khối hoặc dấu chấm hết . Mỗi loại quy tắc tại, được xác định bởi mã định danh, có thể có cú pháp bên trong và ngữ nghĩa của riêng nó. Chúng được sử dụng để truyền đạt thông tin siêu dữ liệu (như U+003A COLON1 hoặc U+003A COLON2), thông tin có điều kiện (như U+003A COLON3 hoặc U+003A COLON4) hoặc thông tin mô tả (như U+003A COLON5)

Bất kỳ câu lệnh nào không phải là bộ quy tắc hoặc quy tắc tại đều không hợp lệ và bị bỏ qua

câu lệnh lồng nhau

Có một nhóm câu lệnh khác – câu lệnh lồng nhau. Đây là những câu lệnh có thể được sử dụng trong một tập con cụ thể của các quy tắc tại – quy tắc nhóm có điều kiện. Những tuyên bố này chỉ áp dụng nếu một điều kiện cụ thể được đáp ứng. nội dung theo quy tắc U+003A COLON3 chỉ được áp dụng nếu thiết bị chạy trình duyệt phù hợp với điều kiện đã nêu; . Trong CSS1 và CSS2. 1, chỉ có thể sử dụng bộ quy tắc bên trong quy tắc nhóm có điều kiện. Điều đó rất hạn chế và hạn chế này đã được gỡ bỏ trong Điều kiện CSS cấp 3. Hiện tại, mặc dù vẫn còn đang thử nghiệm và không được mọi trình duyệt hỗ trợ, các quy tắc nhóm có điều kiện có thể chứa nhiều nội dung hơn. bộ quy tắc nhưng cũng có một số, nhưng không phải tất cả, quy tắc

3 phần của bộ quy tắc CSS là gì?

Cú pháp CSS bao gồm một bộ quy tắc. Các quy tắc này có 3 phần. bộ chọn, thuộc tính và giá trị .

Bộ quy tắc CSS là gì?

Bộ quy tắc CSS là các xác nhận khác nhau đối với các phần hoặc thành phần khác nhau của tài liệu . Mục tiêu là áp dụng một loạt các thuộc tính cho các phẩm chất riêng biệt nhất định cho một hoặc một sự sắp xếp cụ thể của các thành phần trong trang HTML được kết nối.

2 thành phần chính của bộ quy tắc CSS là gì?

Một quy tắc CSS bao gồm hai phần chính. bộ chọn ('h1') và phần khai báo ('màu. đỏ') . Trong HTML, tên phần tử không phân biệt chữ hoa chữ thường nên 'h1' hoạt động tốt như 'H1'. Tuyên bố có hai phần. tên thuộc tính ('màu') và giá trị thuộc tính ('đỏ').

Có bao nhiêu bộ quy tắc trong CSS?

hơn 100 thuộc tính khác nhau trong CSS và gần như vô số giá trị khác nhau. Không phải tất cả các cặp thuộc tính và giá trị đều được phép và mỗi thuộc tính xác định giá trị hợp lệ là gì.