元素水平垂直居中的方式

元素分为行内元素和块级元素,行内元素有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 相关文章推荐
css3一款3D字体带阴影效果的实现步骤
Mar 20 HTML / CSS
基于DOM+CSS3实现OrgChart组织结构图插件
Mar 02 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
Mar 14 HTML / CSS
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
Nov 30 HTML / CSS
canvas实现有递增动画的环形进度条的实现方法
Jul 10 HTML / CSS
用HTML5实现手机摇一摇的功能的教程
Oct 30 HTML / CSS
html5需遵循的6个设计原则
Apr 27 HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
Jul 26 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
Apr 23 HTML / CSS
html5 制作地图当前定位箭头的方法示例
Jan 10 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
Aug 19 HTML / CSS
CSS实现鼠标悬浮动画特效
May 07 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
php数组一对一替换实现代码
2012/08/31 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Python分治法定义与应用实例详解
2017/07/28 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
python安装gdal的两种方法
2019/10/29 Python
Python箱型图处理离群点的例子
2019/12/09 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
大学生评语大全
2014/04/18 职场文书
中央空调节能方案
2014/06/15 职场文书
队名及霸气口号大全
2015/12/25 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis