一、元素水平居中
1、text-align
text-align:center;
行内元素(图片或文字)居中
在父元素上设置text-align: center
使文字/图片在整个页面上水平居中
.container{ text-align:center; }
如一小选项按钮居中,可以使用:
.container{ display:inline-block; text-align:center; }
2、margin
margin: 0 auto;
用于块级元素的居中
.container { width: 80%; /*块级元素充满页面 定宽必备 */ margin-left: auto; margin-right: auto; /*或者 margin:0 auto;*/}
如:
块级元素居中
代码如下:
<style> .wrap{ max-width:600px; background: #ccc; margin: 0 auto; } </style></head> <div class="wrap"> <h1>hello</h1> <p>world</p> </div>
image
二、元素垂直居中
1、居中 VS 不居中
注:高度由里面的内容撑开,一般不设置高度
代码如下:
<style>.ct{ padding: 40px 0; text-align: center; background: #eee; } </style><div class="ct"> <p>你好世界</p> <p>helloworld</p> </div>
image
2、vertical-align实现居中
vertical-align: middle;
让行内元素或表格元素相对于基线对齐并居中
案例:如图片进行水平、垂直居中
代码如下:图片在容器内水平、垂直居中
<style>.box{ width: 300px; height: 200px; border: 1px solid ; text-align: center; } /*注:子元素和父元素分别设置 vertical-align:middle; ,均无法实现垂直居中*/ /*使用一个伪元素,设置一个虚拟的基准线*/ .box:before{ content: ''; display: inline-block; height: 100%; vertical-align: middle; } .box img{ vertical-align: middle; background: blue; }</style> <div class="box"> <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://cdn.jirengu.com/public/logo-tiny.png" alt=""> </div>
image
3、table-cell 实现居中
display: table-cell;
水平垂直居中
代码如下:
<style>.box{ width: 300px; /*由于是行内元素,宽度必备*/ height: 200px; border: 1px solid ; display: table-cell; vertical-align: middle; text-align: center; }</style> <div class="box"> <img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://cdn.jirengu.com/public/logo-tiny.png" alt=""> </div>
4、绝对定位实现居中
案例:如弹出框 弹出框水平垂直居中
情况1:固定宽高块在浏览器窗口水平垂直居中,
代码如下:
<style>html,body { height: 100%; }.dialog { position: absolute; /*绝对定位*/ left: 50%; top: 50%; margin-left: -200px; margin-top: -150px; width: 400px; height: 300px; box-shadow: 0px 0px 3px #000; }.dialog .header{ padding: 10px; background: #000; color: #fff; }.dialog .content{ padding: 10px; }</style> <div class="dialog"> <div class="header">我是标题</div> <div class="content">我是内容</div> </div>
image
情况2: 去掉宽高的块在浏览器窗口水平垂直居中,
代码如下:
<style>html,body { height: 100%; }.dialog { position: absolute; left: 50%; top: 50%; /* margin-left: -200px; margin-top: -150px; */ /*CSS3属性 相对于自己的偏移*/ transform:translate(-50%,-50%); box-shadow: 0px 0px 3px #000; }.dialog .header{ padding: 10px; background: #000; color: #fff; }.dialog .content{ padding: 10px; }</style> <div class="dialog"> <div class="header">我是标题</div> <div class="content">我是内容</div> <div class="content">我是内容</div> <div class="content">我是内容</div> <div class="content">我是内容</div> </div>
image
作者:饥人谷_远方
链接:https://www.jianshu.com/p/fa56a15b3e17
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦