CSS常用布局之——水平垂直居中解决方案
来源:互联网 发布:淘宝店铺封店重开技巧 编辑:程序博客网 时间:2024/05/29 04:52
纵观css盒子(标准or非标准)常用的布局中,我大致分为2类,一种是居中,一种是等分。居中包含了水平居中,垂直居中,水平垂直居中;等分又包含了等分块布局,等分高布局。
水平居中
先看看水平居中的布局方案
1. margin + 定宽
<div class="parent"> <div class="child">Demo</div></div><style> .child { width: 100px; margin: 0 auto; }</style>
这种定宽居中比较常见的,就不多解释了
2. table + margin
<div class="parent"> <div class="child">Demo</div></div><style> .child { display: table; margin: 0 auto; }</style>
display: table
在表现上类似 block
元素,但是宽度为不定宽。
兼容性:IE8及以上
3. inline-block + text-align
<div class="parent"> <div class="child">Demo</div></div><style> .child { display: inline-block; } .parent { text-align: center; }</style>
不定款的另一种方式
兼容性:可以兼容 IE 6 和 IE 7
4. absolute + transform
<div class="parent"> <div class="child">Demo</div></div><style> .parent { position: relative; } .child { position: absolute; left: 50%; transform: translateX(-50%); }</style>
定宽的另一种方法,但transform
属于css3的标签(兼容性考虑)
5. absolute + margin-left
<div class="parent"> <div class="child">Demo</div></div><style> .parent { position: relative; } .child { position: absolute; left: 50%; width: 100px; margin-left: -50px; /* width/2 */ }</style>
定宽的另一种方法,相比第四种他的兼容性好
6. flex + justify-content
<div class="parent"> <div class="child">Demo</div></div><style> .parent { display: flex; justify-content: center; }</style>
flex布局,未来布局的趋势,目前只有兼容性比较差(移动端推荐使用)
垂直居中
1. table-cell + vertical-align
<div class="parent"> <div class="child">Demo</div></div><style> .parent { display: table-cell; vertical-align: middle; }</style>
兼容性好
2. absolute + transform
<div class="parent"> <div class="child">Demo</div></div><style> .parent { position: relative; } .child { position: absolute; top: 50%; transform: translateY(-50%); }</style>
绝对定位脱离文档流,不会对后续元素的布局造成影响
兼容性不是太好(by the way,这里所说的兼容性不太好都意味着对 IE 8 及其以下版本)
3. flex + align-items
<div class="parent"> <div class="child">Demo</div></div><style> .parent { display: flex; align-items: center; }</style>
同上2一样,兼容性稍差
水平垂直居中
1. absolute + transform
<div class="parent"> <div class="child">Demo</div></div><style> .parent { position: relative; } .child { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }</style>
不再赘述,兼容性稍差
2. inline-block + text-align + table-cell + vertical-align
<div class="parent"> <div class="child">Demo</div></div><style> .parent { text-align: center; display: table-cell; vertical-align: middle; } .child { display: inline-block; }</style>
兼容性好,需要兼容性较好的推荐使用
3. flex + justify-content + align-items
<div class="parent"> <div class="child">Demo</div></div><style> .parent { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /*垂直居中*/ }</style>
不再赘述,兼容性稍差
- CSS常用布局之——水平垂直居中解决方案
- CSS布局——DIV水平居中和垂直居中
- 解读CSS布局之-水平垂直居中
- CSS布局之水平垂直居中
- css布局之水平垂直居中
- 解读CSS布局之-水平垂直居中
- CSS布局之水平垂直居中
- 解读 CSS 布局之水平垂直居中
- CSS布局之-水平垂直居中
- 解读 CSS 布局之水平垂直居中
- 解读 CSS 布局之水平垂直居中
- CSS布局——水平垂直居中布局总结学习
- 元素布局——CSS水平垂直居中
- CSS水平垂直居中布局
- CSS水平垂直居中布局
- css水平垂直居中布局
- CSS布局div之水平居中与垂直居中
- CSS水平居中和垂直居中解决方案
- HDU2444 The Accomodation of Students(判断二分图+最大匹配)
- 差分信号的优劣势
- Netty入门--NIO
- 逻辑或操作符
- private static final long serialVersionUID = ??? 的作用
- CSS常用布局之——水平垂直居中解决方案
- Android 开发中scrollview嵌套webview滑动冲突的解决方案
- 3.1 Linux中的文件IO (3节)
- 逻辑非操作符
- SOAP、WSDL、Web Service详解
- web面试题
- Matlab中plot函数参数解析
- GTK的非实例化类型-interface
- linux 初级学习之文本处理工具2-6