gpt4 book ai didi

html - 我可以更改 :after/before pseudo-elements? 中定义的内容字符串的高度吗

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:28 24 4
gpt4 key购买 nike

我正在使用 :after 伪元素来显示卡片标题的分隔符,如下所示。

.lock-flag {
font-size: 1em;
}

.lock-flag .lock-icon {
margin-right: 0.5em;
}

.lock-flag .lock-icon:after {
content: "-";
}

.lock-flag .lock-separator::after {
content: "|";
color: #666;
}
<div class="lock-flag">
<span class="lock-icon"></span>
<span class="lock-separator"></span>
</div>
<span class="title">Title</span>

问题是分隔符以正常大小正确显示,但是当屏幕调整大小时,分隔符大小保持不变,尽管容器大小(锁定分隔符)根据屏幕大小而变化,因为正文的字体大小正在通过@媒体。

请建议如何调整分隔符大小。这是像这样放置分隔符的正确方法吗?

编辑:根据建议的评论,将元素从 span 更改为 div 以进行 block 显示。问题还是一样。如下所示,预期是将分隔符的高度与锁定图标相匹配。分离器和容器的高度如图 2 和 3 所示。

With 1em size Actual size of the separator Actual size of the container

最佳答案

我的建议:在大小不同的元素上使用::pseudo。在此演示中,我选择改变影响其 ::after.media 的尺寸(在您的情况下将是锁定图标),但它可以切换为是右边文本的::before(定位为left: negative-value;)。
由于涉及绝对定位,您必须确保图标和文本之间有足够的空间来显示分隔符。

➡️ Codepen

.parent {
display: inline-flex; /* or flex */
justify-content: space-between;
align-items: center; /* vertical aligning */
height: 100%;
outline: 1px dotted #aaa;
}

.media {
position: relative;
display: block;
width: 2rem;
height: 2rem;
margin-right: 2rem;
background-color: #0888;
}

.media::after {
content: '';
position: absolute;
top: 0;
bottom: 0;
right: -1.2rem;
display: block;
width: 1px;
/* height: 100%; can replace t:0 b:0 */
border-left: 1px solid #444;
}

.tall {
width: 4rem;
height: 4rem;
}

.title {
margin: 0;
}

section {
margin: 1rem;
}

section:not(:first-child) {
margin-top: 1rem;
}
<section>
<div class="parent">
<span class="media"></span>
<p class="title">Heading</p>
</div>
</section>

<section>
<div class="parent">
<span class="media tall"></span>
<p class="title">Heading</p>
</div>
</section>

关于html - 我可以更改 :after/before pseudo-elements? 中定义的内容字符串的高度吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54880675/

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