Hướng dẫn CSS

TRANG CHỦ CSS Giới thiệu CSS Cú pháp CSS Bộ chọn CSS CSS Cách thực hiện Nhận xét CSS Màu CSS Nền CSS Đường viền CSS Lề CSS CSS Padding Chiều cao / Chiều rộng CSS Mô hình hộp CSS Đề cương CSS Văn bản CSS Phông chữ CSS Biểu tượng CSS Liên kết CSS Danh sách CSS Bảng CSS Hiển thị CSS Chiều rộng tối đa CSS Vị trí CSS CSS Z-index CSS Overflow CSS Float Khối nội tuyến CSS Căn chỉnh CSS Bộ kết hợp CSS Lớp giả CSS Phần tử giả CSS Độ mờ của CSS Thanh điều hướng CSS Trình đơn thả xuống CSS Thư viện hình ảnh CSS Hình ảnh CSS Sprites Bộ chọn CSS Attr Biểu mẫu CSS Bộ đếm CSS Bố cục trang web CSS Đơn vị CSS Đặc tính CSS CSS! Quan trọng Các hàm toán học CSS

CSS nâng cao

Góc làm tròn CSS Hình ảnh đường viền CSS Nền CSS Màu CSS Từ khóa màu CSS CSS Gradients Bóng CSS Hiệu ứng văn bản CSS Phông chữ Web CSS Chuyển đổi CSS 2D Chuyển đổi CSS 3D Chuyển đổi CSS Hoạt ảnh CSS Chú giải công cụ CSS Hình ảnh phong cách CSS Phản chiếu hình ảnh CSS CSS object-fit Vị trí đối tượng CSS Mặt nạ CSS Các nút CSS Phân trang CSS CSS Nhiều cột Giao diện người dùng CSS Biến CSS Kích thước hộp CSS Truy vấn phương tiện CSS Ví dụ về CSS MQ CSS Flexbox

CSS đáp ứng

Giới thiệu về RWD RWD Viewport Chế độ xem lưới RWD Truy vấn phương tiện RWD Hình ảnh RWD RWD Video Khung RWD Mẫu RWD

Lưới CSS

Grid Intro Vùng chứa lưới Mục lưới

CSS SASS

Hướng dẫn SASS

Ví dụ về CSS

Mẫu CSS Ví dụ về CSS câu đố css Bài tập CSS Chứng chỉ CSS

Tham chiếu CSS

Tham chiếu CSS Bộ chọn CSS Chức năng CSS Tham chiếu CSS Aural Phông chữ An toàn trên Web CSS Hoạt hình CSS Đơn vị CSS Công cụ chuyển đổi CSS PX-EM Màu CSS Giá trị màu CSS Giá trị mặc định của CSS Hỗ trợ trình duyệt CSS

Đặc tính CSS


Tính cụ thể là gì?

Nếu có hai hoặc nhiều quy tắc CSS trỏ đến cùng một phần tử, bộ chọn có giá trị đặc hiệu cao nhất sẽ "thắng" và khai báo kiểu của nó sẽ được áp dụng cho phần tử HTML đó.

Hãy coi tính cụ thể như một điểm số / thứ hạng xác định tuyên bố kiểu nào cuối cùng sẽ được áp dụng cho một phần tử.

Hãy xem các ví dụ sau:

ví dụ 1

Trong ví dụ này, chúng tôi đã sử dụng phần tử "p" làm bộ chọn và chỉ định màu đỏ cho phần tử này. Văn bản sẽ có màu đỏ:

<html>
<head>
  <style>
    p {color: red;}
  </style>
</head>
<body>

<p>Hello World!</p>

</body>
</html>

Bây giờ, hãy xem ví dụ 2:

Ví dụ 2

Trong ví dụ này, chúng tôi đã thêm một bộ chọn lớp (có tên là "test") và chỉ định màu xanh lá cây cho lớp này. Văn bản bây giờ sẽ có màu xanh lục (mặc dù chúng tôi đã chỉ định màu đỏ cho bộ chọn phần tử "p". Điều này là do bộ chọn lớp được ưu tiên cao hơn:

<html>
<head>
  <style>
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p class="test">Hello World!</p>

</body>
</html>

Bây giờ, hãy xem ví dụ 3:

Ví dụ 3

Trong ví dụ này, chúng tôi đã thêm bộ chọn id (có tên là "demo"). Văn bản bây giờ sẽ có màu xanh lam, vì bộ chọn id được ưu tiên cao hơn:

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test">Hello World!</p>

</body>
</html>

Bây giờ, hãy xem ví dụ 4:

Ví dụ 4

Trong ví dụ này, chúng tôi đã thêm một kiểu nội tuyến cho phần tử "p". Văn bản bây giờ sẽ có màu hồng, vì kiểu nội tuyến được ưu tiên cao nhất:

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test" style="color: pink;">Hello World!</p>

</body>
</html>


Hệ thống phân cấp tính cụ thể

Mỗi bộ chọn CSS đều có vị trí của nó trong hệ thống phân cấp tính cụ thể.

Có bốn danh mục xác định mức độ cụ thể của một bộ chọn:

  • Kiểu nội tuyến - Ví dụ: <h1 style = "color: pink;">
  • ID - Ví dụ: #navbar
  • Lớp, lớp giả, bộ chọn thuộc tính - Ví dụ: .test,: hover, [href]
  • Phần tử và phần tử giả - Ví dụ: h1,: before

Làm thế nào để tính toán cụ thể?

Thuộc lòng cách tính độ đặc hiệu!

Bắt đầu từ 0, thêm 100 cho mỗi giá trị ID, thêm 10 cho mỗi giá trị lớp (hoặc lớp giả hoặc bộ chọn thuộc tính), thêm 1 cho mỗi bộ chọn phần tử hoặc phần tử giả.

Lưu ý: Kiểu nội tuyến nhận giá trị đặc trưng là 1000 và luôn được ưu tiên cao nhất!

Lưu ý 2: Có một ngoại lệ đối với quy tắc này: nếu bạn sử dụng !important quy tắc, nó thậm chí sẽ ghi đè các kiểu nội tuyến!

Bảng dưới đây trình bày một số ví dụ về cách tính giá trị độ cụ thể:

Selector Specificity Value Calculation
p 1 1
p.test 11 1 + 10
p#demo 101 1 + 100
<p style="color: pink;"> 1000 1000
#demo 100 100
.test 10 10
p.test1.test2 21 1 + 10 + 10
#navbar p#demo 201 100 + 1 + 100
* 0 0 (the universal selector is ignored)

Bộ chọn có giá trị độ đặc hiệu cao nhất sẽ thắng và có hiệu lực!

Hãy xem xét ba đoạn mã sau:

Thí dụ

A: h1
B: h1#content
C: <h1 id="content" style="color: pink;">Heading</h1>

Độ đặc hiệu của A là 1 (bộ chọn một phần tử)
Độ đặc hiệu của B là 101 (một tham chiếu ID + một bộ chọn phần tử)
Độ đặc hiệu của C là 1000 (kiểu nội dòng)

Vì quy tắc thứ ba (C) có giá trị đặc hiệu cao nhất (1000), khai báo kiểu này sẽ được áp dụng.



Ví dụ về quy tắc tính cụ thể hơn

Tính cụ thể ngang nhau: quy tắc mới nhất thắng - Nếu cùng một quy tắc được viết hai lần vào biểu định kiểu bên ngoài, thì quy tắc mới nhất sẽ thắng:

Thí dụ

h1 {background-color: yellow;}
h1 {background-color: red;}


Bộ chọn ID có độ đặc hiệu cao hơn bộ chọn thuộc tính - Hãy xem ba dòng mã sau:

Thí dụ

div#a {background-color: green;}
#a {background-color: yellow;}
div[id=a] {background-color: blue;}

quy tắc đầu tiên cụ thể hơn hai quy tắc còn lại và do đó sẽ được áp dụng.


Bộ chọn theo ngữ cảnh cụ thể hơn bộ chọn phần tử đơn lẻ - Biểu định kiểu được nhúng gần với phần tử cần tạo kiểu hơn. Vì vậy, trong tình huống sau

Thí dụ

From external CSS file:
#content h1 {background-color: red;}

In HTML file:
<style>
#content h1 {background-color: yellow;}
</style>

quy tắc sau sẽ được áp dụng.


Một bộ chọn lớp đánh bại bất kỳ số lượng bộ chọn phần tử nào - một bộ chọn lớp chẳng hạn như .intro đánh bại h1, p, div, v.v.:

Thí dụ

.intro {background-color: yellow;}
h1 {background-color: red;}


Bộ chọn phổ quát (*) và các giá trị kế thừa có đặc tính là 0 - Bộ chọn phổ dụng (*) và các giá trị kế thừa bị bỏ qua!