CSS几种常用水平垂直居中的方法
2017-07-16 13:44
721 查看
CSS几种常用居中的方法
示例代码前提:HTML部分代码如下<div class="wrap block"> <div class="block-center">块儿居中</div> </div> <div class="wrap inline"> <span class="inline-center">内联居中</span> </div>
一、绝对定位有关方法(水平垂直居中)
方法(一):拔河效应(*元素宽高需要设定).block{ position:relative; } .block-center{ position:absolute; margin:auto; /*这句要写,否则无效果*/ left:0; top:0; right:0; bottom:0; }
方法(二):利用margin-top和margin-left(*元素宽高需要设定)
.block-center{ position:absolute; top:50%; margin-top:-10px; left:50%; margin-left:-50px; }
方法(三):利用CSS3 translate特性(但元素宽高无需设定) ,道理与第二种方法相同,注意兼容性
.block-center{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
二、放置表格方法(水平垂直居中)
*在子元素没有设置宽高度和数量时使用注意:table-cell不感知margin,在父元素上设置table-row等属性,也会使其不感知height。
.block{ display:table; } .block-center{ text-align:center; vertical-align:middle; /*实现垂直居中*/ display:table-cell; }
三、内联元素居中
(一)垂直居中
方法①:父容器height与line-height相等
.inline{ text-align:center; height:80px; line-height:80px; }
方法②:给 inline 或 table-cell 元素设置vertical-align:center; (父元素要有line-heignt值)
<p style="line-height:200px"> <img src="smile.jpg" style="vertical-align:middle"/> </p>
(二)水平居中
给父容器设置 text-align:center;
注意: ① { margin: 0 auto; } 可以让有宽度属性的块级元素水平居中。
但它通常只对静态元素(无浮动、无定位)起作用。
②
当给元素设置了float属性或absolute属性后,元素已经自动变为块级元素了。
③
vertical-align的百分比值是按照line-height来计算的
四、基于Flexbox的解决方案(水平垂直居中)
① 块元素和浮动元素
.block{
display: flex;
min-height:50vh;
}
.block-center{
margin:auto;
}
② 行内元素(只需要给最外层父元素添加即可)
.inline{
display: flex;
min-height:50vh;
align-items: center;
justify-content: center;
}
更详细的方法教学
相关文章推荐
- CSS-几种未知长宽的垂直水平居中方法
- css 几种水平垂直居中的方法 及 弹性盒子
- css几种方法使元素水平垂直居中
- CSS元素水平居中常用的几种方法
- CSS水平垂直居中的几种方法
- CSS——几种让一个容器水平垂直居中的方法
- CSS水平垂直居中的几种方法
- css 水平居中垂直居中的几种方法
- CSS水平垂直居中的几种方法
- CSS水平垂直居中的几种方法2
- CSS水平垂直居中的几种方法
- 用css实现垂直水平居中的几种方法
- CSS水平垂直居中的几种方法
- CSS水平垂直居中的几种方法
- html中div如何水平和垂直居中的几种css方法代码
- css的几种垂直水平居中方法
- css实现水平、垂直居中的几种方法
- css垂直水平居中的几种常用方案
- css:盒子垂直水平居中的几种方法
- 使用纯CSS实现未知尺寸的图片(但高宽都小于500px)在500px的正方形容器中水平和垂直居中。你有几种方法?