CSS各种居中布局方法汇总
本篇文章讨论居中情况设定为总宽度不定,内容宽度不定的情况。(改变大小时,仍然居中)。
特别说明在元素设置position:absolute;来设置居中效果时,除去博客下介绍的css3方法外,还可以使用负的margin来居中,这样解决了兼容性的问题,只适用于宽高已知的情况(因为负的偏移量为元素宽高的一半)。宽高改变时,不再是居中效果。
在这些布局中的子元素,因为其属性设置,都默认为内容宽度。
本文所有居中的例子,只讨论css的实现,html代码统一如下
- <div class="parent">
- <div class="child">demo</div>
- </div>
1. 水平居中
1.1 inline-block配合text-align
- .parent{
- text-align: center;
- }
- .child{
- display: inline-block;
- }
优点兼容性非常好,只需要添加只需要在子元素的css中添加display:inline和zoom:1就可兼容到IE6、7;缺点内部文字也会水平居中,需消除影响。
1.2 table配合margin
- .child{
- display:table;
- margin: 0 auto;
- }
优点设置特别简单,只需对子元素进行设置,支持IE8+,需支持IE6,7时,可更换子元素为表格结构。
1.3 abasolute配合transform
- .parent{
- position:relative;
- }
- .child{
- position:absolute;
- left:50%;
- transform: translateX(-50%);
- }
优点居中元素不对其他元素产生影响。缺点CSS3新属性支持IE9+,低版本浏览器不支持。
2. 垂直居中
2.1 table-cell配合vertical-align
- .parent{
- display: table-cell;
- vertical-align:middle;
- }
优点设置简单,只需对父元素进行设置,兼容到IE8+,需兼容地版本浏览器时,可更换div为表格结构。
2.2 absolute配合tranform
- .parent{
- position:relative;
- }
- .child{
- position:absolute;
- : 50%;
- transform: translateY(-50%);
- }
优点居中元素不对其他元素产生影响。缺点CSS3新属性支持IE9+,低版本浏览器不支持。
3. 水平+垂直居中
3.1 inline-block配合text-align加上table-cell配合vertical-align
- .parent{
- display: table-cell;
- vertical-align:middle;
- text-align:center;
- }
- .child{
- display: inline-block;
- }
优点综合前两中方法,兼容性好!支持IE8+,低版本浏览器也好兼容。缺点设置较为复杂。
3.2 absolute配合transform
- .parent{
- position: relative;
- }
- .child{
- position: absolute;
- left: 50%;
- : 50%;
- transform: translate(-50%,-50%);
- }
优点居中元素不对其他元素产生影响。缺点CSS3新属性支持IE9+,低版本浏览器不支持。
4. 全能的flex
css3新增布局属性,布局简单,强大,性能略差,只支持IE10+,在移动端使用较多。
4.1 水平居中
- /当父元素设置display: flex;时,子元素为flex-item,默认为内容宽度。/
- .parent{
- display: flex;
- justify-content: center;
- }
- / 在设置子元素为margin: 0 auto;时,可删除父元素的justify-content: center;同样可以达到居中效果/
- / .child{
- margin: 0 auto;
- }/
4.2 垂直居中
- .parent{
- display: flex;
- align-items: center;
- }
4.3 水平垂直居中
- parent{
- display: flex;
- justify-content: center;
- align-items: center;
- }
- /如同flex布局的第一部分一样这里也可以对子元素进行狼蚁网站SEO优化的设置删除上面的除去display外的其他属性/
- / .child{
- margin:auto;
- } /
以上就是本文的全部内容,希望对大家的学习有所帮助。
长沙网站设计
- 如何自己建一个网站 自己想建个网站,怎么建
- 如何制作网站免费建站 创建网站免费注册
- html简单网页代码 html简单网页代码超链接
- dreamweaver网页制作 dreamweaver网页制作模板
- 上海网站建设 上海网站建设制作微信
- 如何制作网站和网页 如何制作一个网页
- html网页制作代码大全 端午节html网页制作代码大
- app开发公司 app开发公司前十名
- html网页制作 html网页制作文字居中
- app制作一个需要多少钱 请人制作一个app多少钱
- 成都网站制作 成都网站制作维护
- 百度建一个网站多少钱 百度做个公司网站要多少
- html+css网页制作成品 web网页制作成品css+javascrip
- html网页制作案例 html网页设计案例
- html+css网页制作成品 web网页制作成品css+javascrip
- 个人网站模板 个人网站模板HTML