2012-07-04 27 views
7

Tôi có mảnh sau của HTML:CSS đứa con đầu lòng của lớp học cụ thể

<span class="ui-icon ui-icon-triangle-1-s"></span> 
<span class="route-line">4</span> 
<span class="route-line">33</span> 

Tôi muốn thêm một số phong cách trên đầu tiênspan với class="route-line". Có thể với CSS? Nó là một cái gì đó giống như nth-of-type; nếu nó đã tồn tại, nó sẽ được gọi là nth-of-type-with-class.

Cảm ơn bạn!

Trả lời

3

tuổi đầu tiên với lớp .route-line tiếp cho bất kỳ yếu tố khác mà không có lớp .route-line

*:not(.route-line) + span.route-line 
{ 
    background-color:yellow; 
} 
+0

Nó hoạt động, nhưng không phải là '*' khá tốn thời gian? – linkyndy

+0

Bạn có thể thay thế * bằng một khoảng nếu bạn nhận thấy bất kỳ sự chậm trễ nào – Leo

+0

Đúng vậy. Nó tương tự như câu trả lời được chấp nhận trước đó, nhưng tôi tin rằng câu trả lời này gần hơn với những gì tôi cần. Cảm ơn! – linkyndy

2

Tại sao bạn không áp dụng một lớp khác cho phần tử bạn muốn tạo kiểu.

<span class="ui-icon ui-icon-triangle-1-s"></span> 
<span class="route-line custom-route-line">4</span> 
<span class="route-line">33</span> 

Và css sẽ trông như thế này

.custom-route-line{/*your styling goes here*/} 

Lưu ý cả hai phong cách của lớp (đường dòng & tùy chỉnh-route-line) sẽ áp dụng cho phần tử đó. Take a look here

+1

Tôi biết, nhưng tôi muốn giữ HTML càng sạch càng tốt. – linkyndy

9

Trong trường hợp này bạn có thể sử dụng bộ chọn anh chị em. Cũng giống như vậy:

.ui-icon + .route-line{ 
    color: red; 
} 

Nó sẽ chỉ tạo kiểu cho span mà sau các phần tử với một lớp ui-icon.

+0

+1 cho kỹ thuật mới mà tôi không biết. – menislici

+0

Tôi có lẽ sẽ gắn bó với giải pháp này cho đến khi tôi tìm thấy một giải pháp tốt hơn. Cảm ơn! – linkyndy

1

gì bạn đang tìm kiếm là span.route-line:first-of-type, nhưng nó kém được hỗ trợ .

Các vấn đề liên quan