gpt4 book ai didi

css - 文本缩进一个包装的行内 block 跨度

转载 作者:行者123 更新时间:2023-11-28 17:09:40 29 4
gpt4 key购买 nike

我正在寻找纯 CSS 解决以下问题的方法。

考虑以下 HTML:

<p>
<span>Some text</span>
<span>Some text</span>
</p>

两者都是 <span>正在显示元素 inline-block .如何在第二个 <span> 的左侧缩进或添加填充后换行?


包装前应该是这样的:

before wrapping

包装后像这样:

after wrapping


正在分配 padding-lefttext-indent不起作用,因为每个 <span>本质上是在其第一行文本上并单独缩进。

请参阅以下代码段和此 jsfiddle 用于我的代码。

p {
/* Negative indent does not work since
it applies to all spans individually
text-indent: -5rem;
padding-left: 5rem;
*/
}
span {
color: white;
font-weight: bold;
font-size: 22px;
display: inline-block;
}
.span1 {
background-color: green;
}
.span2 {
background-color: blue;
/* Same problem as when applied to paragraph
text-indent: -5rem;
padding-left: 5rem
*/
/* Will be indented properly when wrapped, but
we are left with unwanted space when not wrapped
padding-left: 5rem;
*/
}
.span3 {
display: block;
padding-left: 5rem;
background-color: purple;
}
<p>
<span class="span1">Howdy,</span>
<span class="span2">please indent me when I wrap!</span>
<span class="span3">I should continue being indented.</span>
</p>

最佳答案

我能够想出一些接近的东西,但有两个可能的缺点。这种方法的一个问题是第一个跨度必须比缩进量宽,否则换行不能完全按预期工作。另一个是 background-color 没有延伸到缩进元素的左边:

诀窍是在第二个跨度上有一个margin-left,在第一个跨度上有一个偏移负的margin-right:

.span1 {
background-color: green;
margin-right: -5rem;
}
.span2 {
background-color: blue;
margin-left: 5rem;
}

http://jsfiddle.net/6ynjybdw/4

关于css - 文本缩进一个包装的行内 block 跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29517726/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com