我的段落的高度/行高为50px,text-align: center
是文本的中心。但是p:之前导致它的高度/行高增加,导致文本崩溃。我想要p和p:才能垂直居中。
<p>Hover This</p>
p {
background: red;
text-align: center;
height: 50px;
line-height: 50px;
font-size: 14px;
}
p:hover:before {
content: "icon";
display: inline-block;
margin-right: 10px;
font-size: 3em;
}
文字长度各不相同,所以我认为我不能只使用position: absolute
作为图标...
答案 0 :(得分:12)
发生这种情况的原因是,line-height
元素继承了:before
元素,这也是inline-block
元素。
您可以通过浮动:before
内容来解决此问题,从而将其从流中移除,使其不受line-height
的影响。
<强> HTML 强>
<div>
<p>Hover This</p>
</div>
<强> CSS 强>
div {
background: red;
height: 50px;
line-height: 50px;
font-size: 14px;
text-align:center;
}
div:hover p:before {
content: "icon icon icon icon";
margin-right: 10px;
font-size: 42px;
float:left;
}
p {
display:inline-block;
margin:0px;
}
答案 1 :(得分:5)
答案 2 :(得分:0)
只要您尚未在元素中使用它,对我有用的东西就是使用!important。
element {
line-height : 110%;
}
element::before {
content : "HI";
line-height : 40px !important;
}