css 水平垂直居中 两端对齐

单行垂直居中

单行垂直居中可以直接用line-height=width来做

<div  style="width:100px;height:100px;line-height:100px;">
<span>hello world</span>
</div>

这样文本hello world便实现了垂直居中,如果想让整个div在父级元素中都居中,则在外面嵌套一层div,并且通过里面div的margin来实现

<div style="position:relative;width:400px;height:200px;">
<div class="element" style="width:50%;height:50%;line-height:100px;">
<span>hello world</span>
</div>
</div>

.element {
   position: absolute; left: 0; top: 0; right: 0; bottom: 0;
   margin: auto 0;
}


多行垂直居中

多行垂直居中的话用line-height就不行了。需要将div的display:table-cell,然后vertical-align:middle;

<div class="twoClass" >
你好时间你好时间你好时间你好时间
</div>

.twoClass{display:table-cell; width:200px; height:200px; vertical-align:middle;}

其实这种方法对于单行的垂直居中也是可行的。


水平居中

对于文本的水平居中,只要text-align:center;就可以了,如果将正个div居中,则需要将div的margin-left  margin-right设为auto

<div style="position:relative;width:200px;height:200px;">
<div class="element" style="width:50%;height:50%;text-align:center;line-height:100px;">
你好时间
</div>
</div>

.element {
   position: absolute; left: 0; top: 0; right: 0; bottom: 0;
   margin: auto auto;
}

这个demo实现了div和文本的水平垂直居中。


两端对齐

对于多行文本的两端对齐,只需要text-align:justify就可以了

<div style="position:relative;width:100px;height:400px;text-align:justify;">
hello world he hello world你好世界你好世界你好世界, he hello world he hello你好世界你好世界你好世界, world he hello world he hello world he 
</div>

值得注意的是这个多行文本的最后一行并没有两端对齐。

如果想对最后一行做操作,可以使用text-align-last: justify; 但是存在兼容性问题。


单行的两端对齐

<div style="width:400px;text-align-last:justify;">
我好帅
</div>

没想到一个text-align-last: justify;就实现了(chrome),但是在IE浏览器下并没有效果。。。


下面这个是从网上找的几个a标签两端对齐

.demo{
     text-align-last:justify;
     line-height:0;
     height:44px;


}
.demo a{
     width:20%;
     display:inline-block;
     height:44px;
     line-height:44px;
     text-align:center;


}

<p>模块内的元素之间为换行符</p>
<br />
<div class="demo">
   <a class="link" href="#none">10元</a>
   <a class="link" href="#none">20元</a>
   <a class="link" href="#none">30元</a>
   <a class="link" href="#none">50元</a>
</div>
<br />
<p>模块内的元素之间为空格符</p>
<br />
<div class="demo">
<a class="link" href="#none">10元</a> <a class="link" href="#none">20元</a> <a class="link" href="#none">30元</a> <a class="link" href="#none">50元</a>
</div>
<br />
<p>模块内的元素之间为无分隔符,justify不起作用</p>
<br />
<div class="demo"><a class="link" href="#none">选项1</a><a class="link" href="#none">选项2</a><a class="link" href="#none">选项3</a><a class="link" href="#none">选项4</a></div>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值