2015-04-11 15 views
11

Tôi đang cố gắng sử dụng phần tử giả sau để thêm một số hiệu ứng cho trang web.sau phần tử giả không xuất hiện trong mã

<div class="product-show style-show"> 
    <ul> 
    <li> 
     .... 
     <div class="..."> 
     <div class="readMore less">...</div> 
     <a href="3" class="readMoreLink" onclick="return false;">Read More</a> 
     </div> 
     .... 
    </li> 
    </ul> 
</div> 

Và stylesheets:

.product-show .readMore.less { 
    max-height: 200px; 
    height: 100%; 
    overflow: hidden; 
} 

.product-show .readMore.less:after { 
    background: rgba(255, 255, 255, 0); 
    display: block; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    width: 100%; 
    height: 30px; 
} 

tôi thấy phong cách cho .product-show .readMore.less đang được áp dụng, nhưng tôi không thấy a :: sau ký hiệu trong các khối HTML khi tôi đang kiểm tra trang web từ Chrome (phiên bản mới nhất)/MacOS. Tôi đọc rằng đôi khi có vấn đề với các trình duyệt cũ hơn, nhưng tôi cho rằng tôi sẽ có thể thấy ít nhất là :: sau ký hiệu phần tử giả nếu tôi định nghĩa kiểu dáng một cách chính xác. Tôi đang làm gì sai?

+1

Tôi đã gặp sự cố tương tự. Chỉ cần thêm 'nội dung:" ";' để hiển thị phần tử. – user3525867

+0

Lưu ý nhanh để tránh những người khác phạm phải sai lầm ngu ngốc mà tôi có: nếu phần tử bên ngoài có 'overflow' được đặt thành' hidden', phần tử giả ': after' sẽ không hiển thị ... – SRack

Trả lời

14

Đó là vì phần tử giả isn't generated if the content value is omitted (vì giá trị ban đầu/mặc định là none).

Chỉ định giá trị content để tạo phần tử giả. Giá trị '' là đủ.

.product-show .readMore.less:after { 
    content: ''; 
    background: rgba(255, 255, 255, 0); 
    display: block; 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    width: 100%; 
    height: 30px; 
} 
+1

Điều đó đã hiệu quả! Cảm ơn bạn. –

8

Theo MDN:

Thuộc tính CSS nội dung được sử dụng với :: trước và sau :: giả yếu tố để tạo ra nội dung trong một phần tử.

Điều này có nghĩa là nếu bạn không bao gồm các content bất động sản, các yếu tố :after hoặc :before sẽ không hiển thị hoàn toàn.

Thêm dòng này vào mã của bạn:

content: ""; // Leave this empty 

Và xem làm thế nào có ảnh hưởng đến kết quả.

Cũng giống như ghi chú, thông thường bạn sẽ thêm văn bản vào thuộc tính content khi yếu tố :before hoặc :after được sử dụng để hiển thị văn bản. Tuy nhiên, trong nhiều trường hợp, bạn sẽ thấy rằng bạn chỉ đơn giản là để trống nó.

+0

Điều đó đã hiệu quả! Cảm ơn bạn. –

+2

Bạn đã giải thích nó rất độc đáo, nhưng vì người kia trả lời trước đó, tôi sẽ đánh dấu giải pháp của anh ấy là chính xác. Cảm ơn mặc dù !! –

+0

@JiMun Không phải lo lắng! Miễn là vấn đề của bạn được khắc phục, tôi rất sẵn lòng trợ giúp. : D – think123

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