css实现水平 垂直居中
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实现水平 垂直居中的更多相关文章
- CSS实现水平|垂直居中漫谈
利用CSS进行元素的水平居中,比较简单,手到擒来:行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.而撸起垂直居中, ...
- 纯CSS制作水平垂直居中“十字架”
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS制作水平垂直居中对齐
作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀 ...
- CSS实现水平垂直居中的1010种方式
转载自:CSS实现水平垂直居中的1010种方式 划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了 要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居 ...
- 你知道CSS实现水平垂直居中的第10种方式吗?
你知道CSS实现水平垂直居中的第10种方式吗? 仅居中元素定宽高适用: absolute + 负 margin absolute + margin auto absolute + calc 居中元素不 ...
- CSS制作水平垂直居中对齐 多种方式各有千秋
作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...
- css各种水平垂直居中
css各种水平垂直居中,网上查了一下,总结以下几种 line-height垂直居中 缺点,仅限于单行文字 .item{ text-align: center; height: 100px; line- ...
- CSS实现水平垂直居中的数种方法整合
CSS实现水平垂直居中可以说是前端老生常谈的问题了,一般面试官问的时候面试者都会回答出来,但是继续追问还有没有其他方法的时候有可能就说不出来了. 本着学习知识的目的,特在此纪录CSS实现水平垂直居中的 ...
- CSS如何水平垂直居中?
CSS如何水平垂直居中? 1.CSS如何实现水平居中? margin: 0 auto 2.CSS如何实现水平垂直居中? 首先设置一个div元素,设置背景颜色以便看出变化.代码如下: <!DOCT ...
随机推荐
- mycat 指定mycat节点
mycat 指定节点: /*!mycat:dataNode=order1*/select seq_nextval('APPOINTMENT_NO'); 指定节点创建存储过程或建表: /*!mycat: ...
- 清晰讲解LSB、MSB和大小端模式及网络字节序
时隔一个月又回到了博客园写文章,很开心O(∩_∩)O~~ 今天在做需求的涉及到一个固件版本的概念,其中固件组的人谈到了版本号从MSB到LSB排列,检索查阅后将所得整理如下. MSB.LSB? MSB( ...
- -webkit-box
父容器 display: flex; justify-content: center;/*主轴*/ align-items: center; /*交叉轴*/ display: -webkit-box; ...
- 写几个简单用artTemplate的例子
写几个简单的artTemplate的例子,很多框架都有自己的模板(template),没得时候,可以利用artTemplate.js完成 html文件是: <!DOCTYPE html> ...
- 简单介绍--TOSCA自动化测试工具
1.工具源自 TOSCA由公司Tricentis研发.这是一家来自奥地利的软件初创企业,专门帮助企业开发团队进行自动化软件测试.(百科) TOSCA的思想是,不用会编程的测试人员可以直接上手自动化. ...
- suse linux 常用命令
功能:rm 命令,删除一个目录中的一个或多个文件或目录(文件夹). 它也可以将某个目录及其下的所有文件及子目录均删除. 对于链接文件,只是删除了链接,原有文件均保持不变. 文件一旦被删除,它不能被恢复 ...
- 基于JWT的token身份认证方案
一.使用JSON Web Token的好处? 1.性能问题. JWT方式将用户状态分散到了客户端中,相比于session,可以明显减轻服务端的内存压力. Session方式存储用户id的最大弊病在于S ...
- GRUB2 分析 (三)
接上一篇 从地址0x8200开始的是lzma_decompress.img.这是由startup_raw.S编译生成的.这个文件稍微复杂点.首先一开始就是个跳转指令: ljmp $0, $ABS(LO ...
- CSS 图像透明/不透明
CSS 图像透明/不透明 使用CSS很容易创建透明的图像. 注意:CSS Opacity属性是W3C的CSS3建议的一部分. 一.示例一:创建一个透明图像 CSS3中属性的透明度是 opacity. ...
- /usr/bin/ld: crti.o: No such file: No such file or directory
Problem : You are running a 64-bit linux system and trying to compile a 32-bit application and you g ...