DigitalOcean cung cấp các sản phẩm đám mây cho mọi giai đoạn của hành trình của bạn. Bắt đầu với $ 200 trong tín dụng miễn phí!
Có một bộ chọn CSS, thực sự là một phân loại giả, được gọi là :nth-child
. Đây là một ví dụ về việc sử dụng nó:
ul li:nth-child[3n+3] {
color: #ccc;
}
Những gì CSS ở trên, là chọn mỗi mục danh sách thứ ba bên trong danh sách chưa được đặt hàng. Đó là, thứ 3, 6, 9, 12, v.v. Nhưng nó hoạt động như thế nào? Và bạn có thể làm những thứ khác với :nth-child
? Hãy để một cái nhìn.
Nó sôi sục đến những gì ở giữa những dấu ngoặc đơn đó. Nth-con chấp nhận hai từ khóa ở vị trí đó: thậm chí và lẻ. Những điều đó nên khá rõ ràng. Ngay cả những người khác chọn các phần tử được đánh số, như thứ 2, 4, 6, v.v.even and odd. Those should be pretty obvious. “Even” selects even numbered elements, like the 2nd, 4th, 6th, etc. “Odd” selects odd numbered elements, like 1st, 3rd, 5th, etc.
Như đã thấy trong ví dụ đầu tiên, nth-child cũng chấp nhận các biểu thức ở giữa các dấu ngoặc đơn đó. Biểu thức đơn giản nhất có thể? Chỉ là một số. Nếu bạn đặt một số đơn giản trong ngoặc đơn, nó sẽ chỉ khớp với phần tử số đó. Ví dụ: đây là cách chỉ chọn phần tử thứ 5:
ul li:nth-child[5] {
color: #ccc;
}
Mặc dù vậy, hãy để lại cho
ul li:nth-child[5] {
color: #ccc;
}
1 từ ví dụ ban đầu. Làm thế nào mà nó hoạt động? Tại sao nó chọn mọi yếu tố thứ ba? Bí quyết là hiểu được biểu thức đại số và đại số đại diện. Hãy nghĩ về ul li:nth-child[5] {
color: #ccc;
}
2 như bắt đầu từ 0 và sau đó là một tập hợp tất cả các số nguyên dương. Sau đó hoàn thành biểu thức. Vì vậy, ul li:nth-child[5] {
color: #ccc;
}
3 là 3xn, và toàn bộ biểu thức cùng nhau là [3XN] +3. Bây giờ thay thế trong số nguyên không và tích cực, chúng tôi nhận được:[3 x 0] + 3 = 3 = 3rd Element
[3 x 1] + 3 = 6 = 6th Element
[3 x 2] + 3 = 9 = 9th Element
etc.
Làm thế nào về
ul li:nth-child[5] {
color: #ccc;
}
4?[2 x 0] + 1 = 1 = 1st Element
[2 x 1] + 1 = 3 = 3rd Element
[2 x 2] + 1 = 5 = 5th Element
etc.
Này đợi đã! Điều đó giống như giống như tiếng lẻ, vì vậy có lẽ don don cần sử dụng nó rất thường xuyên. Nhưng đợi bây giờ. Chúng tôi đã phơi bày ví dụ ban đầu của chúng tôi là quá phức tạp? Điều gì sẽ xảy ra nếu thay vì 3n 3n+3, chúng tôi đã sử dụng
ul li:nth-child[5] {
color: #ccc;
}
5 hoặc thậm chí đơn giản hơn ul li:nth-child[5] {
color: #ccc;
}
3.[3 x 0] = 0 = no match
[3 x 1] = 3 = 3rd Element
[3 x 2] = 6 = 6th Element
[3 x 3] = 9 = 9th Element
etc.
Vì vậy, như bạn có thể thấy, các trận đấu hoàn toàn giống nhau, không cần phải có +3 +3. Chúng ta có thể sử dụng các giá trị N âm, cũng như sử dụng phép trừ trong các biểu thức. Ví dụ:
ul li:nth-child[5] {
color: #ccc;
}
7:[4 x 0] - 1 = -1 = no match
[4 x 1] - 1 = 3 = 3rd Element
[4 x 2] - 1 = 7 = 7th Element
etc.
Sử dụng các giá trị
ul li:nth-child[5] {
color: #ccc;
}
8 có vẻ hơi kỳ lạ, bởi vì nếu kết quả cuối cùng là âm thì không có khớp, vì vậy bạn sẽ cần phải thêm vào biểu thức để lấy lại dương trở lại. Hóa ra, đây là một kỹ thuật khá thông minh. Bạn có thể sử dụng nó để chọn các yếu tố đầu tiên của N với ul li:nth-child[5] {
color: #ccc;
}
9:-0 + 3 = 3 = 3rd Element
-1 + 3 = 2 = 2nd Element
-2 + 3 = 1 = 1st Element
-3 + 3 = 0 = no match
etc.
SitePoint có một hướng dẫn tham khảo đẹp, bao gồm bảng tiện dụng tiện dụng này mà tôi sẽ không biết xấu hổ khi xuất bản tại đây:
1 | 1 | 4 | - | - | 3 |
3 | 5 | 8 | 4 | 3 | 2 |
5 | 9 | 12 | 8 | 8 | 1 |
7 | 13 | 16 | 12 | 13 | - |
9 | 17 | 20 | 16 | 18 | - |
11 | 21 | 24 | 20 | 23 | - |
Hỗ trợ trình duyệt
Không tí nào | 3.2+ | Không tí nào | 3.2+ | 9,5+ | Không tí nào | Không tí nào |
3.2+
9,5+
9+
Có, bạn có thể sử dụng những gì được gọi là bộ chọn :nth-child
.
Trong trường hợp này, bạn sẽ sử dụng:
li:nth-child[3n] {
// Styling for every third element here.
}
:nth-child[3n]:
3[0] = 0
3[1] = 3
3[2] = 6
3[3] = 9
3[4] = 12
[2 x 0] + 1 = 1 = 1st Element
[2 x 1] + 1 = 3 = 3rd Element
[2 x 2] + 1 = 5 = 5th Element
etc.
0 tương thích trong Chrome, Firefox và IE9+.Đối với một công việc xung quanh để sử dụng
[2 x 0] + 1 = 1 = 1st Element
[2 x 1] + 1 = 3 = 3rd Element
[2 x 2] + 1 = 5 = 5th Element
etc.
0 trong số các bộ chọn giả/thuộc tính khác trong IE6 cho đến IE8, hãy xem liên kết này.