Hướng dẫn has trong css - has in css
Show
Định nghĩa và sử dụng
Cấu trúc
Ví dụHtml viết:
Thành phần p bên trong div Thành phần div
Thành phần div
Hiển thị trình duyệt:$(':has(p)') chọn thành phần div khi thành phần div với điều kiện là có thành phần p. Giả sử mã dấu sau. 1. * ** { margin: 0; padding: 0; } Trong trường hợp này, đoạn văn của li a { text-decoration: none; }6 thứ hai sẽ không được chọn; chỉ li a { text-decoration: none; }6 đầu tiên. Ngay sau khi bạn áp dụng nhiều hơn một con vào một phần tử, thì lớp giả * { margin: 0; padding: 0; }53 không còn có hiệu lực. Lớp giả này có thể được sử dụng theo một số cách khéo léo. Nó sẽ chọn các phần tử mà không có anh chị em trong container cha của nó. Ví dụ, chúng ta hãy chọn tất cả a:link { color: red; } a:visted { color: purple; }5, mà chỉ có một phần tử duy nhất. Đầu tiên, hãy tự hỏi làm thế nào bạn thực hiện nhiệm vụ này? Bạn có thể làm * { margin: 0; padding: 0; }59, nhưng, điều này sẽ chọn tất cả các phần tử trong list. Giải pháp duy nhất để sử dụng là * { margin: 0; padding: 0; }60. #container * { border: 1px solid black; } Firefox 3.5+ Xem demo Tương thích
2. #X #X#container { width: 960px; margin: auto; } Gắn vào đằng trước biểu tượng # cho một bộ chọn cho phép chúng ta nhắm chọn bằng li a { text-decoration: none; }0. Đây là một cách sử dụng dễ dàng và phổ biến nhất, tuy nhiên hãy thận trọng khi sử dụng bộ chọn li a { text-decoration: none; }0.
bộ chọn li a { text-decoration: none; }0 là cứng nhắc và không cho phép tái sử dụng. Nếu có thể, trước tiên cố gắng sử dụng một tên thẻ, một trong những phần tử HTML5 mới, hoặc thậm chí là một lớp giả. Xem demo Tương thích
3. .X .X.error { color: red; } Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. Xem demo Tương thích
Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. X Yli a { text-decoration: none; } 4. X Y
Xem demo Tương thích
5. X Xa { color: red; } ul { margin-left: 0; } Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. Xem demo Tương thích
Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. X:visited và X:linka:link { color: red; } a:visted { color: purple; } 4. X Y Bộ chọn được nhắc đến nhiều nhất tiếp theo là chọn li a { text-decoration: none; }2. Khi bạn cần cụ thể hơn với các bộ chọn của bạn, thì bạn hãy sử dụng cái này. Ví dụ, sẽ ra sao nếu, thay vì nhắm chọn tất cả các thẻ liên kết, thì bạn chỉ cần nhắm chọn các liên kết mà nằm trong một danh sách có thứ tự? Đặc biệt khi bạn muốn sử dụng một bộ chọn các phần tử con. Xem demo Tương thích
Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. X + Yul + p { color: red; } 4. X Y Xem demo Tương thích
Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. X > Ydiv#container > ul { border: 1px solid black; } 4. X Y * { margin: 0; padding: 0; }0 Bộ chọn được nhắc đến nhiều nhất tiếp theo là chọn li a { text-decoration: none; }2. Khi bạn cần cụ thể hơn với các bộ chọn của bạn, thì bạn hãy sử dụng cái này. Ví dụ, sẽ ra sao nếu, thay vì nhắm chọn tất cả các thẻ liên kết, thì bạn chỉ cần nhắm chọn các liên kết mà nằm trong một danh sách có thứ tự? Đặc biệt khi bạn muốn sử dụng một bộ chọn các phần tử con. Mẹo hay - Nếu bộ chọn của bạn trông giống như a { color: red; } ul { margin-left: 0; }8, thì bạn đang làm sai. Hãy luôn luôn tự hỏi mình nó có hoàn toàn cần thiết hay không khi áp dụng tất cả chúng. Xem demo Tương thích
Opera X ~ Y* { margin: 0; padding: 0; }1 Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. Xem demo Tương thích
10. X[title] X[title]* { margin: 0; padding: 0; }2 Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó. Xem demo Tương thích
11. X[href="foo"] X[href="foo"]* { margin: 0; padding: 0; }3 Đây là một bộ chọn li a { text-decoration: none; }1. Sự khác nhau giữa li a { text-decoration: none; }0 và các li a { text-decoration: none; }1 đó là, với lớp, bạn có thể chọn nhiều phần tử. Sử dụng các li a { text-decoration: none; }1 khi bạn muốn phong cách của bạn được áp dụng cho một nhóm các phần tử. Ngoài ra, sử dụng li a { text-decoration: none; }0 để tìm một phần tử duy nhất, và chỉ định phong cách cho phần tử cụ thể đó.
Bộ chọn được nhắc đến nhiều nhất tiếp theo là chọn li a { text-decoration: none; }2. Khi bạn cần cụ thể hơn với các bộ chọn của bạn, thì bạn hãy sử dụng cái này. Ví dụ, sẽ ra sao nếu, thay vì nhắm chọn tất cả các thẻ liên kết, thì bạn chỉ cần nhắm chọn các liên kết mà nằm trong một danh sách có thứ tự? Đặc biệt khi bạn muốn sử dụng một bộ chọn các phần tử con. Xem demo Tương thích
12. X[href*="nettuts"] X[href*="nettuts"]* { margin: 0; padding: 0; }4 Bạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. Hãy nhớ rằng đây là một bộ chọn rộng. Điều gì xảy ra nếu thẻ liên kết liên kết đến một số trang web không phải Envato với chuỗi tuts trong url? Khi bạn cần cụ thể hơn, hãy sử dụng div#container > ul { border: 1px solid black; }0 và div#container > ul { border: 1px solid black; }1, để tham chiếu bắt đầu và kết thúc của một chuỗi, tương ứng. Xem demo Tương thích
13. X[href^="http"] X[href^="http"]* { margin: 0; padding: 0; }5 Bạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. Hãy nhớ rằng đây là một bộ chọn rộng. Điều gì xảy ra nếu thẻ liên kết liên kết đến một số trang web không phải Envato với chuỗi tuts trong url? Khi bạn cần cụ thể hơn, hãy sử dụng div#container > ul { border: 1px solid black; }0 và div#container > ul { border: 1px solid black; }1, để tham chiếu bắt đầu và kết thúc của một chuỗi, tương ứng.
Đây là một biểu thức với biểu tượng dấu mũ. Nó thường được sử dụng nhiều nhất trong các biểu thức chính quy để chỉ về chuỗi bắt đầu của một chuỗi. Nếu chúng ta muốn nhắm chọn tất cả các thẻ liên kết có một div#container > ul { border: 1px solid black; }2 bắt đầu bằng div#container > ul { border: 1px solid black; }3, chúng ta có thể sử dụng một bộ chọn tương tự như đoạn code trên. Xem demo Tương thích
14. X[href$=".jpg"] X[href$=".jpg"]* { margin: 0; padding: 0; }6 Bạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. Xem demo Hãy nhớ rằng đây là một bộ chọn rộng. Điều gì xảy ra nếu thẻ liên kết liên kết đến một số trang web không phải Envato với chuỗi tuts trong url? Khi bạn cần cụ thể hơn, hãy sử dụng div#container > ul { border: 1px solid black; }0 và div#container > ul { border: 1px solid black; }1, để tham chiếu bắt đầu và kết thúc của một chuỗi, tương ứng.
15. X[data-*="foo"] X[data-*="foo"]* { margin: 0; padding: 0; }7 Bạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. * { margin: 0; padding: 0; }8 Hãy nhớ rằng đây là một bộ chọn rộng. Điều gì xảy ra nếu thẻ liên kết liên kết đến một số trang web không phải Envato với chuỗi tuts trong url? Khi bạn cần cụ thể hơn, hãy sử dụng div#container > ul { border: 1px solid black; }0 và div#container > ul { border: 1px solid black; }1, để tham chiếu bắt đầu và kết thúc của một chuỗi, tương ứng. * { margin: 0; padding: 0; }9 Có bao giờ tự hỏi làm thế nào một số trang web có thể hiển thị một biểu tượng nhỏ bên cạnh các liên kết mà là liên kết bên ngoài? Tôi chắc là bạn đã nhìn thấy nó trước đây; chúng đang nhắc khéo rằng các liên kết sẽ chỉ dẫn bạn tới một trang web hoàn toàn khác nhau. * { margin: 0; padding: 0; }7 Xem demo Tương thích
16. X[foo~="bar"] X[foo~="bar"]#container * { border: 1px solid black; }1 Bạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. Hãy nhớ rằng đây là một bộ chọn rộng. Điều gì xảy ra nếu thẻ liên kết liên kết đến một số trang web không phải Envato với chuỗi tuts trong url? Khi bạn cần cụ thể hơn, hãy sử dụng div#container > ul { border: 1px solid black; }0 và div#container > ul { border: 1px solid black; }1, để tham chiếu bắt đầu và kết thúc của một chuỗi, tương ứng. #container * { border: 1px solid black; }2 Có bao giờ tự hỏi làm thế nào một số trang web có thể hiển thị một biểu tượng nhỏ bên cạnh các liên kết mà là liên kết bên ngoài? Tôi chắc là bạn đã nhìn thấy nó trước đây; chúng đang nhắc khéo rằng các liên kết sẽ chỉ dẫn bạn tới một trang web hoàn toàn khác nhau. #container * { border: 1px solid black; }3 Đây là một biểu thức với biểu tượng dấu mũ. Nó thường được sử dụng nhiều nhất trong các biểu thức chính quy để chỉ về chuỗi bắt đầu của một chuỗi. Nếu chúng ta muốn nhắm chọn tất cả các thẻ liên kết có một div#container > ul { border: 1px solid black; }2 bắt đầu bằng div#container > ul { border: 1px solid black; }3, chúng ta có thể sử dụng một bộ chọn tương tự như đoạn code trên. Xem demo Tương thích
17. X:checked X:checked#container * { border: 1px solid black; }4 Bạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. Xem demo Tương thích
18. X:after X:afterBạn thấy rồi đó; đó là những gì mà chúng ta cần. Cái ngôi sao chỉ định rằng giá trị phía sau phải xuất hiện ở đâu đó trong giá trị của thuộc tính. Bằng cách đó, nó bao hàm cả nettuts.com, net.tutsplus.com, và thậm chí tutsplus.com. Hãy nhớ rằng đây là một bộ chọn rộng. Điều gì xảy ra nếu thẻ liên kết liên kết đến một số trang web không phải Envato với chuỗi tuts trong url? Khi bạn cần cụ thể hơn, hãy sử dụng div#container > ul { border: 1px solid black; }0 và div#container > ul { border: 1px solid black; }1, để tham chiếu bắt đầu và kết thúc của một chuỗi, tương ứng. #container * { border: 1px solid black; }5 Có bao giờ tự hỏi làm thế nào một số trang web có thể hiển thị một biểu tượng nhỏ bên cạnh các liên kết mà là liên kết bên ngoài? Tôi chắc là bạn đã nhìn thấy nó trước đây; chúng đang nhắc khéo rằng các liên kết sẽ chỉ dẫn bạn tới một trang web hoàn toàn khác nhau. Đây là một biểu thức với biểu tượng dấu mũ. Nó thường được sử dụng nhiều nhất trong các biểu thức chính quy để chỉ về chuỗi bắt đầu của một chuỗi. Nếu chúng ta muốn nhắm chọn tất cả các thẻ liên kết có một div#container > ul { border: 1px solid black; }2 bắt đầu bằng div#container > ul { border: 1px solid black; }3, chúng ta có thể sử dụng một bộ chọn tương tự như đoạn code trên.
Tương thích
19. X:hover X:hover#container * { border: 1px solid black; }6 Thôi nào. Bạn biết cái này. Thuật ngữ chính thức cho việc này là * { margin: 0; padding: 0; }12. Nghe có vẻ khó hiểu, nhưng nó thực sự không có gì khó hiểu cả. Bạn muốn áp dụng phong cách cụ thể khi người dùng di chuyển chuột qua một phần tử phải không? Nó sẽ giúp bạn hoàn thành công việc!
Bạn sẽ thường xuyên sử dụng bộ chọn này khi áp dụng, ví dụ, một * { margin: 0; padding: 0; }14 vào thẻ liên kết, khi di chuyển chuột qua. #container * { border: 1px solid black; }7
Tương thích
20. X:not(selector) X:not(selector)#container * { border: 1px solid black; }8 Thôi nào. Bạn biết cái này. Thuật ngữ chính thức cho việc này là * { margin: 0; padding: 0; }12. Nghe có vẻ khó hiểu, nhưng nó thực sự không có gì khó hiểu cả. Bạn muốn áp dụng phong cách cụ thể khi người dùng di chuyển chuột qua một phần tử phải không? Nó sẽ giúp bạn hoàn thành công việc! Hãy nhớ rằng phiên bản cũ của Internet Explorer không phản hồi khi lớp giả * { margin: 0; padding: 0; }13 được áp dụng cho bất cứ thứ gì khác ngoài một thẻ liên kết. #container * { border: 1px solid black; }9 Bạn sẽ thường xuyên sử dụng bộ chọn này khi áp dụng, ví dụ, một * { margin: 0; padding: 0; }14 vào thẻ liên kết, khi di chuyển chuột qua. Tương thích
Thôi nào. Bạn biết cái này. Thuật ngữ chính thức cho việc này là * { margin: 0; padding: 0; }12. Nghe có vẻ khó hiểu, nhưng nó thực sự không có gì khó hiểu cả. Bạn muốn áp dụng phong cách cụ thể khi người dùng di chuyển chuột qua một phần tử phải không? Nó sẽ giúp bạn hoàn thành công việc! X::phần tử giả#container { width: 960px; margin: auto; }0 Hãy nhớ rằng phiên bản cũ của Internet Explorer không phản hồi khi lớp giả * { margin: 0; padding: 0; }13 được áp dụng cho bất cứ thứ gì khác ngoài một thẻ liên kết.
Mẹo hay - |