使用CSS 语法要设定一个div 水平置中,是很常见到的需求,最多人使用margin: 0 auto这个方法就可以达成。但是,如果要让一个div 同时间做到在网页上水平置中还要垂直置中,也就是CSS 上下左右置中这就有点麻烦了,不太容易喔!
利用table中内容在单元格中默认垂直居中的特性。
2.利用css3中的transform属性
3.利用margin属性
4.利用利用position属性把left,top,right,bottom四个的值设为0,再用margin:auto
最好把你的代码改写了一下,并实现居中效果
效果图
容器的居中显示在网页设计中是很常见的,居中显示可以获得视觉的焦点,是内容更加突出,下面就简单的说明一下如何在HTML中通过样式的控制来实现
01最常见的一种,代码示例如下图,首先,取big一半像素大小赋给small层,通过margin: 0 autotext-align: center来实现
02第二种方法,代码示例如下图,将big层的display设置为table-cell,然后small层的margin-left取(500-250)/2,也就是125即可
03第三种方法,代码示例如下图,将big层的position设置为absolute,然后small层的margin-left取(500-250)/2,也就是125即可
04第四种方法,通过display:flex实现,代码示例如下图,big层display:flexflex-direction:column而small层align-self:center
05第五种方法,在small层的宽度没有的时候,可以通过width:fit-content这个设置来完成,代码示例如下
06第六种方法,通过display:inline-block来实现,将这个设置赋给big层即可,代码示例如下图
07第七种方法,设置big层position:relative,相对情况下,使small层左浮动,代码示例如下
08第八种方法,transform属性,代码示例如下
09第九种方法,借助第三方样式,比如增加一个add节点,水平浮动向左,使small层随之浮动,代码示例如下
特别提示每种方法都适应不同的运行环境,实际操作时需要考虑不同浏览器的解析时的兼容性
这样:
body{margin:0padding:0width:100%
height:100%
}div{position:absolutetop:50%left:50%margin-top:-250px margin-left:-250px/*此时宽和高都要固定*/width:500pxheight:500px}body{
margin:0
padding:0
width:100%
height:100%
}
div{
position:absolute
top:50%
left:50%
margin-top:-250px
margin-left:-250px
/*此时宽和高都要固定*/
width:500px
height:500px
}
扩展资料:注意事项
一、用两个值就可以了
1、text-align:center
//这是让文字左右居中
2、line-height:100px
//这是让文字垂直居中
vertical-align:middle
//这个属性不能让文字垂直居中,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。
二、多行文本垂直居中分为两种情况,一个是父级元素高度不固定,随着内容变化;另一个是父级元素高度固定。
1、父级元素高度不固定
父级高度不固定的时,高度只能通过内部文本来撑开。可以通过设置内填充(padding)的值来使文本看起来垂直居中,只需设置padding-top和padding-bottom的值相等:
<!--html代码-->
<divid="div1">
这是多行文本垂直居中,
这是多行文本垂直居中,
这是多行文本垂直居中,
这是多行文本垂直居中。
</div>
/*css代码*/
#div1{
width:300px
margin:50pxauto
border:1pxsolidred
text-align:center/*设置文本水平居中*/
padding:50px20px
}
2、父级元素高度固定
只对拥有valign特性的元素才生效,结合display:table,可以使得div模拟table属性。因此可以设置父级div的display属性:display:table;然后再添加一个div包含文本内容,设置其display:table-cell和vertical-align:middle。