关于css垂直水平居中的几种方式
css中元素的垂直水平居中是比较常见及较常使用的,在这里向大家介绍一下几种方式。
1.水平居中
margin: 0 auto;
效果图:
而文字的垂直水平居中也比较简单,加上line-height: 200px;与text-align: center;即可。
#test{
width: 200px;
height: 200px;
line-height: 200px;
background: red;
margin: 0 auto;
text-align: center;
}
效果图:
2.元素的垂直水平居中
相对于文字来讲,元素的垂直水平居中就没这么简单,因为line-height: 200px;与text-align: center;都是针对文本的属性,对于元素我们需要使用定位。
a.已知元素高宽的垂直水平居中
#wrap{
position: relative;
width: 400px;
height: 600px;
background: red;
margin: 0 auto;
} #inner{
position: absolute;
left: 50%;
top: 50%;
margin-left: -50px;
margin-top: -50px;
width: 100px;
height: 100px;
background: pink;
}
<div id="wrap">
<div id="inner">
test
</div>
</div>
效果图:
在这里需要注意margin-left与margin-top需要给定-50px即当前元素的一半而非-50%,因为%是相对于父元素的大小,所以这种需要已知元素的高宽。
而除了给margin负值外,还有一种方式:
#wrap{
position: relative;
width: 400px;
height: 600px;
background: red;
margin: 0 auto;
} #inner{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
width: 100px;
height: 100px;
background: pink;
}
效果图:
这里需要注意的是元素的高宽也需要定义,如果没有定义高宽元素会填充整个父元素。
而此种方式就要说到绝对定位盒子的特性:
1.高宽有内容撑开
2.水平方向上: left + right + width + padding + margin = 包含块padding区域的尺寸
3.垂直方向上: top + bottom + height + padding + margin = 包含块padding区域的尺寸
我们可以尝试代入参数:
水平:0 + 0 + 100 + 0 + auto = 400
margin:auto根据公式可得300px及左右各分得150px,
垂直:0 + 0 + 100 + 0 + auto = 600
margin:auto根据公式可得500px及左右各分得250px,
而前面提到的如果没有定义高宽则高宽默认值为auto,
水平:0 + 0 + auto + 0 + auto = 400
垂直:0 + 0 + auto + 0 + auto = 600
元素会填充整个父元素即包含块尺寸均分配给高宽,由此可知高宽优先级高于margin。
而如果不定义margin: auto;
水平:0 + 0 + 100 + 0 + 0 = 400
垂直:0 + 0 + 100 + 0 + 0 = 600
数据均定死则不会分配margin
b.未知元素高宽的垂直水平居中
#wrap{
position: relative;
width: 400px;
height: 600px;
background: red;
margin: 0 auto;
} #inner{
position: absolute;
left: 50%;
top: 50%;
transform: translate3d(-50%,-50%,0);
background: pink;
}
效果图:
对于translate3d(-50%,-50%,0)中的三个参数分别为x轴偏移自身一半、y轴偏移自身一半、z轴不动,但是在can i use中我们可以看到transform的兼容性并不是太好。
到此,css的垂直水平居中就介绍完了,当然,可能存在些许错误望大家海涵并在评论区多多指正交流,谢谢大家花费时间阅览!
关于css垂直水平居中的几种方式的更多相关文章
- 纯CSS完美实现垂直水平居中的6种方式
前言 由于HTML语言的定位问题,在网页中实现居中也不是如word中那么简单,尤其在内容样式多变,内容宽高不定的情况下,要实现合理的居中也是颇考验工程师经验的.网上讲居中的文章很多,但是都不太完整,所 ...
- css实现垂直水平居中的5种方法
css实现垂直水平居中的5种方法 给父元素设置table-cell,text-align,vertical-align #big{ width: 200px; height: 200px; borde ...
- CSS垂直水平居中方法总结
在布局的时候经常能用到居中,在此总结一下 html结构: <div class="wrap"> <div class="content"> ...
- CSS控制样式的三种方式优先级对比验证
入职已经一个月了,自此后,就好久没有写过博客了,在此先跟关注我的博友们说声抱歉.今天,在公司的一个培训作业的驱动以及伟哥那句“再不写博客就开除你”的监督下,我终于重拾旧爱,再次登录博客园,继续与大家分 ...
- 实现CSS等分布局的4种方式
× 目录 [1]float [2]inline-block [3]table[4]flex 前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式 思路一: flo ...
- CSS实现水平居中的4种思路
× 目录 [1]text-align [2]margin [3]absolute [4]flex 前面的话 水平居中是经常遇到的问题.看似方法较多,条条大路通罗马.但系统梳理下,其实都围绕着几个思路展 ...
- css清除浮动的两种方式(clearfix和clear)
最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都 ...
- 实现CSS等分布局的5种方式
前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的5种方式 float [思路一]float 缺点:结构和样式存在耦合性,IE7-浏览器下对宽度百分比取值存在四舍五入的 ...
- CSS实现水平居中的5种思路
前面的话 水平居中是经常遇到的问题.看似方法较多,条条大路通罗马.但系统梳理下,其实都围绕着几个思路展开.本文将介绍关于水平居中的5种思路 text-align [思路一]:在父元素中设置text-a ...
随机推荐
- 实战交付一套dubbo微服务到k8s集群(8)之configmap使用
使用ConfigMap管理应用配置 拆分环境 主机名 角色 IP地址 mfyxw10.mfyxw.com zk1.od.com(Test环境) 192.168.80.10 mfyxw20.mfyxw. ...
- kubernetes实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到k8s
首先下载 dubbo-monitor源码包7-200 dubbo-monitor是监控zookeeper状态的一个服务,另外还有dubbo-admin,效果一样,感兴趣的可以自己研究一下. # cd ...
- Maven与Nexus3.x环境构建详解
一.Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件. ...
- hdoj 5971
Wrestling Match Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- C语言经典面试题
[题目]零值比较--BOOL,int,float,指针变量与零值比较的if语句. (首先给个提示:题目中要求的是零值比较,而非与0进行比较,在C++里"零值"的范围可就大了,可以是 ...
- 2019牛客多校第三场F Planting Trees(单调队列)题解
题意: 求最大矩阵面积,要求矩阵内数字满足\(max - min < m\) 思路: 枚举上下长度,在枚举的时候可以求出每一列的最大最小值\(cmax,cmin\),这样问题就变成了求一行数,要 ...
- Pycharm+任务栏悬浮+docked mode
先点下所想改变模式的模块, 然后: Window -> Activate tool window -> docked mode.
- Dell Display Manager for Mac
Dell Display Manager for Mac DDM for macOS solution https://www.dell.com/community/Monitors/DDM-for- ...
- Web Vitals
Web Vitals https://www.youtube.com/watch?v=2k1QbgLAFdI&feature=youtu.be $ npm i -S web-vitals ht ...
- 1020 Tree Traversals——PAT甲级真题
1020 Tree Traversals Suppose that all the keys in a binary tree are distinct positive integers. Give ...