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. ruby 时间 今天 昨天

    today = Time.now.strftime('%Y-%m-%d') yesterday = (Time.now - 1.day).strftime('%Y-%m-%d')

  2. OpenStack学习(一)

    学习主要参考博文:https://www.cnblogs.com/CloudMan6/p/5233484.html 这个系列,,这里只是列出自己实际操作碰到的问题 一.安装系统:ubuntu 16.0 ...

  3. Java-JVM调优常见配置举例

    常见配置举例 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统 下,一般限制在1.5G~ ...

  4. 20145321 《Java程序设计》第10周学习总结

    20145321 <Java程序设计>第10周学习总结 教材学习内容总结  网络编程:网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输. IP地址:为了能够方便的识别网络上 ...

  5. 20135320赵瀚青LINUX第十八章读书笔记

    概述:调试工作艰难是内核级开发区别于用户级开发的一个显著特点 18.1准备开始 内核调试往往是一个令人挠头不已的漫长过程.幸运的是,在这些费劲的问题中也有不少比较简单而且容易消灭的小bug,运气好你可 ...

  6. 置顶,置低实现与window.scroll

    //置顶,置低实现 $('#updown .up').click(function(){$('html,body').animate({scrollTop: '0px'}, 300);}); $('# ...

  7. 解题报告:poj1061 青蛙的约会 - 扩展欧几里得算法

    青蛙的约会 writer:pprp Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 119716 Accepted: 25238 ...

  8. 自学Jav测试代码三 Math类 & Date & GregorianCalendar类

    2017-08-23 20:30:08 writer: pprp package test; import java.util.Date; import java.util.*; public cla ...

  9. java 连接 redis集群时报错:Could not get a resource from the pool

    由于弄这个的时候浪费了太多的时间,所以才记录下这个错,给大伙参考下 检查了一下,配置啥的都没问题的,但在redis集群机器上就可以,错误如下: Exception in thread "ma ...

  10. [小问题笔记(十)] SQL Server 里 float 转 varchar等字符类型 不使用科学计数法

    需要转换两次, 试了一下 float 转 bigint 转 varchar 溢出了... 后来用  float 转 decimal(38,0) 转 varchar 就成功了~ ,)) )) 另吐槽一下 ...