2013-06-09 23 views
10

Tôi đã CSS và HTML code sau:CSS/HTML: ul: selector trống sẽ không phù hợp với một danh sách trống

<ul id="actions" class="frame frame-yellowglow"> 
</ul> 

CSS

ul#actions { 
    clear: left;  
    width: calc(60% - 2px); 
    margin: 5px auto; 
    padding: 10px 0px; 
    text-align: center; 
} 
ul#actions:empty { 
    margin: 0; 
    padding: 0; 
} 
ul#actions li { 
    display: inline; 
    margin: 0px 3px; 
} 
.frame { 
    border-radius: 5px; 
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 
    border: 1px #dddddd solid; 
} 
.frame:empty { 
    border: none; 
    box-shadow: none; 
} 
.frame-yellowglow { 
    border: 1px #D4B700 solid; 
    box-shadow: 0 0 4px #D4B700; 
} 

Các ul được phổ biến với các biểu tượng đối với một số hành động có thể được thực hiện. Tuy nhiên, ul không khớp với: bộ chọn trống khi trống và như vậy vẫn hiển thị; đường viền, đệm, bóng và tất cả.

[EDIT: Để làm rõ, tôi đang nói ở đây về thời điểm các phần tử chưa được thêm vào. Ngay cả khi không có gì bên trong, nó vẫn không khớp với: bộ chọn trống. ]

Tại sao lại như vậy?

+0

Dân cư được cư trú theo cách nào? Nếu đối tượng DOM có con, nó sẽ không được tính là rỗng. Cho dù những yếu tố đó có do đánh dấu hay Javascript không liên quan. – lonesomeday

+0

Khi bạn nói "trống", ý bạn là "

    '? Ngoài ra, bạn đang làm việc với trình duyệt nào (': empty' có thể không được hỗ trợ)? – ASGM

    +0

    @lonesomeday qua PHP bất cứ khi nào trang được tạo và có thể thay đổi qua javascript. – Jake

    Trả lời

    18

    Theo MDN

    Các: trống pseudo-class đại diện cho bất kỳ yếu tố mà không có con cái gì cả. Chỉ các nút phần tử và văn bản (bao gồm khoảng trắng) được xem xét.

    "Trống" ul của bạn có thể chứa nút văn bản khoảng trắng.

    +0

    Chờ ... một \ n hoặc \ t có làm cho nó không trống không? – Jake

    +0

    Không có nút nào, nhưng vẫn là một dòng mới và một vài ký tự tab. – Jake

    +0

    Thực ra, vâng, tôi đã lấy \ n \ t và điều đó làm cho nó khớp nhau. Điều này vô cùng bất tiện vì nó làm cho nguồn HTML trông xấu xí, nhưng dù sao nó cũng hoạt động. Cảm ơn bạn – Jake

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