【发布时间】:2016-09-05 23:03:21
【问题描述】:
- 所以我想为 h3 标签添加边框。
- 此边框需要跨越边框最长部分的宽度 可见文本,没有其他内容。
- 目前,此边框似乎跨越了包装的整个宽度 div。
在我看来,将显示内联块添加到 h 标记并不能提供我想要的结果。
div {
max-width: 180px;
}
h3 {
display: inline-block;
border-bottom: 2px solid green;
}
<div>
<h3>Lorem Ipsum Dolar.....</h3>
</div>
编辑:似乎你们中的一些人不明白 max-width 是必需的。
这就是它的排列方式。
嗯...似乎用 CSS 不可能有一个完美的解决方案。但我使用了@Muhammad Usman 示例并添加了bottom: -120%;,并用边框属性替换了高度和背景。适用于 2 行文本。
div {
max-width: 200px;
border: dashed 1px grey;
}
h3 {
display: inline;
font-size: 1.6em;
position: relative;
}
h3::after {
border-bottom: 4px solid green;
bottom: -120%;
content: "";
left: 0;
position: absolute;
right: 0;
}
<div>
<h3>Lorem Ipsum Dolar</h3>
<p>Lorem ipsum dolar set ammet Lorem ipsum dolar set ammet Lorem ipsum dolar set ammet Lorem ipsum dolar set ammet Lorem ipsum dolar set ammet</p>
</div>
【问题讨论】:
-
所以,如果我理解,
max-width是必需的,并且您希望您的边框与标题中最长的行一样长。而且我猜这个长度是未知的,对吧? -
正是@JordiNebot。
-
这对于任何动态形式的 CSS 都可能是不可能的。这不是 line-box 模型的工作方式。 - 相关-stackoverflow.com/questions/34995740/…
-
正如我上面提到的......这是不可能的。 inline-block 标题并没有像你想象的那样收缩包装。链接的问答适用于此。