我有两个div,其中包含相互堆叠的文字。底部文字为灰色,顶部文字为红色。我希望能够指定我想用CSS显示的顶部红色div部分的百分比。使用width: x%
时,显示的顶部div的百分比是相对于整行而不是内容(文本)。我想知道完成我想要的CSS修复。
<div class="text-container">
<span class="text-grey">
We love Stack Overflow
</span>
<span class="text-color">
We love Stack Overflow
</span>
</div>
.text-grey, .text-color{
position: absolute;
font-size: 18px;
font-family: arial;
font-weight: 800;
}
.text-grey{
color: grey;
}
.text-color{
color: red;
overflow-x: hidden;
width: 20%;
white-space:nowrap;
}
答案 0 :(得分:2)
一种方法是相对定位父.text-container
元素,然后将display
更改为inline-block
。在这样做时,元素的宽度将由其内容确定,在本例中为文本。因此,子span元素的宽度将遵循父级的最大宽度。
为了使其正常工作,span
元素中只应有一个绝对定位。这样做的原因是因为绝对定位的元素基本上从正常流中移除,因此如果两个元素都是绝对定位的,则父元素的宽度为0
。因此,需要正常定位其中一个元素,以便确定父元素的宽度。
.text-color {
position: absolute;
left: 0;
top: 0;
}
.text-container {
position: relative;
display: inline-block;
}
.text-container {
position: relative;
display: inline-block;
}
.text-grey, .text-color {
font-size: 18px;
font-family: arial;
font-weight: 800;
}
.text-grey {
color: grey;
}
.text-color {
position: absolute;
left: 0;
top: 0;
color: red;
overflow-x: hidden;
width: 50%;
white-space:nowrap;
}