是否可以使用 css 将可变宽度的伪元素内容添加到 div 的 /left/?
Is it possible to add variable width pseudo-element content to the /left/ of a div with css?
我正在使用伪元素为编号列表(由 div 构成)创建样式化数字。是否可以将数字放在 div 的左侧?
使用 position: absoulute; left: 1em
无效,因为它没有考虑数字的实际宽度。
简单示例
Fiddle : http://jsfiddle.net/63pc4y57/1/
HTML
<div>one</div>
<div>two</div>
<div>three</div>
CSS
body
{
counter-reset: divs;
}
div
{
background: grey;
color: black;
height: 5em;
line-height: 5em;
margin-left: 2em;
width: 5em;
counter-increment: divs;
position: relative;
}
div:before
{
background: lightgrey;
content: counter(divs);
left: -1em;
position: absolute;
width: 1em;
}
如果您可以使用 中的数字 div
,则删除 position: absolute
并在 div:before
上添加 display: inline-block
它们的宽度将被考虑在内
使用right: 100%
将伪元素的开头放在div
的左侧
.box {
border: 1px solid #c66;
background: #f99;
position: relative;
width: 100px;
height: 20px;
margin: 20px;
}
.box:before {
position: absolute;
right: 100%;
margin-right: 5px;
}
.box--one:before {
content: '1'
}
.box--two:before {
content: '2'
}
.box--ten:before {
content: '10'
}
<div class="box box--one">
</div>
<div class="box box--two">
</div>
<div class="box box--ten">
</div>
我正在使用伪元素为编号列表(由 div 构成)创建样式化数字。是否可以将数字放在 div 的左侧?
使用 position: absoulute; left: 1em
无效,因为它没有考虑数字的实际宽度。
简单示例
Fiddle : http://jsfiddle.net/63pc4y57/1/
HTML
<div>one</div>
<div>two</div>
<div>three</div>
CSS
body
{
counter-reset: divs;
}
div
{
background: grey;
color: black;
height: 5em;
line-height: 5em;
margin-left: 2em;
width: 5em;
counter-increment: divs;
position: relative;
}
div:before
{
background: lightgrey;
content: counter(divs);
left: -1em;
position: absolute;
width: 1em;
}
如果您可以使用 中的数字 div
,则删除 position: absolute
并在 div:before
上添加 display: inline-block
它们的宽度将被考虑在内
使用right: 100%
将伪元素的开头放在div
.box {
border: 1px solid #c66;
background: #f99;
position: relative;
width: 100px;
height: 20px;
margin: 20px;
}
.box:before {
position: absolute;
right: 100%;
margin-right: 5px;
}
.box--one:before {
content: '1'
}
.box--two:before {
content: '2'
}
.box--ten:before {
content: '10'
}
<div class="box box--one">
</div>
<div class="box box--two">
</div>
<div class="box box--ten">
</div>