元素水平垂直居中的方式

元素分为行内元素和块级元素,行内元素有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中的选择符
Oct 17 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
Apr 26 HTML / CSS
CSS3自定义滚动条样式的示例代码
Aug 21 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
Feb 08 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
Jul 15 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
Mar 26 HTML / CSS
HTML5实现移动端弹幕动画效果
Aug 01 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
sass 常用备忘案例详解
Sep 15 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python学习入门细节知识点
2018/03/29 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
python读取Excel表格文件的方法
2019/09/02 Python
Python更新所有已安装包的操作
2020/02/13 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Python实现扫码工具的示例代码
2020/10/09 Python
python palywright库基本使用
2021/01/21 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
导游词之云南-元阳梯田
2019/10/08 职场文书