css - 当文本设置为空白时,如何保留文本贡献的高度
问题描述
考虑一个 inline-block CSS 元素,它可以包含文本,并且有一些很好的填充。
根据 inline-block 中是否有任何文本,元素的高度会有所不同:
.text-holder {
display: inline-block;
color: #ffffff;
padding: 10px;
vertical-align: top;
}
.text-holder.black { background-color: #000000; }
.text-holder.grey { background-color: #606060; }
<div class='text-holder black'>I HAVE TEXT</div>
<div class='text-holder grey'></div>
如何确保这些元素的高度相同,无论元素内是否有任何文本,以及字体大小如何?
起初我考虑min-height
过,但我认为这不适用于可变字体大小。
解决方案
为空时使用零空格字符:
.text-holder {
display: inline-block;
color: #ffffff;
padding: 10px;
vertical-align: top;
}
.text-holder.black { background-color: #000000; }
.text-holder.grey { background-color: #606060; }
.text-holder:empty::before {
content:"\200B";
}
<div class='text-holder black'>I HAVE TEXT</div>
<div class='text-holder grey'></div>
您也可以为所有元素保留它,因为它的宽度为 0:
.text-holder {
display: inline-block;
color: #ffffff;
padding: 10px;
vertical-align: top;
}
.text-holder.black { background-color: #000000; }
.text-holder.grey { background-color: #606060; }
.text-holder::before {
content:"\200B";
}
<div class='text-holder black'>I HAVE TEXT</div>
<div class='text-holder grey'></div>
如果有前导空格,请注意:
.text-holder {
display: inline-block;
color: #ffffff;
padding: 10px;
vertical-align: top;
}
.text-holder.black { background-color: #000000; }
.text-holder.grey { background-color: #606060; }
.text-holder::before {
content:"\200B";
}
<div class='text-holder black'>I HAVE TEXT</div><br>
<div class='text-holder black'> I HAVE TEXT</div>
<div class='text-holder grey'></div>
推荐阅读
- reactjs - 如何在同一个 React 组件中使用函数?
- python - Docker 中的 Python Discord 机器人
- php - 上传到服务器后,图像路径从 vuejs 项目中的 localhost 调用
- c# - 如何使用 linq 执行此操作?
- python - 知道如何解决这个“值错误”.python 3.9.1
- docker - 如何在 Docker 中正确创建映像
- arrays - smartmatch 运算符未按预期工作
- python - 秒表应用程序延迟和递归
- amazon-eks - 使用 eksctl 创建 aws EKS Kubernetes 集群时出错
- java - Java 销毁对象(清除所有引用)