CSS 水平居中
1.若元素内容为文字时,元素设置text-align:center (text-align属性指定元素文本的水平对齐方式。center:把文本排列到中间。)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<style>
p {
text-align:center;
background:red
}
</style>
</head>
<body>
<p>这里是文本内容</p>
</body>
</html>
2.父子元素宽度固定,父元素设置text-align:center ,子元素设置display:inline-block,并且子元素不能设置浮动,否则居中失效
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.outer{
width:200px;
height:150px;
text-align:center;
background:red
}
.inner {
width:150px;
height:40px;
background:green;
display:inline-block
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">这里是子元素</div>
</div>
</body>
</html>
3.子父元素宽度固定,子元素设置 margin:auto,并且子元素不能设置 浮动,否则居中失效
水平居中原理:子元素若不设置宽度,则宽度将会覆盖父元素,margin:auto平分两侧空间
<style>
.outer{
background:red;
width:150px;
height:150px;
}
.inner {
background:green;
width:120px;
height:120px;
margin:auto
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">这里是子元素</div>
</div>
</body>
4.子元素相对于父元素绝对定位,子元素上下左右全为 0,然后设置子元素 margin:auto
居中原理:margin:auto平分两侧空间
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.outer{
background:red;
width:200px;
height:200px;
position:relative;
}
.inner {
position:absolute;
background:green;
width:150px;
height:150px;
top:0;
right:0;
bottom:0;
left:0;
margin:auto;
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">这里是子元素</div>
</div>
</body>
</html>
5.子元素相对定位,子元素 top,left 值为 50%,transform:translate(-50%,-50%);
居中原理:top/left:50%即子元素的上/左外边距边界与其包含块(即父元素)上/左边界之间偏移50%(如果 "position" 属性的值为 "static",那么设置 "top/left" 属性不会产生任何效果。),此刻子元素左上角位于以父元素左上角为原点的中心位置,translate(-50%,-50%)让子元素向左上移动自身宽高的50%,此时子元素相对父元素水平垂直居中。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.outer{
background:red;
width:200px;
height:200px;
position:relative;
}
.inner {
position:absolute;
background:green;
width:100px;
height:100px;
top:50%;
left:50%;
transform:translate(-50%,-50%);
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">这里是子元素3</div>
</div>
</body>
</html>
6.父元素设置 display:table-cell vertical-align:middle,子元素设置 margin:auto
<style>
.outer{
background:red;
width:150px;
height:150px;
display:table-cell;
vertical-align:middle
}
.inner {
background:green;
width:120px;
height:120px;
margin:auto
}
</style>
</head>
<body>
<div class="outer">
<div class="inner">这里是子元素</div>
</div>
</body>
7.margin:0 auto;+text-align: center;(父元素需要设置宽、高)
Ps:margin:0 auto;上下外边距为0px,左右外边距由浏览器计算(左右一样宽)。text-align属性指定元素文本的水平对齐方式,center:把文本排列到中间。
CSDN-Ada助手: 推荐 Vue入门 技能树:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue
小王毕业啦: 博主的这篇关于“原生导航栏与自定义导航栏”的文章让我对这个主题有了全新的认识。通过细致入微的描述,博主展现出了深厚的专业功底,让我受益匪浅。期待博主未来能够继续分享更多高质量的文章,同时也希望能够得到博主的指导,一同进步成长。感谢博主的无私分享和支持!
我不知谁知火舞: function hello(){console.log(this.a);} var a="这篇文章太棒了"; hello();
CSDN-Ada助手: 不知道 Java 技能树是否可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java