一般來說居中的話可分為水平居中與垂直居中,以下是我個人總結的幾種方式
1.水平居中:
- inline元素:text-algin:center實現
- block元素:margin:auto
- absolute元素:left:50%+margin-left:負該盒子寬度的一半(必須得知道該元素的寬度)
2.垂直居中
- inline元素:line-height=height實現
- absolute元素:left:50%+margin-top:負該盒子高度的一半(必須得知道該元素的高度)
- absolute元素:transform(-50%,-50%)
- absolute元素:left,right,top。bottom都等於0加上margin:auto
具體實現代碼如下:
<body> <div class="container container-1"> <span>一段文字</span> </div> <div class="container container-2"> <div class="item"> this is item </div> </div> <div class="container container-3"> <div class="item"> this is item </div> </div> <div class="container container-4"> <div class="item"> this is item </div> </div> </body> <style type="text/css"> .container { border: 1px solid #ccc; margin: 10px; padding: 10px; height: 200px; } .item { background-color: #ccc; } .container-1 { text-align: center; line-height: 200px; height: 200px; } .container-2 { position: relative; } .container-2 .item { width: 300px; height: 100px; position: absolute; left: 50%; margin-left: -150px; top: 50%; margin-top: -50px; } .container-3 { position: relative; } .container-3 .item { width: 200px; height: 80px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) } .container-4 { position: relative; } .container-4 .item { width: 100px; height: 50px; position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; } </style>