参考文章1.CSS布局奇淫技巧之--各种居中 2.http://www.imooc.com/article/2235

1.行内元素水平居中text-align:center
对图片,按钮,文字等行内元素(display为inline或inline-block等)进行水平居中,可对元素或者父元素使用text-align:center

2.定宽块级元素水平居中margin: 0 auto;

 .container{
width:500px; /* 元素设置定宽*/
height: 200px;
margin:0 auto;/*margin-left和margin-right设置为auto*/
background-color: aquamarine;
}

3.使用表格垂直水平居中

如果你使用的是表格的话,那完全不用为各种居中问题而烦恼了,只要用到 td(也可能会用到 th)元素的 align="center" 以及 valign="middle" 这两个属性就可以完美的处理它里面内容的水平和垂直居中问题了,而且表格默认的就会对它里面的内容进行垂直居中。如果想在css中控制表格内容的居中,垂直居中可以使用 vertical-align:middle,至于水平居中,貌似css中是没有相对应的属性的,但是在IE6、7中我们可以使用text-align:center来对表格里的元素进行水平居中,IE8+以及谷歌、火狐等浏览器的text-align:center只对行内元素起作用,对块状元素无效,需要设置display。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格居中</title>
<style type="text/css" >
body{
padding:0;
margin:0;
} .parent{
vertical-align: middle;
text-align: center;
width: 200px;
height:200px;
margin:0 auto;
background-color: pink;
}
.child{
display: inline-block;
width: 100px;
height: 100px;
background-color: deeppink;
}
</style>
</head>
<body>
<table >
<tr>
<td class="parent">
<div class="child"></div>
</td>
</tr>
</table> </body>
</html>

4.使用display:table;margin:0 auto;水平居中

 .child{
display: table;
width: 100px;
height: 100px;
margin:0 auto;
background-color: deeppink;
}

5.使用display:table-cell垂直水平居中

对于那些不是表格的元素,我们可以通过display:table-cell 来把它模拟成一个表格单元格,这样就可以利用表格的居中特性。但是,这种方法只能在IE8+、谷歌、火狐等浏览器上使用,IE6、IE7都无效。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>div居中</title>
<style type="text/css" >
body{
padding:0;
margin:0;
} .parent{
display:table-cell;
vertical-align: middle;
text-align: center;
width: 200px;
height:200px;
margin:0 auto;
background-color: pink;
}
.child{
display: inline-block;
width: 100px;
height: 100px;
background-color: deeppink;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div> </body>
</html>

效果为

6.单行或多行文本的垂直居中

父元素高度确定的情况下,

单行文本设置父元素的height和line-height一致即可;

多行文本在使用vertical-align:middle的时候,由于对齐的基线是用行高的基线作为标记,故需要设置line-height或设置display:table-cell;

7.绝对定位垂直水平居中

此法只适用于那些我们已经知道它们的宽度或高度的元素。

绝对定位进行居中的原理是通过把这个绝对定位元素的left或top的属性设为50%,这个时候元素并不是居中的,而是比居中的位置向右或向左偏了这个元素宽度或高度的一半的距离,所以需要使用一个负的margin-left或margin-top的值来把它拉回到居中的位置,这个负的margin值就取元素宽度或高度的一半。

垂直水平居中

.parent{
position:relative;/*父元素相对定位*/
width: 500px;
height:300px;
background-color: pink;
}
.child{
position: absolute;
left:50%;
top:50%;
width: 300px;
height: 200px;
margin: -100px 0 0 -150px;/*margin-left为child宽度的一半,margin-top为child高度的一半*/
background-color: deeppink;
}

8.另一种绝对定位居中

此法同样只适用于那些我们已经知道它们的宽度或高度的元素,并且遗憾的是它只支持IE9+,谷歌,火狐等符合w3c标准的现代浏览器。

 .parent{
position:relative;/*父元素相对定位*/
width: 500px;
height:300px;
background-color: pink;
}
.child{
position: absolute;
width: 300px;/*宽高需要固定*/
height: 200px;
left:;
right:;/*left和right必须配对出现来控制水平方向,top、bottom同理*/
top:;
bottom:;
margin:auto;/*这句也是需要的,0 auto水平居中,auto 0 垂直居中*/
background-color: deeppink;
}

 9.flex布局垂直水平居中

flex布局语法和实例参考阮一峰的博文:Flex 布局教程:语法篇Flex 布局教程:实例篇

.parent{
display:flex;
justify-content:center;
align-items:center;
width: 500px;
height:300px;
background-color: pink;
}
.child{
width: 300px;
height: 200px;
background-color: deeppink;
}

CSS布局——居中的更多相关文章

  1. CSS布局---居中方法

    在web页面布局中居中是我们常遇到的情况,而居中分为水平居中与垂直居中 文本的居中 CSS中对文本的居中做的非常友好,我们是需要text-align, line-height 两个属性就可以控制文本的 ...

  2. CSS布局居中

    1.把margin设置为auto,此方法只能进行水平的居中,且对浮动元素或绝对定位元素无效.

  3. 【转】css布局居中和CSS内容居中区别和对应DIV CSS代码

    原文地址:http://www.divcss5.com/jiqiao/j771.shtml css布局居中和CSS内容居中区别和对应DIV CSS代码教程与图文代码案例篇 对于新手来说DIV CSS布 ...

  4. CSS 布局实例系列(一)总结CSS居中的多种方法

    使用 CSS 让页面元素居中可能是我们页面开发中最常见的拦路虎啦,接下来总结一下常见的几种居中方法吧. 1. 首先来聊聊水平居中: text-align 与 inline-block 的配合 就像这样 ...

  5. css布局之居中

    CSS布局之居中 本文主要是介绍水平居中,垂直居中,还有水平垂直居中的方法 水平居中 1.行内元素水平居中 使用text-align:center;就可以实现行内元素的水平居中,但是记得要在父元素中设 ...

  6. 主流 CSS 布局(水平居中、垂直居中、居中 )

    什么是布局 html 页面的整体结构或骨架 布局不是某个技术内容 而是一种设计思想 [ 布局方式 ] 水平居中布局 垂直居中布局 居中布局( 水平 + 垂直 ) 什么是水平居中布局 水平居中布局 元素 ...

  7. 界面设计技法之css布局

    css布局之于页面就如同ECMAScript之于JS一般,细想一番,html就如同语文,css就如同数学,js呢,就是物理,有些扯远,这里就先不展开了. 回到主题,从最开始的css到如今的sass(l ...

  8. CSS 布局

    近日开发中,总感觉页面布局方面力不从心.以前也曾学过这方面的内容,但是不够系统,因此我打算整理一下. 在web 页面中一般有 table 和 css+div 两种布局方式. 其中css+div 又分为 ...

  9. CSS布局(上)

    CSS布局(上) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !import ...

随机推荐

  1. 何为.Net Remoting【转】

    借助基维百科给它的定义如下: NET Remoting 是微软 .NET Framework 中的一种网络通讯技术,与 XML Web Service 不同的是,它可以使用 SOAP 以外的协定来通讯 ...

  2. Log4net对文件的支持

    RollingFileAppender循环记录日志(指定文件最大长度) <appender name="RollingFileAppender" type="log ...

  3. 【Android学习】四种布局方式

    一.LinearLayout 线性布局,即一行展开或者一列展开,也可以嵌套,需要注意的属性如下: android:orentation  //对齐方式 二.FrameLayout 帧布局,即一层层叠起 ...

  4. [原]运行编译好的Android模拟器

    Android源码编译好了之后,我们就可以运行它了. 1.配置环境变量: /data/data/Android$ export PATH=$PATH:$(pwd)/out/host/linux-x86 ...

  5. zk框架销毁Page上的Component

    销毁Page上的Component ZK的组件之间是树状结构的,每一组件都只有一个根. 从页面上销毁一个组件可以通过下面两种方式来实现: 1. 组件不是根组件时:Component.setParent ...

  6. VS-Visual Studio-IIS Express 支持局域网访问

    本文转自:http://www.itnose.net/detail/6132793.html 使用Visual Studio开发Web网页的时候有这样的情况:想要在调试模式下让局域网的其他设备进行访问 ...

  7. 写的一个Sass 和Compass的例子

    /*1.打开项目根目录下的 config.rb 文件 2.搜索 line_comments 关键词,默认应该是 # line_comments = false 3.去掉前面的 #,保存 config. ...

  8. 让服务器apache/iis/nginx支持.apk/ipa文件下载

    服务器iis支持.apk文件下载的设置 IIS服务器不能下载.apk文件的原因:iis的默认MIME类型中没有.apk文件,所以无法下载. IIS服务器不能下载.apk文件的解决办法:既然.apk无法 ...

  9. LeetCode——Find Median from Data Stream

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  10. 50 Android Hacks阅读笔记

    Hack 1.善用weightSum和layout_weight. 问题提出:尝试做一个button的宽度是父View的一半的效果. 关键词:weightSum = 1 , layout_weight ...