设置div居中的方法

3 篇文章 0 订阅
对于div居中,给出解决方案前,我们需要先说明几点:
  • 说到“居中”,那肯定涉及到两种元素,即:容器div待居中div
  • 待居中div,是行级元素,还是块级元素(默认类型)
  • 当待居中div 为 块级元素时,一般都会设置 widthheight

一、行级 div 居中

给 div 设置 display: inline-block, 则 块级div 就成了 行内div。

方法1 :text-align: center ( 水平居中 )
  • 设置元素:容器div
  • 居中方向:水平居中

为 “容器div”添加下列样式属性即可:

<style>
.container-div {
  text-align: center;
}
</style>

二、块级 div 居中

方法1 :margin: auto; ( 水平居中 )
  • 只需要对“待居中div”设置以上属性即可。
  • 当只需要设置“水平居中”时,使用此方法最简单、简洁的。
方法2 :flex布局 ( 水平垂直居中 )
  • 需要同时设置 “容器div” 和 “待居中div” 设置以上属性即可。
  • 当只需要设置“水平垂直居中”时,使用此方法比较简单、简洁的。

为 “容器div”添加下列样式属性即可:

<style>
.flex {
  display:flex;
  /* 主轴上 居中 */
  justily-content: center;
  /* 交叉轴上 居中 */
  align-items: center;
}
</style>
方法3 :flex布局 + margin ( 水平垂直居中 )
  • 设置元素: 容器div + 待居中div
  • 可居中方向:水平 + 垂直
样式代码:
<style>
/* 容器div 样式 */
.content-div { display:flex; }

/* 待居中div 样式,下面只取一个*/
/* 水平+垂直 */
.test-div { margin: auto; }

/* 水平 */
.test-div-sp { margin: 0 auto; }

/* 垂直 */
.test-div-cz { margin: auto 0; }
</style>
方法4 :绝对定位(position) + margin ( 水平垂直居中 )
  • 设置元素: 容器div + 待居中div
  • 可居中方向:水平 + 垂直
样式代码:
<style>
/* 容器div 样式 */
.content-div {
  position:relative;
}

/* 待居中div 样式*/
/* 水平 + 垂直 */
.test-div {
	position:absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
}

/* 水平 */
.test-div-sp {
	position:absolute;
	right: 0;
	left: 0;
	margin: 0 auto;
}

/* 垂直 */
.test-div-cz {
	position:absolute;
	top: 0;
	bottom: 0;
	margin: auto 0;
}
</style>
方法5 :绝对定位(position) + transform:translate(-x, -y)( 水平垂直居中 )
  • 设置元素: 容器div + 待居中div
  • 可居中方向:水平 + 垂直
样式代码:
<style>
/* 容器div 样式 */
.content-div {
  position:relative;
}

/* 待居中div 样式*/
/* 水平 + 垂直 */
.test-div {
  position:absolute;
  top: 50%;
  left: 50%;
  transform:translate(-50%, -50%)
}

/* 水平 */
.test-div-sp {
  position:relative;
  left: 50%;
  transform:translate(-50%)
}

/* 垂直 */
.test-div-cz {
  position:absolute;
  top: 50%;
  transform:translate(0, -50%)
}
</style>

【代码思路】
1、容器div设置定位为 relative;
2、待居中div 设置定位的 absolute; 同时设置其与父元素的上,左边距都为 50%,再通过 transform 又向上移动了子元素的 height / 2,向左移动了子元素的 width / 2

方法6 :绝对定位(position) + 负margin( 水平垂直居中 )
  • 设置元素: 容器div + 待居中div
  • 可居中方向:水平 + 垂直
  • 使用此方法,必须要知道 待居中div 的宽/高,如 width = 200px, height = 100px
样式代码:
<style>
/* 容器div 样式 */
.content-div {
  position:relative;
}

/* 待居中div 样式*/
/* 水平 + 垂直 */
.test-div {
  position:absolute;
  top: 50%;
  left: 50%;
  margin-top: -50px;
  margin-left: -100px;
}

/* 水平 */
.test-div-sp {
  position:relative;
  left: 50%;
  margin-left: -100px;
}

/* 垂直 */
.test-div-cz {
  position:absolute;
  top: 50%;
  margin-top: -50px;
}
</style>

【代码思路】
1、容器div设置定位为 relative;
2、待居中div 设置定位的 absolute; 同时设置其与父元素的上,左边距都为 50%,再通过 margin-top 的 负值 又向上移动了子元素的 height / 2,通过 margin-left 的 负值 向左移动了子元素的 width / 2

  • 10
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于HTML设置div居中方法有多种。其中一种方法是给需要居中div设置一个宽度,然后设置元素的上下外边距为相等,左右外边距为auto,即`margin: 0px auto`。这样可以实现div居中显示。另一种方法是使用一个居中显示的div元素包含需要居中div元素。这样可以通过设置包裹div元素的样式来实现居中显示。 例如,对于浮动的div元素,设置其左右外边距为关键字auto是无效的。此时,可以通过以下两种方法实现居中显示: 1. 精确计算浮动div元素的左外边距并进行设置,从而实现居中显示。 2. 使用一个居中显示的div元素包含浮动div元素,通过设置包裹div元素的样式来实现居中显示。 以下是三种设置div居中方法的示例代码: 方法一: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实验</title> <style> #k { background-color: coral; height: 300px; margin-top: 10px; } #kk { width: 400px; background-color: rgb(94, 55, 4); margin: 0px auto; } #left { width: 200px; height: 200px; background-color: rgb(20, 247, 96); float: left; } #right { width: 200px; height: 200px; background-color: rgb(3, 75, 27); float: left; } </style> </head> <body> <div id="k"> <p style="text-align: center;">浮动的居中:在div外嵌套一个居中div,然后再在居中div里添加两个浮动的div</p> <div id="kk"> <div id="left"></div> <div id="right"></div> </div> </div> </body> </html> ``` 方法二: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实验</title> </head> <body> <div style="background-color: brown;height: 200px;"> <div style="width: 400px;background-color: burlywood;margin: 0px auto;"> 给div设置一个宽度,然后设置元素的左右外边距为auto,比如,margin:0px auto。则可以实现div居中显示。 对于浮动元素,设置其左右外边距为关键字auto是无效的。此时,如果需要设置居中显示,可以: 1、 精确计算其左外边距并进行设置,实现居中显示; 2、 使用一个居中显示的div元素包含此浮动元素。 </div> </div> </body> </html> ``` 方法三: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实验</title> <style> #z { height: 200px; background-color: red; margin-top: 10px; display: flex; justify-content: center; } #zz { width: 200px; height: 200px; background-color: rgb(65, 169, 218); display: flex; justify-content: center; } #zzz { background-color: rgb(94, 55, 4); color: aliceblue; width: 100px; height: 200px; } </style> </head> <body> <div id="z"> <div id="zz"> <div id="zzz">写在父容器,作用在子容器里 display: flex; justify-content: center;</div> </div> </div> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值