计算 100% 应用于 div,而不是 h2
Calc 100% is applied to div, instead of h2
我正在尝试在 h2 下创建黄色阴影,如下所示:
然而,我得到的是:
我看到源代码使用 calc 100% 来获取 :after 元素的宽度。
ul li a h3:after {
width: calc(100% + 30px);
display: block;
content: '';
background: #fbf36d;
margin-top: -0.7rem;
margin-left: -10px;
height: 0.8rem;
position: absolute;
z-index: -1;
transition: all 0.3s ease-out;
}
下面是我的代码片段。
.thing h2 {
position: relative;
}
.thing h2:after {
content: "";
width: 100%;
background: #fbf36d;
margin-top:-0.7rem;
margin-left: 5px;
height: 0.8rem;
position: absolute;
z-index: -1;
transition: all 0.3s ease-out;
display: block;
}
<div class="thing">
<h2>Here is the title</h2>
<p>I just don't get it, why the 100% width is applied to the div, instead of h2. Amazing.</p>
</div>
据说我错过了什么。有什么想法吗?
您需要将 h2 作为内联块。
h2 通常与 div 相同 - 这意味着它是 100% 宽。
如果将其设为内嵌块,它只会占用所需的宽度。
.thing h2 {
position: relative;
display:inline-block;
}
.thing h2:after {
content: "";
width: 100%;
background: #fbf36d;
margin-top:-0.7rem;
margin-left: 5px;
height: 0.8rem;
position: absolute;
z-index: -1;
transition: all 0.3s ease-out;
display: block;
}
<div class="thing">
<h2>Here is the title</h2>
<p>I just don't get it, why the 100% width is applied to the div, instead of h2. Amazing.</p>
</div>
我认为您指的问题是 h2 当前显示为其容器的 100% 宽度(div)。尝试将 h2 设置为 display: inline-block;
。这应该可以解决您的问题。
我正在尝试在 h2 下创建黄色阴影,如下所示:
然而,我得到的是:
我看到源代码使用 calc 100% 来获取 :after 元素的宽度。
ul li a h3:after {
width: calc(100% + 30px);
display: block;
content: '';
background: #fbf36d;
margin-top: -0.7rem;
margin-left: -10px;
height: 0.8rem;
position: absolute;
z-index: -1;
transition: all 0.3s ease-out;
}
下面是我的代码片段。
.thing h2 {
position: relative;
}
.thing h2:after {
content: "";
width: 100%;
background: #fbf36d;
margin-top:-0.7rem;
margin-left: 5px;
height: 0.8rem;
position: absolute;
z-index: -1;
transition: all 0.3s ease-out;
display: block;
}
<div class="thing">
<h2>Here is the title</h2>
<p>I just don't get it, why the 100% width is applied to the div, instead of h2. Amazing.</p>
</div>
据说我错过了什么。有什么想法吗?
您需要将 h2 作为内联块。 h2 通常与 div 相同 - 这意味着它是 100% 宽。
如果将其设为内嵌块,它只会占用所需的宽度。
.thing h2 {
position: relative;
display:inline-block;
}
.thing h2:after {
content: "";
width: 100%;
background: #fbf36d;
margin-top:-0.7rem;
margin-left: 5px;
height: 0.8rem;
position: absolute;
z-index: -1;
transition: all 0.3s ease-out;
display: block;
}
<div class="thing">
<h2>Here is the title</h2>
<p>I just don't get it, why the 100% width is applied to the div, instead of h2. Amazing.</p>
</div>
我认为您指的问题是 h2 当前显示为其容器的 100% 宽度(div)。尝试将 h2 设置为 display: inline-block;
。这应该可以解决您的问题。