2012-04-09 41 views
7

Trong trường hợp sau, làm cách nào để tạo văn bản như vậy mà văn bản được tạo bởi :after nằm ngoài hộp span? (Nó hiện đang render bên trong, tức là nó làm cho các yếu tố span rộng hơn)Cách hiển thị nội dung: sau khi nội dung bên ngoài

HTML

<span class="my">Boxtext</span> 

CSS

span.my { 
    padding:   4px 8px; 
    background-color: red; 
    display:   inline-block; 
    border-radius:  10px; 
    margin-left:  20px; 
    } 
span.my:after { 
    content:   " text that is supposed to come after the box"; 
    } 

Tôi đoán đây là hơi tương tự như liệt kê kiểu vị trí, nơi bạn có thể chọn bên trong hoặc bên ngoài ...

Trả lời

6

Tôi tin rằng nội dung CSS được coi là một phần của đối tượng mà nó được hiển thị. Bạn có thể đặt đối số rằng :after phải được đặt tên là :append.

Đối với trường hợp của bạn, bạn có thể thử đặt một yếu tố thêm bên span.my:

<span class="my"><span>Boxtext</span></span> 
span.my span { ... } 
span.my:after { ... } 

Hoặc styling nội dung cụ thể.

span.my:after { 
    content:   " text that is supposed to come after the box"; 
    background-color: white; 
    position:   absolute; 
    margin-left:  10px; 
} 
+0

Thx, nhưng giải pháp thứ hai sẽ có vẻ khó chịu do, như bạn đã đề cập, biên giới (-radius). Đối với các giải pháp đầu tiên, tôi đoán rằng sẽ làm việc, nhưng tôi đã tìm kiếm một giải pháp mà làm việc với html ban đầu của tôi. – Ben

+0

Sau khi nhìn vào câu trả lời này, tôi đã hack ví dụ này: http://jsfiddle.net/cawgZ/ –

+0

Sử dụng định vị tuyệt đối, bạn có thể làm cho giải pháp thứ hai trông đẹp hơn. http://jsbin.com/ibuqip – Joel

1

Chỉ cần sử dụng position: absolute trong css pseudo-yếu tố của ::after {}:

span.my:after { 
    content: " text that is supposed to come after the box"; 
    position: absolute; 
    left: 100%; 
}​ 

Hãy nhớ rằng, tất nhiên, để sử dụng position: relative; (hoặc bất kỳ giá trị position khác) trên span.my yếu tố phụ huynh.

JS Fiddle demo.

Cũng nên nhớ rằng khi ::after (và ::before) pseudo-yếu tố kế thừa từ khoảng mà nó 'gắn' rằng nó sẽ kế thừa width, do đó có thể cần phải được ghi đè một cách rõ ràng trong CSS cho điều đó/những yếu tố đó.

+0

Cùng một vấn đề với giải pháp khác: http://jsfiddle.net/PMFst/1/ – Ben

+0

,,, và vấn đề đó là ..? –

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