2012-06-23 28 views
15

Tôi muốn tạo một menu trong đó mỗi mục được phân tách bằng dấu ·. Để đạt được điều này, tôi sử dụngCó ổn không khi sử dụng nhiều phần tử giả trong css?

menu li:before { 
    content: "· "; 
} 

Điều này là sưng lên, nhưng nó cũng tạo ra dấu chấm trước mục đầu tiên. Do đó, tôi cũng muốn sử dụng lớp học giả :first-child giả. Tôi có thể làm được không?

+0

Nó hoạt động trong webkit ít nhất ... – Himmators

+1

hoạt động tốt với trình duyệt hiện đại. Tôi đã từng sử dụng di chuột và sau lớp học. Và nó đã khơi dậy. – SVS

+1

Hoan hô cho các trình duyệt hiện đại! Có thể họ không bao giờ biến lỗi thời! – Himmators

Trả lời

16

Chắc chắn bạn có thể - http://jsfiddle.net/WQBxk/

p:before { 
    content: "BEFORE "; 
    display: block; 
} 

p:first-child:before { 
    content: "1ST"; 
    display: block 
} 
​ 

Nhược điểm - nó sẽ không làm việc trong IE7 và dưới đây. Không phải vì nhiều bộ chọn giả, nhưng do không được hỗ trợ :before - http://kimblim.dk/css-tests/selectors/

Chỉ cần thử nghiệm trong IE8 - hoạt động tốt.

+2

Bạn có thể sử dụng nhiều lớp giả, nhưng bạn không thể sử dụng nhiều phần tử giả. Đây là nơi mà sự khác biệt giữa hai điều này trở nên quan trọng (và việc sử dụng thuật ngữ "bộ chọn giả" có thể gây nhầm lẫn tiềm năng). – BoltClock

+0

Này, tôi sẽ hỏi một câu hỏi tương tự như thế này, nhưng sau đó tôi thấy câu hỏi này để sử dụng nhiều lớp giả, vì vậy tôi quyết định đặt câu hỏi của tôi trong những bình luận này. [Ở đây] (https://jsfiddle.net/NathanielSantley/nLnjbf50/6/) là fiddle của tôi. Tôi muốn nó hiển thị "Email không hợp lệ!" màu đỏ nếu nó thực sự là một email không hợp lệ và "Email hợp lệ!" màu xanh lá cây nếu đó là một email hợp lệ. Có điều gì tôi đang làm sai? – NathanielSantley

1

Đây là fiddle làm việc: http://jsfiddle.net/surendraVsingh/zRrLF/

<ul> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 
<li>lorem</li> 

</ul>​ 

CSS:

li:before{content:'. ';} 
li:first-child:before{content:'@ ';} 
-2

Tất nhiên bạn có thể sử dụng giả classes.They được khá tốt hỗ trợ từ IE8 và up.You có thể kiểm tra khả năng tương thích của bất kỳ pseudoclass nào bạn sẽ sử dụng ở đây http://caniuse.com/#search=after

Nếu bạn không muốn dấu chấm j ust sử dụng dấu phẩy trống trong nội dung và sau đó hiển thị: chặn và cũng chỉ định chiều cao và chiều rộng.

menu li:before { 
    content: ""; 

    display:block; 
    width:50px; 
    height:50px; 
    background:red; 

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