html5中文学习网

您的位置: 首页 > 网页制作 > css教程 » 正文

css实现文本和div居中对齐详细讲解示例_CSS教程_CSS_网页制作

[ ] 已经帮助:人解决问题
点评:这篇文章主要介绍了css实现文本和div居中对齐详细讲解示例,需要的朋友可以参考下

1. 文本居中eycHTML5中文学习网 - HTML5先行者学习网

首先编写一个简单的html代码,设置一个类名为parentDiv的div对象。html代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
<div class="parentDiv">eycHTML5中文学习网 - HTML5先行者学习网
这里随意填写~... eycHTML5中文学习网 - HTML5先行者学习网
</div>eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

.1 实现文字水平居中(使用text-align)eycHTML5中文学习网 - HTML5先行者学习网

对div.parentDiv设置text-align: center;来实现。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
width:200px;eycHTML5中文学习网 - HTML5先行者学习网
height:100px;eycHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #ececec;eycHTML5中文学习网 - HTML5先行者学习网
text-align:center; /*水平居中*/eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

有些时候,你会发现即使使用了text-align: center;属性,但是仍然没有起到居中的作用。原因就在于div标签本身没有定义自己居中的属性,而且这样做对布局是非常不科学的方法。正确的设置方法其实很简单就是给.parentDiv添加以下属性:margin-left: auto;和margin-right: auto;即可。具体可看2.1。eycHTML5中文学习网 - HTML5先行者学习网

注:在父级元素定义text-align: center;属性的意思就是在父级元素内的内容居中;对于IE浏览器这样设置就没问题了,但在Mozilla浏览器中却不行。解决办法就是:在子元素定义设定时,再加上margin-left: auto;及margin-right: auto;就没问题了。需要说明的是如果想用这个方法使整个页面要居中,建议不要套在一个div里,可以依次拆出多个div,只要在每个拆出的div里定义margin-left: auto;及margin-right: auto;就行。eycHTML5中文学习网 - HTML5先行者学习网

1.2 单行文本垂直居中(使用line-height)eycHTML5中文学习网 - HTML5先行者学习网

文字在层中垂直居中使用vertical-align属性是做不到的,所以这里有个比较巧的方法就是:设置height的高度与line-height的高度相同。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
width:200px;eycHTML5中文学习网 - HTML5先行者学习网
height:100px;eycHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #ececec;eycHTML5中文学习网 - HTML5先行者学习网
text-align:center; /* 水平居中 */eycHTML5中文学习网 - HTML5先行者学习网
line-height: 100px; /* line-height = height */eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

1.3 文本垂直居中(使用vertical-align)eycHTML5中文学习网 - HTML5先行者学习网

可以使用vertical-align实现垂直居中,不过vertical-align仅适用于内联元素和table-cell元素,因此之前需要转化。eycHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>.outerBox{eycHTML5中文学习网 - HTML5先行者学习网
width:200px;eycHTML5中文学习网 - HTML5先行者学习网
height:100px;eycHTML5中文学习网 - HTML5先行者学习网
border: 1px solid #ececec;eycHTML5中文学习网 - HTML5先行者学习网
text-align:center; /* 水平居中 */eycHTML5中文学习网 - HTML5先行者学习网
display:table-cell; /*转化成table-cell元素*/eycHTML5中文学习网 - HTML5先行者学习网
vertical-align:middle; /*垂直居中对齐,vertical-align适用于内联及table-cell元素*/ eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

1.4 图片垂直居中(使用background-position)eycHTML5中文学习网 - HTML5先行者学习网

 这里指的是背景方法,在div.parentDiv对象中使用background-position属性。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]eycHTML5中文学习网 - HTML5先行者学习网
parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
background: url(xxx.jpg) #ffffff no-repeat center;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

注:关键就在于最后的center,这个参数定义图片的位置。当然,background-position属性还可以写成“top left"或者"bottom right"等,也可以直接写数值。eycHTML5中文学习网 - HTML5先行者学习网

2. div居中eycHTML5中文学习网 - HTML5先行者学习网

首先编写一个简单的html代码,设置一个父div类名为parentDiv,再设置一个子div类名为childDiv。html代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
<div class="parentDiv">eycHTML5中文学习网 - HTML5先行者学习网
<div class="childDiv"></div>eycHTML5中文学习网 - HTML5先行者学习网
</div>eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

实现parentDiv和childDiv父子div的盒子宽高背景色和边框大小。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网
* {eycHTML5中文学习网 - HTML5先行者学习网
-webkit-box-sizing: border-box; /*Safari*/eycHTML5中文学习网 - HTML5先行者学习网
-moz-box-sizing: border-box; /*Firefox*/eycHTML5中文学习网 - HTML5先行者学习网
box-sizing: border-box;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网
.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
width:400px;eycHTML5中文学习网 - HTML5先行者学习网
height: 100px;eycHTML5中文学习网 - HTML5先行者学习网
background-color: #00ff00;eycHTML5中文学习网 - HTML5先行者学习网
margin: 20px;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网
.childDiv {eycHTML5中文学习网 - HTML5先行者学习网
width: 200px;eycHTML5中文学习网 - HTML5先行者学习网
height:50px;eycHTML5中文学习网 - HTML5先行者学习网
background-color: #ff0000;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.1 水平居中(使用margin:auto)eycHTML5中文学习网 - HTML5先行者学习网

当div.childDiv对象拥有固定宽度时,设置水平方向margin为auto,可以实现水平居中。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]eycHTML5中文学习网 - HTML5先行者学习网
/*margin:auto实现水平居中,需要居中的div必须拥有固定的宽度*/eycHTML5中文学习网 - HTML5先行者学习网
parentDiv .childDiv {eycHTML5中文学习网 - HTML5先行者学习网
margin: 0 auto;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.2 实现水平居中(使用text-align:center)eycHTML5中文学习网 - HTML5先行者学习网

如果给子盒子div.childDiv设置display: inline-block不影响整体布局时,可以将子盒子转化为inline-block,对父盒子设置text-align:center实现居中对齐。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>/*eycHTML5中文学习网 - HTML5先行者学习网
text-align: center;实现水平居中eycHTML5中文学习网 - HTML5先行者学习网
需要子盒子设置为display: inline-block;eycHTML5中文学习网 - HTML5先行者学习网
*/eycHTML5中文学习网 - HTML5先行者学习网
.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
text-align: center;eycHTML5中文学习网 - HTML5先行者学习网
}</p><p>.parentDiv childDiv {eycHTML5中文学习网 - HTML5先行者学习网
display: inline-block;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.3 table-cell元素居中eycHTML5中文学习网 - HTML5先行者学习网

将父盒子设置为table-cell元素,可以使用text-align: center;和vertical-align: middle;实现水平、垂直居中。比较好的解决方案是利用三层结构模拟父子结构。html代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
<div class="parentDiv tableCell">eycHTML5中文学习网 - HTML5先行者学习网
<div class="id1">eycHTML5中文学习网 - HTML5先行者学习网
<div class="childDiv">tableCell</div>eycHTML5中文学习网 - HTML5先行者学习网
</div>eycHTML5中文学习网 - HTML5先行者学习网
</div>eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>/*eycHTML5中文学习网 - HTML5先行者学习网
table-cell实现居中eycHTML5中文学习网 - HTML5先行者学习网
将父盒子设置为table-cell元素,设置eycHTML5中文学习网 - HTML5先行者学习网
text-align: center; vertical-align: middle;eycHTML5中文学习网 - HTML5先行者学习网
子盒子设置为inline-block元素eycHTML5中文学习网 - HTML5先行者学习网
*/eycHTML5中文学习网 - HTML5先行者学习网
.tableCell {eycHTML5中文学习网 - HTML5先行者学习网
display: table;eycHTML5中文学习网 - HTML5先行者学习网
}</p><p>.tableCell .id1 {eycHTML5中文学习网 - HTML5先行者学习网
display: table-cell;eycHTML5中文学习网 - HTML5先行者学习网
text-align: center;eycHTML5中文学习网 - HTML5先行者学习网
vertical-align: middle;eycHTML5中文学习网 - HTML5先行者学习网
}</p><p>.tableCell .childDiv {eycHTML5中文学习网 - HTML5先行者学习网
display: inline-block;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.4 绝对定位居中(利用margin实现偏移)eycHTML5中文学习网 - HTML5先行者学习网

将parentDiv对象设置为定位元素(利用position: relative;属性),将childDiv对象设置为绝对定位,left和top均为50%,这时子盒子的左上角居中对齐,利用margin实现偏移。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网


复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>/*绝对定位实现居中*/eycHTML5中文学习网 - HTML5先行者学习网
.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
position: relative;eycHTML5中文学习网 - HTML5先行者学习网
}</p><p>.parentDiv .childDiv {eycHTML5中文学习网 - HTML5先行者学习网
position: absolute;eycHTML5中文学习网 - HTML5先行者学习网
left:50%;eycHTML5中文学习网 - HTML5先行者学习网
top:50%;eycHTML5中文学习网 - HTML5先行者学习网
margin-left:-100px; /*利用margin实现偏移,设置为宽度和高度的一半的负值*/eycHTML5中文学习网 - HTML5先行者学习网
margin-top:-25px;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.5 绝对定位居中(利用transform实现偏移)eycHTML5中文学习网 - HTML5先行者学习网

绝对定位方式与2.4类似,只不过利用transform中的translate实现偏移。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>/*绝对定位实现居中,transform偏移*/eycHTML5中文学习网 - HTML5先行者学习网
.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
position: relative;eycHTML5中文学习网 - HTML5先行者学习网
}</p><p>.parentDiv .childDiv {eycHTML5中文学习网 - HTML5先行者学习网
position: absolute;eycHTML5中文学习网 - HTML5先行者学习网
left:50%;eycHTML5中文学习网 - HTML5先行者学习网
top:50%;eycHTML5中文学习网 - HTML5先行者学习网
-webkit-transform: translate(-50%, -50%);eycHTML5中文学习网 - HTML5先行者学习网
-moz-transform: translate(-50%, -50%);eycHTML5中文学习网 - HTML5先行者学习网
-ms-transform: translate(-50%, -50%);eycHTML5中文学习网 - HTML5先行者学习网
-o-transform:translate(-50%, -50%) ;eycHTML5中文学习网 - HTML5先行者学习网
transform:translate(-50%, -50%);eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.6 绝对定位居中(利用margin:auto实现偏移)eycHTML5中文学习网 - HTML5先行者学习网

同样对子盒子实现绝对定位,这里使用top、right、bottom、left均为0,margin为auto实现偏移。CSS代码如下:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>/*绝对定位实现居中,margin:auto实现偏移*/eycHTML5中文学习网 - HTML5先行者学习网
.parentDiv {eycHTML5中文学习网 - HTML5先行者学习网
position: relative;eycHTML5中文学习网 - HTML5先行者学习网
}</p><p>.parentDiv .childDiv {eycHTML5中文学习网 - HTML5先行者学习网
position: absolute;eycHTML5中文学习网 - HTML5先行者学习网
left:0; /*top、right、bottom、left均为0*/eycHTML5中文学习网 - HTML5先行者学习网
top:0;eycHTML5中文学习网 - HTML5先行者学习网
right: 0;eycHTML5中文学习网 - HTML5先行者学习网
bottom: 0;eycHTML5中文学习网 - HTML5先行者学习网
margin: auto;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

2.7 Flexbox居中eycHTML5中文学习网 - HTML5先行者学习网

使用弹性盒模型(flexbox)实现居中。CSS代码:eycHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
eycHTML5中文学习网 - HTML5先行者学习网
[css]</p><p>/*flexbox实现居中*/eycHTML5中文学习网 - HTML5先行者学习网
.flexBox {eycHTML5中文学习网 - HTML5先行者学习网
display: -webkit-box; /*Safari*/eycHTML5中文学习网 - HTML5先行者学习网
display: -moz-box; /*Firefox*/eycHTML5中文学习网 - HTML5先行者学习网
display: -ms-flexbox; /*IE*/eycHTML5中文学习网 - HTML5先行者学习网
display: -webkit-flex; /*Chrome*/eycHTML5中文学习网 - HTML5先行者学习网
display: flex; eycHTML5中文学习网 - HTML5先行者学习网
-webkit-box-align: center;eycHTML5中文学习网 - HTML5先行者学习网
-moz-box-align: center;eycHTML5中文学习网 - HTML5先行者学习网
-ms-flex-align: center;eycHTML5中文学习网 - HTML5先行者学习网
-webkit-align-items: center;eycHTML5中文学习网 - HTML5先行者学习网
align-items: center;eycHTML5中文学习网 - HTML5先行者学习网
-webkit-box-pack: center;eycHTML5中文学习网 - HTML5先行者学习网
-moz-box-pack: center;eycHTML5中文学习网 - HTML5先行者学习网
-ms-flex-pack: center;eycHTML5中文学习网 - HTML5先行者学习网
-webkit-justify-content: center;eycHTML5中文学习网 - HTML5先行者学习网
justify-content: center;eycHTML5中文学习网 - HTML5先行者学习网
}eycHTML5中文学习网 - HTML5先行者学习网
eycHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助