Css 垂直居中多行文字和:在图像元素之前
我有一个元素,在::before中有一个文本和一个图像作为其图标。 文本可以有1或2行高。我希望图像和文本都垂直居中。我试过了Css 垂直居中多行文字和:在图像元素之前,css,icons,vertical-alignment,Css,Icons,Vertical Alignment,我有一个元素,在::before中有一个文本和一个图像作为其图标。 文本可以有1或2行高。我希望图像和文本都垂直居中。我试过了 display: table-cell; vertical-align: middle; text-align: center; 此处:。 但我不工作。如果没有::before元素,文本将居中,但图像会将其打断。 我该怎么办?您可以不使用伪元素,只需将背景位置设置为,并将左侧填充设置为。textcenter JSFiddle- CSS: .textcenter {
display: table-cell;
vertical-align: middle;
text-align: center;
此处:。
但我不工作。如果没有::before元素,文本将居中,但图像会将其打断。
我该怎么办?您可以不使用伪元素,只需将
背景位置设置为,并将左侧填充设置为。textcenter
JSFiddle-
CSS:
.textcenter {
display: table-cell;
vertical-align: middle;
text-align: center;
/*background: #cc1;*/
background-image: url('http://dummyimage.com/30');
background-repeat: no-repeat;
background-position: center left;
padding-left: 40px;
}
你可以不用伪元素,试试那个演示-@Mary Melody。看起来不错。但是,如果图标大小不同,以便将该值用于左边的填充,该怎么办?我可以使用此解决方案(我可以使用sass获取填充的图像大小),但当我使用精灵作为图像源时,它会失败。我怎样才能让精灵在这里工作?@user2520818抱歉,我对精灵了解不多,但这可能会有所帮助,或者你应该在上问一个新问题