2012-02-24 34 views
5

Tôi gặp sự cố với bộ chọn css-child css. Tôi có một mạng lưới 3x3 elemtens bên trong một thùng chứa. Những yếu tố đó có một lớp được gọi là .square. Với .square:nth-child(3n+1) Tôi chọn mọi thành phần đầu tiên của hàng và tô màu xanh lục. Với .square:nth-child(3n+3) Tôi chọn mọi thành phần cuối cùng của hàng và tô màu đỏ.css nth-child và các lớp học

Tính năng này hoạt động tốt, cho đến khi có bất kỳ phần tử nào (ví dụ: <br>) được xuất trước lưới. Với mỗi <br> mới, thứ tự di chuyển lên một, như là <br> được coi là .square.

Vì tôi hiểu được số .nth-child, nên chọn mọi phần tử thứ ba của lớp .square. Tại sao nó áp dụng cho bất kỳ yếu tố nào, và làm thế nào tôi có thể đạt được mục tiêu của tôi?

Cảm ơn trước

http://www.hier-krieg-ich-alles.de/shop.php?cat=26491127728

Vấn đề xảy ra trên các hộp ở giữa.

+1

vui lòng nhấn mã của bạn để hiểu rõ hơn – sandeep

Trả lời

8

Có vẻ như bạn muốn nth-of-type.

Bộ chọn liên quan mà bạn có thể thấy hữu ích là :first-of-type, :last-of-type, :nth-last-of-type:only-of-type.

+0

Yes. Để làm rõ, 'nth-child' chỉ đếm các phần tử, vì vậy' .classname: nth-child' chọn các phần tử có 'classname' và cũng là con thứ n. –

+1

Đúng, đó là những gì trang được liên kết nói :) 'nth-child' thường được sử dụng vì nó được phát hành lần đầu tiên (theo như tôi biết) nhưng nó thực sự chỉ hữu ích trong các tình huống giới hạn; 'nth-of-type' hữu ích hơn rất nhiều, bởi vì nó làm những gì mà hầu hết mọi người nghĩ là 'n-child'. – Joe

+0

Khá. 'first-child' là thực tế đầu tiên. Kỳ lạ thay, thậm chí không có một 'đứa trẻ cuối cùng' ngay từ đầu. –

0

thứ n con chỉ làm việc với các yếu tố html, thứ n con css không biết lớp và id, nếu bạn muốn thiết lập thứ n-con cho lớp, thêm một số thuộc tính tùy chỉnh cho lớp rằng việc sử dụng jquery ..

như

jQuery('.square:nth-child(3n+3)').attr("act","dummy"); 

sau đó sử dụng css

div[act='dummy']{ 
border : 1px solid red;} 
Các vấn đề liên quan