前言

  元素居中是日常开发和学习中最常见的问题,同时也是面试中经常考察的知识点,本文来总结一下这方面的知识点。

正文

  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--元素居中常用方法总结的更多相关文章

  1. CSS元素居中的常用方法

    只有普通流和绝对定位的元素可以设置居中,浮动元素是不存在居中的. 1.块级元素居中 1) 普通流元素(position : static 或 position : relative) 水平居中:{ m ...

  2. Css元素居中设置

    你对DIV CSS居中的方法是否了解,这里和大家分享一下,用CSS让元素居中显示并不是件很简单的事情,让我们先来看一下CSS中常见的几种让元素水平居中显示的方法. DIV CSS居中 用CSS让元素居 ...

  3. css 元素居中

    css 4种常见实现元素居中的办法: 1.通过 margin 属性调整 : { position: absolute; top: 50%; left: 50%; margin-left: 盒子的一半: ...

  4. CSS元素居中汇总

    总结实现不同类型元素居中的几种方法: 一.把margin值设置为auto(实现水平居中) 可以实现元素水平居中对齐 原理:使  margin-left=margin-right  如果设置  marg ...

  5. css元素居中

    水平居中 若为行内元素,对其父元素用text-align:center即可: 若为块元素(无浮动),则一般有两种方法可实现对其的水平居中,一为margin:0 auto;二为通过css计算函数calc ...

  6. css 元素居中方法

    目前知道有两种方法 方法一:主要适用于元素未设定高度的情况下. 直接上代码 html: <div class="nav-content"> <ul ng-clic ...

  7. css 元素居中各种办法

    一:通过弹性布局<style> #container .box{ width: 80px; height: 80px; position: absolute; background:red ...

  8. css元素居中方法

    几种居中方式,分情况使用: 1.已知父盒子宽度,子盒子宽度: div{ transform: translate(-50%,-50%); //margin-left: - 自身宽度一半: positi ...

  9. (前端)面试300问之(2)CSS元素居中【水平、垂直、2者同时居中】

    一 仅水平居中 1 行内元素 1)给父元素添加 text-align:center 即可 <div class="parent"> <span class=&qu ...

  10. css元素居中的几种方式

    1.水平居中 <div style="width:200px;margin:0 auto;background-color: yellow;">水平居中</div ...

随机推荐

  1. State Space Model Content

    State Space Model 状态空间模型及其卡尔曼滤波技术 混合正态分布下的状态空间模型及其滤波

  2. 在Anaconda环境下安装Tensorflow

    安装Anaconda 下载Anaconda 个人版Individual Edition.如果下载速度慢,可以复制下载链接到迅雷或者在清华大学开源镜像站TUNA中找合适的版本. 注意在安装过程中的&qu ...

  3. 在CentOS 6中安装和配置OrientDB社区版

    OrientDB概述: OrientDB是一个开源NoSQL非关系型数据库管理系统. NoSQL数据库提供了一种用于存储和检索引用除表式数据之外的数据(例如文档数据或图形数据)的NO关系或非关系数据的 ...

  4. 反调试--CRC检测

    #include"CRC32.h" #include<Windows.h> #include<iostream> using namespace std; ...

  5. 分片利器 AutoTable:为用户带来「管家式」分片配置体验

    在<DistSQL:像数据库一样使用 Apache ShardingSphere>一文中,Committer 孟浩然为大家介绍了 DistSQL 的设计初衷和语法体系,并通过实战操作展示了 ...

  6. 解决VM 与 Device/Credential Guard 不兼容

    通过命令关闭Hyper-V(控制面板关闭Hyper-V起不到决定性作用,要彻底关闭Hyper-V) 以管理员身份运行Windows Powershell (管理员)(Windows键+X) 运行下面命 ...

  7. SQL Server链接服务器信息查询

    exec sp_helpserver --查询链接服务器select * from sys.servers --查询链接服务器链接地址

  8. Linux基本命令 和 Regex 正则表达式

    Linux基本命令 和 Regex 正则表达式 Regex 基本语法 常用匹配规则 [aeiouAEIOU] # 从中随机选择一个 [0-9]{4} # 从中选择4个 .* # 匹配任意字符 \w # ...

  9. C#开发BIMFACE系列53 WinForm程序中使用CefSharp加载模型图纸1 简单应用

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<C#开发BIMFACE系列52 CS客户端集成BIMFACE应用的技术方案>中介绍了多种集成BIM ...

  10. 对epoll机制的学习理解v1

    epoll机制 wrk用非阻塞多路复用IO技术创造出大量的连接,从而达到很好的压力测试效果.epoll就是实现IO多路复用的关键. 本节是对epoll的本质的学习总结,进一步的参考资料为: <深 ...