CSS: перед псевдо-элементом line-height?
мой абзац имеет высоту / высоту строки 50px и text-align: center
, который центрирует текст. Но p: before вызывает увеличение высоты / высоты строки, заставляя текст ударяться вниз. Я хочу, чтобы 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
значок...
2 ответов
причина этого происходит, потому что 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;
}
это очень просто. Вы должны дать
vertical-align: top;
к элементу: before.
ваш обновленный jsFiddle: http://jsfiddle.net/Pz7vF/