背景和边框根据最长的行换行文本 - CSS

background and border wrap text according to longest line - CSS

我想用 4 行边框将段落和 UL 包起来,并给它黑色背景。

我希望边框和背景根据最长行的长度包裹所有文本,我可以一次一行完成,但这意味着行与行之间没有背景色,而我想要背景和边框将所有文本包裹在一起。

不知道该怎么做。

这是我的HTML代码

<p><span class="commentBorder">
    some text about the next lines:
</span></p>
<ul>
    <li><span class="typesBorder1">first line text.</span></li>
    <li><span class="typesBorder2">second line text.</span></li>
    <li><span class="typesBorder3">third line text.</span></li>
    <li><span class="typesBorder4">fourth line text.</span></li>
</ul>

这是我的 CSS 代码:

.commentBorder{
    background-color: rgba(0,0,0,0.5);
    border: 1px solid black;
}
.typesBorder1{
    background-color: rgba(0,0,0,0.5);
    border: 1px solid black;
}
.typesBorder2{
    background-color: rgba(0,0,0,0.5);
    border: 1px solid black;
}
.typesBorder3{
    background-color: rgba(0,0,0,0.5);
    border: 1px solid black;
}
.typesBorder4{
    background-color: rgba(0,0,0,0.5);
    border: 1px solid black;
}

ul {
 background-color: rgba(0,0,0,0.5);
 border: 1px solid black;
}

我觉得你想要整个ul的背景色,你可以去掉每个li的背景色

你的意思是这样的?:

.parent {
    width: fit-content;
    background-color: rgba(0,0,0,0.5);
    border: 1px solid black;
    margin: 0 auto;
}
<div class="parent">
<p><span class="commentBorder">
    some text about the next lines:
</span></p>
<ul>
    <li><span class="typesBorder1">first line text.</span></li>
    <li><span class="typesBorder2">second line text.</span></li>
    <li><span class="typesBorder3">third line text.</span></li>
    <li><span class="typesBorder4">fourth line text.</span></li>
</ul>
</div>

不幸的是,没有“干净”的方法来实现这一点,除非您添加一个包裹整体的父层。

请注意,我向其中添加了 width: fit-content,以便它适应最宽的元素。