如何显示:after元素外部元素

时间:2012-04-09 17:50:39

标签: html css

在以下情况中,如何使:after生成的文本超出范围框? (它当前在内部呈现,即它使span元素更宽)

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";
    }

我猜这有点类似于list-style-position,你可以在里面或外面选择......

2 个答案:

答案 0 :(得分:8)

我相信CSS内容被认为是呈现它的对象的一部分。你可以提出:after应该被命名为:append的论点。

对于您的情况,您可以尝试在span.my

中添加一个额外的元素
<span class="my"><span>Boxtext</span></span>
span.my span { ... }
span.my:after { ... }

或专门为内容设计样式。

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

答案 1 :(得分:3)

只需在position: absolute伪元素的css中使用::after {}

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

当然,请记住在父position: relative;元素上使用position(或任何其他span.my值)。

JS Fiddle demo

还要记住,因为::after(以及::before)伪元素从它所附加的跨度继承,它将继承width,因此可能需要在CSS中为那些/那些元素显式覆盖。