在以下情况中,如何使: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,你可以在里面或外面选择......
答案 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
值)。
还要记住,因为::after
(以及::before
)伪元素从它所附加的跨度继承,它将继承width
,因此可能需要在CSS中为那些/那些元素显式覆盖。