元素水平垂直居中的方式

元素分为行内元素和块级元素,行内元素有1种方式设置元素垂直居中;块级元素有4种方式设置元素垂直居中。

Posted in HTML / CSS onMarch 31, 2021

行内元素

  1. 通过为父元素设置text-align、line-height属性实现元素垂直居中
.box{
	width:500px;
	height:100px;
	border:1px solid #333;
	line-height:100px;
	text-align:center;
}
<div class="box">
	<span>content</span>
</div>

块级元素

  1. 通过设置子元素的绝对定位和margin属性实现元素垂直居中(减去自身宽度高度的一半)
.box{
    width: 500px;
    height: 500px;
    border: 1px solid #333;
    position: relative;
}
.box div{
    width: 100px;
    height: 100px;
    border: 1px solid #333;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -50px;
    margin-top: -50px;
}
<div class="box">
	<div></div>
</div>
  1. 通过设置父元素flex弹性布局的方式实现元素垂直居中(项目在主轴上的对齐方式为居中,项目在交叉轴上对齐方式为居中)
.box{
    width: 500px;
    height: 500px;
    border: 1px solid #333;
    display: flex;
    justify-content: center;
    align-items: center;
}
.box div{
     width: 100px;
     height: 100px;
     border: 1px solid #333;
}
<div class="box">
        <div></div>
</div>
  1. 通过设置子元素的绝对定位和transform属性实现元素垂直居中(往x轴、y轴分别移动自身宽度和高度的50%)
.box{
    width: 500px;
    height: 500px;
    border: 1px solid #333;
    position: relative;
}
.box div{
    width: 100px;
    height: 100px;
    border: 1px solid #333;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}
<div class="box">
	<div></div>
</div>
  1. 通过设置子元素的绝对定位和margin属性实现元素垂直居中(不存在兼容性问题,自适应宽高)
    原理
    设置margin:auto分配左右的剩余空间,所以元素可以水平居中;设置绝对定位,此时margin-top、margin-bottom从默认为0变成auto,设置top、right、bottom、left为0将找到父元素的位置(给浏览器重新分配一个边界框),填充其父元素的所有可用空间,margin垂直方向有了可分配的空间,所以此时元素可以垂直居中。
.box{
    width: 500px;
    height: 500px;
    border: 1px solid #333;
    position: relative;
}
.box div{
     width: 100px;
     height: 100px;
     border: 1px solid #333;
     position: absolute;
     top: 0;
     right: 0;
     bottom: 0;
     left: 0;
     margin: auto;
}
<div class="box">
	<div></div>
</div>
HTML / CSS 相关文章推荐
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
Nov 18 HTML / CSS
图解CSS3制作圆环形进度条的实例教程
May 26 HTML / CSS
浅谈CSS3动画的回调处理
Jul 21 HTML / CSS
CSS3实现文本垂直排列的方法
Jul 10 HTML / CSS
HTML5边玩边学(3)像素和颜色
Sep 21 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
May 07 HTML / CSS
HTML5 Canvas实现烟花绽放特效
Mar 02 HTML / CSS
Canvas 文本填充线性渐变的使用详解
Jun 22 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
Sep 15 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
Feb 06 HTML / CSS
CSS3点击按钮圆形进度打钩效果的实现代码
Mar 30 HTML / CSS
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
简单实现一个手持弹幕功能+文字抖动特效
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
Mar 31 #HTML / CSS
Web前端:CSS最强总结 附详细代码
血轮眼轮回眼特效 html+css
css3 filter属性的使用简介
Mar 31 #HTML / CSS
使用canvas实现雪花飘动效果的示例代码
You might like
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php不用正则采集速度探究总结
2008/03/24 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
python爬虫基本知识
2018/03/05 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
Python之指数与E记法的区别详解
2019/11/21 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
后勤采购员岗位职责
2013/12/19 职场文书
项目考察欢迎辞
2014/01/17 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
带病坚持工作事迹
2014/05/03 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
负责培养人意见
2015/06/05 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
python异常中else的实例用法
2021/06/15 Python
JVM之方法返回地址详解
2022/02/28 Java/Android
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android