在W3CPlus看到的用CSS制作水平垂直居中,在測試其中的第六點時發現了一些小問題,對於這一點的解決方法如下,感興趣的朋友可以參考下
前些天在W3CPlus看到了一篇文章,提到用CSS制作水平垂直居中,在測試其中的第六點時發現了一些小問題:
添加了一個無意義的新標簽
復制代碼
代碼如下:
<div id="extra">
當設定內容寬度的時候,文本換行了
對於第一點,解決的辦法是使用 :before 偽元素 :
復制代碼
代碼如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>水平垂直居中</title>
<style>
.wrapper {
width: 200px;
height: 200px;
background: skyblue;
}
.wrapper:before {
content: '.';
display: inline-block;
vertical-align: middle;
height: 100%;
}
.content {
display: inline-block;
text-align: center;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="content">多行文字居中 多行文字居中 多行文字居中 </div>
</div>
</body>
</html>
附Demo
但是!大家也都注意到了:文本換行了
這便是inline-block產生的空隙在搗亂了
為了解決這個問題,可以試試這個hack:
復制代碼
代碼如下:
.wrapper {
font-size:0
}
.content {
font-size:16px
}
保存再看看:
搞定!
附完整源碼