css - 当文本设置为空白时,如何保留文本贡献的高度

标签 css

考虑一个内联 block CSS 元素,它可以包含文本,并且有一些漂亮的填充。

根据内联 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>

关于css - 当文本设置为空白时,如何保留文本贡献的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57896415/

相关文章:

css - 视网膜移动网络应用程序

css - 查找 div 宽度

CSS3多重动画效果

html - 如何使表格中的列之间的距离相等

html - 如何在表中实现colspan

css - 如何在 ionic 中覆盖 app.scss 以外的 css 类?

javascript - 在 Node js中提交表单后无法加载CSS文件

javascript - 似乎无法使 jQuery onClick fadeOut 在我的页面上工作

javascript - jQuery addClass 基于滚动距离

css - 是否可以隐藏复选框的框?