实现垂直居中 和 vertical-align

关于vertical:

1、定义和用法

vertical-align 属性设置该元素相对于所在行基线的垂直对齐方式。

只对行内元素(a,span,img等)的基线相对于该元素所在行的基线的垂直对齐(允许负值)。


2、实例列举

img标签的vertical-align: text-top


img标签的vertical-align: bottom

3、另一种用法:

具有valign属性的表格元素(td、th)中,vertical-align等效于valign,规定单元格中内容

垂直排列方式。


th,td{
width: 50px;
height: 50px;
vertical-align: bottom;
}




关于实现垂直居中的几种方式:

1、文本类居中

①单行文本居中:

如果一个容器中只有一行文字,对它实现居中相对比较简单,我们只需要设置它的实际高度height和

所在行的高度line-height相等即可。

如: 

div {   
        height:25px;   
        line-height:25px;   
        overflow:hidden;   
  }   

②未知行数的多行文本居中

如果一段内容,它的高度是可变的那么我们就可以使用设定Padding,使上下的padding值

相同即可。同样的,这也是一种“看起来”的垂直居中方式,它只不过是使文字把<div>完全

填充的一种访求而已。可以使用类似下面的代码: 

div {   
  padding:25px;   
}   

③利用 vertical +line-height配合

.父元素{

lineheight:500px

}

.子元素{

display:inline-block;

vertical-align:middle

}

即可实现子元素在父元素line-height范围内的居中


2、其他元素类的居中

①需要居中的元素与父级元素大小相差不多:

利用margin-top和margin-left实现居中


元素与父元素大小相差较大时:

利用position:50%居中,在利用 负的 margin调整元素自身大小带来的偏差


利用display修改框模型

利用修改display,模拟出 table中td、th等具有的valign垂直对齐属性,

父元素: display:table;

vertical-align:middle;

子元素: display:table-cell;

④利用 绝对定位+margin:auto

.父元素{

position:relative;
width:1000px;
height:1000px;

}

.子元素{

margin:auto;
position:absolute;
left:0;
right:0;
top:0;
bottom:0;

}

⑤利用弹性盒模型

div{
	<span style="white-space:pre">	</span>display: -webkit-box;  /* 老版本语法: Safari,  iOS, Android browser, older WebKit browsers.  */  
            display: -moz-box;    /* 老版本语法: Firefox (buggy) */  
            display: -ms-flexbox;  /* 混合版本语法: IE 10 */  
            display: -webkit-flex;  /* 新版本语法: Chrome 21+ */  
            display: flex;       /* 新版本语法: Opera 12.1, Firefox 22+ */  
            /*垂直居中*/  
            /*老版本语法*/  
            -webkit-box-align: center;  
            -moz-box-align: center;  
            /*混合版本语法*/  
            -ms-flex-align: center;  
            /*新版本语法*/  
            -webkit-align-items: center;  
            align-items: center;  
            /*水平居中*/  
            /*老版本语法*/  
            -webkit-box-pack: center;  
            -moz-box-pack: center;  
            /*混合版本语法*/  
            -ms-flex-pack: center;  
            /*新版本语法*/  
            -webkit-justify-content: center;  
            justify-content: center;  
            margin: 0;  
            height: 700px;  
            width: 100% /* needed for Firefox */
			} 












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值