css实现水平居中

    

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平居中</title>
<style>
.box1{
border: 1px solid #000;
text-align: center;
}
.box2{
display: inline-block;
background-color: green;
}
/*...............................*/
.box3{
border: 1px solid #000;
}
.box4{
display: table;
margin: 0 auto;
background-color: yellow;
}
.box5{
width: 100px;
margin: 0 auto;
text-align: center;
}
/*...............................*/
.box6{
display: flex;
justify-content: center;
border: 1px solid #000;
}
.box7{
background-color: blue;
} .box8{
display: flex;
border: 1px solid #000;
}
.box9{
margin: 0 auto;
background-color: pink;
}
/*..............................*/
.tip1{
position: relative;
height: 20px;
border: 1px solid #000;
}
.tip2{
position: absolute;
left: 50%;
/*margin-left: -50%;*/
transform: translateX(-50%);
background-color: gray;
}
</style>
</head>
<body>
<!-- 思路1:子元素变为行内块,给父级元素text-align:center; -->
<div class="box1">
<div class="box2">
水平居中
</div>
</div>
<!-- 思路2:给要居中的元素display:table;
然后给他一个margin: 0 auto;(如果这个元素有固定宽度的话,直接给margin: 0 auto;) -->
<div class="box3">
<div class="box4">
水平居中
</div>
<div class="box5">
水平居中
</div>
</div>
<!-- 思路3:使用弹性盒子模型flex实现水平居中【IE9不支持】 --> <!-- a.在伸缩容器上设置主轴对齐方式justify-content:center; -->
<div class="box6">
<div class="box7">
水平居中
</div>
</div>
<!-- b.在伸缩项目上设置margin:0 auto; -->
<div class="box8">
<div class="box9">
水平居中
</div>
</div>
<!-- 思路4:通过设置绝对定位偏移量和translateX(-50%)居中 -->
<div class="tip1">
<div class="tip2">水平居中</div>
</div>-->
</body>
</html>

  在chrome中显示:

  css实现垂直居中

  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>垂直居中</title>
<style>
.box1{
line-height: 30px;
height: 30px;
border: 1px solid #000;
}
/*..........................*/
.box2{
border: 1px solid #000;
display: table-cell;
height: 100px;
vertical-align: middle;
}
.box3{
background-color: red; }
.box4{
line-height: 100px;
font-size: 0;
border: 1px solid #000;
background-color: #ccc;
}
img{
vertical-align: middle;
width: 50px;/*给图片一个宽度,他高度也会按比例确定*/
}
/*.....................................*/
.box5{
position: relative;
border: 1px solid #000;
height: 100px;
}
.box6{
position: absolute;
top: 50%;
transform: translateY(-50%);
} .box7{
position: relative;
border: 1px solid #000;
height: 300px;
}
.box8{
position: absolute;
top: 0;
bottom: 0;
height: 100px;
margin: auto 0;
border: 1px solid #000;
}
/*...............................*/
.tip1{
display: flex;
align-items: center;
height: 100px;
border: 1px solid #000;
}
.tip3{
display: flex;
border: 1px solid #000;
height: 100px;
}
.tip4{
margin: auto 0;
}
</style>
</head>
<body>
<!-- 思路1:line-height实现单行文本垂直居中 -->
<div class="box1">
垂直居中
</div>
<!-- 思路2:设置vertical-align:middle实现垂直居中 -->
<!-- a.给父元素设置display:table-cell(单元格)再给父元素设置vertical-align:middle;使子元素实现垂直居中。【注意;一旦给父元素设置为table-cell,就不能给他浮动或绝对定位,因为浮动或绝对定位会使元素具有块级元素特性,从而丧失了table-cell元素具有的垂直对齐的功能。若需要浮动或绝对定位处理,则需要外面再套一层div】 -->
<div class="box2">
<div class="box3">
垂直居中
</div>
</div>
<!-- b.若子元素是图片,通过设置父元素的行高来代替高度,且设置父元素的font-size为0。   给子元素设置vertical-align:middle。他的解释是元素的中垂点与父元素的基线加1/2父元素中字母X的高度对齐。由于字符X在em框中并不是垂直居中的,且各个字体的字符X的高低位置不一致。 所以,当字体大小较大时,这种差异就更明显。当font-size为0时,相当于把字符X的字体大小设置为0,于是可以实现完全的垂直居中 -->
<div class="box4">
<img src="img/qiao.jpg" />
</div> <!-- 思路3:通过绝对定位实现垂直居中 -->
<!-- 【1】配合translate()位移函数
translate函数的百分比是相对于自身高度的,所以top:50%配合translateY(-50%)可实现居中效果
[注意]IE9-浏览器不支持
[注意]若子元素的高度已知,translate()函数也可替换为margin-top: 回退自身高度的50%; -->
<div class="box5">
<div class="box6">垂直居中</div>
</div>
<!-- 【2】若子元素定高,结合绝对定位的盒模型属性,实现居中效果 -->
<div class="box7">
<div class="box8">
垂直居中
</div>
</div>
<!-- 思路4:使用弹性盒模型flex实现垂直居中
[注意]IE9-浏览器不支持 -->
<!-- 【1】在伸缩容器上设置 display:flex;侧轴对齐方式align-items: center -->
<div class="tip1">
<div class="tip2">垂直居中</div>
</div>
<!-- 【2】在伸缩项目上设置margin: auto 0 -->
<div class="tip3">
<div class="tip4">垂直居中</div>
</div>
</body>
</html>

  在chrome中显示:

    css实现水平垂直居中

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水平垂直都居中</title>
<style>
.box1{
border: 1px solid #000;
line-height: 20px;
text-align: center;
width: 1000px;
}
/*.......................................*/
.box2{
border: 1px solid #000;
width: 200px;
height: 100px;
text-align: center;
display: table-cell;
vertical-align: middle;
}
.box3{
display: inline-block; } .box4{
border: 1px solid #000;
line-height: 100px;
font-size: 0;
text-align: center;
width: 300px;
background-color: gray;
}
img{
vertical-align: middle;
width: 50px;
}
/*.........................................*/
.box5{
border: 1px solid #000;
width: 300px;
height: 100px;
display: table-cell;
vertical-align: middle;
}
.box6{
display: table;
margin: 0 auto;
}
/*...........................................*/
.box7{
border: 1px solid #000;
width: 300px;
height: 100px;
position: relative;
}
.box8{
width: 100px;
height: 50px;
position: absolute;
margin: auto;
border: 1px solid #000;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
.tip1{
position: relative;
border: 1px solid #000;
height: 100px;
}
.tip2{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
} .tip3{
position: relative;
border: 1px solid #000;
height: 100px;
width: 300px;
}
.tip4{
position: absolute;
width: 100px;
height: 50px;
top: 50%;
left: 50%;
margin-top: -25px;
margin-left: -50px;
border: 1px solid #000;
}
/*/*........................................*/
.tip5{
display: flex;
border: 1px solid #000;
width: 300px;
height: 100px;
}
.tip6{
margin: auto;
}
.tip7{
border: 1px solid #000;
width: 300px;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
}
.tip8{
border: 1px solid #000;
}
</style>
</head>
<body>
<!-- 思路1:text-align:center和line-height实现单行文本垂直水平居中。 -->
<div class="box1">
垂直水平居中
</div> <!-- 思路2: text-align + vertical-align
【1】在父元素设置text-align和vertical-align,并将父元素设置为table-cell元素,子元素设置为inline-block元素 -->
<div class="box2">
<div class="box3">垂直水平居中</div>
</div>
<!-- 【2】若子元素是图像,可不使用table-cell,而是其父元素用行高替代高度,且字体大小设为0。子元素本身设置vertical-align:middle -->
<div class="box4">
<img src="img/qiao.jpg" />
</div> <!-- 思路3:margin+vertical-align
要想在父元素中设置vertical-align,须设置为table-cell元素;要想让margin:0 auto实现水平居中的块元素内容撑开宽度,须设置为table元素。而table元素是可以嵌套在tabel-cell元素里面的,就像一个单元格里可以嵌套一个表格 -->
<div class="box5">
<div class="box6">垂直水平居中</div>
</div> <!-- 思路4:使用absolute
【1】利用绝对定位元素的盒模型特性,在偏移属性为确定值的基础上,设置margin:auto -->
<div class="box7">
<div class="box8">垂直水平居中</div>
</div>
<!-- 【2】利用绝对定位元素的偏移属性和translate()函数的自身偏移达到水平垂直居中的效果
[注意]IE9-浏览器不支持 -->
<div class="tip1">
<div class="tip2">垂直水平居中</div>
</div>
<!-- 【3】在子元素宽高已知的情况下,可以配合margin负值达到水平垂直居中效果(最常用) -->
<div class="tip3">
<div class="tip4">垂直水平居中</div>
</div>
<!-- 思路5:使用flex -->
<!-- 1.在伸缩项目上使用margin:auto -->
<div class="tip5">
<div class="tip6">垂直水平居中</div>
</div>
<!-- 【2】在伸缩容器上使用主轴对齐justify-content和侧轴对齐align-items -->
<div class="tip7">
<div class="tip8">垂直水平居中</div>
</div>
</body>
</html>

    在chrome中显示:

  

css实现水平 垂直居中的更多相关文章

  1. CSS实现水平|垂直居中漫谈

    利用CSS进行元素的水平居中,比较简单,手到擒来:行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.而撸起垂直居中, ...

  2. 纯CSS制作水平垂直居中“十字架”

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. CSS制作水平垂直居中对齐

    作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀 ...

  4. CSS实现水平垂直居中的1010种方式

    转载自:CSS实现水平垂直居中的1010种方式 划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了 要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居 ...

  5. 你知道CSS实现水平垂直居中的第10种方式吗?

    你知道CSS实现水平垂直居中的第10种方式吗? 仅居中元素定宽高适用: absolute + 负 margin absolute + margin auto absolute + calc 居中元素不 ...

  6. CSS制作水平垂直居中对齐 多种方式各有千秋

    作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...

  7. css各种水平垂直居中

    css各种水平垂直居中,网上查了一下,总结以下几种 line-height垂直居中 缺点,仅限于单行文字 .item{ text-align: center; height: 100px; line- ...

  8. CSS实现水平垂直居中的数种方法整合

    CSS实现水平垂直居中可以说是前端老生常谈的问题了,一般面试官问的时候面试者都会回答出来,但是继续追问还有没有其他方法的时候有可能就说不出来了. 本着学习知识的目的,特在此纪录CSS实现水平垂直居中的 ...

  9. CSS如何水平垂直居中?

    CSS如何水平垂直居中? 1.CSS如何实现水平居中? margin: 0 auto 2.CSS如何实现水平垂直居中? 首先设置一个div元素,设置背景颜色以便看出变化.代码如下: <!DOCT ...

随机推荐

  1. IOS开发-数据库总结

    关于数据存储概念: 数据结构: 基本对象:NSDictionary.NSArray和NSSet这些对象. 复杂对象:关系模型.对象图和属性列表多种结构等. 存储方式: 内存:内存存储是临时的,运行时有 ...

  2. Hexo博客部署codingNet静态资源无法加载

    用Hexo搭建的个人博客,部署到github的pages的话,好像百度搜索不到.所以在国内的codingNet的pages服务也一起部署一下,这样方便国内国外搜索引擎收录进来.具体部署教程我是参考这里 ...

  3. python3_configparser模块详解

    主要介绍python3中的ConfigParser模块的使用,该模块主要被用来读写配置文件. 安装模块:pip3 install configparser root@ranxf:/usr/lib/py ...

  4. GZFramework错误(升级修改)日志

    sqlserver下事务中处理出现为初始化selectcommand的connection属性修改CommandDataBase中的PrepareCommand方法

  5. 在VS2015中用C++编写可被其它语言调用的动态库DLL

    转自:http://blog.csdn.net/songyi160/article/details/50754705 VS2015用C++创建动态库DLL步骤如下: (1)启动VS2015>文件 ...

  6. 20145324Java课程总结

    20145324课程总结 ●每周读书笔记链接总汇 [第一周](http://www.cnblogs.com/SJZGM10/p/5246770.html) 第二周(不小心删了) [第三周](http: ...

  7. 开发人员不可不看的 OBD通讯协议知识

    OBD-II Network Standards» J1850 VPW– Adopted by GM; also known as Class 2.– Adopted by Chrysler (kno ...

  8. Centos为mysql开启binlog

    1.查询mysql配置文件所在位置 2.编辑配置文件/etc/my.cnf 在文件尾部添加: log-bin=/var/lib/mysql/mysql-bin server-id=123454  (5 ...

  9. 设置CentOS7虚拟机使用静态IP上网

    一.在VMware里,依次点击”编辑“ - ”虚拟网络编辑器“,如下图,我选择的是NAT模式: 为了能够使用静态IP,这里不要勾选”使用本地DHCP服务将IP分配给虚拟机“这个选项.然后是配置子网ip ...

  10. 编程之美——求1~N的整数中1的个数

    为了依次求个位,十位,百位中1的个数,我们可以把这个数字分为三部分,高位数字,当前位数字,低位数字. 如果当前位为0,那么此位为1的数目与高位数字有关 如果当前位为1,那么此位为1的数目与高位和地位都 ...