css--元素居中常用方法总结
前言
元素居中是日常开发和学习中最常见的问题,同时也是面试中经常考察的知识点,本文来总结一下这方面的知识点。
正文
1、水平居中
(1)子父元素宽度固定,子元素设置 margin:auto,并且子元素不能设置浮动,否则居中失效。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
background-color: skyblue;
}
.inner {
width: 200px;
height: 100px;
background-color: sandybrown;
margin: auto;
}
</style>

(2)子父元素宽度固定,父元素设置 text-align:center,子元素设置display:inline-block,并且子元素不能设置浮动,否则居中失效。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
background-color: skyblue;
text-align: center;
} .inner {
width: 200px;
height: 100px;
display: inline-block;
background-color: sandybrown;
}
</style>

2、水平垂直居中
(1)子父元素宽高度固定,子元素相对于父元素绝对定位(子绝父相),子元素 top,left 设置 50%,子元素 margin-top 和 margin-left 减去各自宽高的一半或者 transform :translate(-50%,-50%)。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
position: relative;
} .inner {
width: 200px;
height: 100px;
background-color: sandybrown;
position: absolute;
top: 50%;
left: 50%;
/* transform: translate(-50%, -50%); */
margin-top: -50px;
margin-left: -100px;
}
</style>

(2)子父元素宽高度固定,子元素相对于父元素绝对定位(子绝父相),使用calc达到上面效果。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
position: relative;
}
.inner {
width: 200px;
height: 100px;
background-color: sandybrown;
position: absolute;
top: calc(50% - 50px);
left: calc(50% - 100px); }
</style>

(3)子父元素宽高度固定,子元素相对于父元素绝对定位(子绝父相),子元素上下左右全为 0,然后设置子元素margin:auto。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
position: relative;
}
.inner {
width: 200px;
height: 100px;
background-color: sandybrown;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
}
</style>

(4)子元素相对定位,子元素 top,left 值为 50%,transform:translate(-50%,-50%)。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
}
.inner {
width: 200px;
height: 100px;
background-color: sandybrown;
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
(5)文本水平垂直居中 父元素设置text-algin:center使得子元素水平居中,子元素设置line-height为父元素高度,使得子元素垂直居中。
<div class="wrap">
<span class="inner">321311111111111111</span>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
text-align: center;
background-color: skyblue;
} .inner {
line-height: 200px;
background-color: sandybrown;
}
</style>

(6)利用line-height,vertical-align实现元素水平垂直居中。
<div class="wrap">
<div class="inner">321</div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
line-height: 200px;
text-align: center;
}
.inner {
width: 200px;
height: 100px;
background-color: sandybrown;
display: inline-block;/* 将子元素设置为行内块级元素 */
vertical-align: middle;/* 垂直居中 */
text-align: left;/* 默认继承了父元素的水平居中,这里需要修正修正文字 */
}
</style>

(7)父元素设置弹性盒子,display:flex; justfy-content:center ;align-item:center。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
display: flex;
justify-content: center;
align-items: center;
} .inner {
width: 200px;
height: 100px;
background-color: sandybrown;
}
</style>

(8)父元素设置 display:table-cell vertical-align:middle,子元素设置 margin:auto。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
display: table-cell;
vertical-align: middle
}
.inner {
width: 200px;
height: 100px;
background-color: sandybrown;
margin: auto;
}
</style>

(9)网格布局实现水平垂直居中display: grid;place-items: center。
<div class="wrap">
<div class="inner"></div>
</div>
<style>
.wrap {
width: 500px;
height: 200px;
background-color: skyblue;
display: grid;
place-items: center;
} .inner {
width: 200px;
height: 100px;
background-color: sandybrown;
}
</style>

写在最后
以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长之路会持续更新一些工作中常见的问题和技术点。

css--元素居中常用方法总结的更多相关文章
- CSS元素居中的常用方法
只有普通流和绝对定位的元素可以设置居中,浮动元素是不存在居中的. 1.块级元素居中 1) 普通流元素(position : static 或 position : relative) 水平居中:{ m ...
- Css元素居中设置
你对DIV CSS居中的方法是否了解,这里和大家分享一下,用CSS让元素居中显示并不是件很简单的事情,让我们先来看一下CSS中常见的几种让元素水平居中显示的方法. DIV CSS居中 用CSS让元素居 ...
- css 元素居中
css 4种常见实现元素居中的办法: 1.通过 margin 属性调整 : { position: absolute; top: 50%; left: 50%; margin-left: 盒子的一半: ...
- CSS元素居中汇总
总结实现不同类型元素居中的几种方法: 一.把margin值设置为auto(实现水平居中) 可以实现元素水平居中对齐 原理:使 margin-left=margin-right 如果设置 marg ...
- css元素居中
水平居中 若为行内元素,对其父元素用text-align:center即可: 若为块元素(无浮动),则一般有两种方法可实现对其的水平居中,一为margin:0 auto;二为通过css计算函数calc ...
- css 元素居中方法
目前知道有两种方法 方法一:主要适用于元素未设定高度的情况下. 直接上代码 html: <div class="nav-content"> <ul ng-clic ...
- css 元素居中各种办法
一:通过弹性布局<style> #container .box{ width: 80px; height: 80px; position: absolute; background:red ...
- css元素居中方法
几种居中方式,分情况使用: 1.已知父盒子宽度,子盒子宽度: div{ transform: translate(-50%,-50%); //margin-left: - 自身宽度一半: positi ...
- (前端)面试300问之(2)CSS元素居中【水平、垂直、2者同时居中】
一 仅水平居中 1 行内元素 1)给父元素添加 text-align:center 即可 <div class="parent"> <span class=&qu ...
- css元素居中的几种方式
1.水平居中 <div style="width:200px;margin:0 auto;background-color: yellow;">水平居中</div ...
随机推荐
- P4428-[BJOI2018]二进制【树状数组,set】
正题 题目链接:https://www.luogu.com.cn/problem/P4428 题目大意 长度为\(n\)的\(0/1\)串要求支持 修改一个位置 求区间\([l,r]\)有多少个子区间 ...
- 03-Jwt在.netcore中的实现
1)jwt的加密解密过程 jwt验证的核心就是加密解密的过程,掌握了这个过程,也就掌握了jwt的原理.jwt的三部分中,header和payload是明文的,能够直接读出来,签名Signature部分 ...
- SSM框架项目的mvc拦截器
为了防止用户在不登录的情况下通过并接请求直接访问系统,我们需要通过session和拦截器来防止这样的情况. 拦截器的配置: 为拦截器建立一个包:interceptor,并在包里建立 LoginInte ...
- 用 @Value("${xxxx}")注解从配置文件读取值的用法
1. 用法: 从配置properties文件中读取init.password 的值. @Value("${init.password}") private String init ...
- MIPS流水线技术
华中科技大学 - 计算机硬件系统设计 单周期指令运行动态 Instruction Fetch Instruction Decode Execution MEM Write Back 单周期时空图 设耗 ...
- python和shell 取日期为今天的行
按条件取行 todolist.txt是存储所有数据的地方,每次查看数据库显得麻烦. 在执行命令后,要在终端显示今日应作事项. 首先用linux 的shell脚本来实现该功能. grep指令可以在文件中 ...
- docker逃逸漏洞复现(CVE-2019-5736)
漏洞概述 2019年2月11日,runC的维护团队报告了一个新发现的漏洞,SUSE Linux GmbH高级软件工程师Aleksa Sarai公布了影响Docker, containerd, Podm ...
- Seata整合SpringBoot和Mybatis
Seata整合SpringBoot和Mybatis 一.背景 二.实现功能 三.每个服务使用到的技术 1.账户服务 2.订单服务 四.服务实现 1.账户服务实现 1.引入jar包 2.项目配置 3.建 ...
- stm32f103中断学习总结
一.NVIC 介绍 NVIC 英文全称是 Nested Vectored Interrupt Controller,中文意思就是嵌套向量中断控制器,它属于 M3 内核的一个外设,控制着芯片的中断相关功 ...
- c#复制数组的多种方法
方法一:使用for循环 int []pins = {9,3,7,2} int []copy = new int[pins.length]; for(int i =0;i!=copy.length;i+ ...
