display:inline-block配合text-align:justify实现块级元素均匀布局
2017-08-30 17:09
961 查看
今天突然get到一个使用text-align:justify实现块级元素均匀布局。
代码如下:
通过给伪元素 :after 设置 inline-block 设置宽度 100% ,配合容器的 text-align: justify 就可以轻松实现多列均匀布局了。再多配合几句 hack 代码,可以实现兼容到 IE6+ ,最重要的是代码不长,很好理解。
那么为什么使用了 :after 伪元素之后就可以实现对齐了呢?
原因在于 justify 只有在存在第二行的情况下,第一行才两端对齐,所以在这里,我们需要制造一个假的第二行,而 :after 伪元素正好再适合不过。
代码如下:
<html> <head> <meta charset="utf-8"> <title>display:inline-block配合text-align:justify实现块级元素均匀布局</title> <style> *{margin:0;padding:0;} #subMenu{width:1200px;margin:0 auto;text-align:justify;font-size:0;} #subMenu:after {content: "";display: inline-block;position: relative;width: 100%;} #subMenu li{list-style-type:none;display:inline-block;width:200px;height:40px;line-height:40px;text-align:center;background:#ccc;} #subMenu li a{display:block;font-size:14px;} #subMenu li a:hover{background:#eee;color:red;} </style> </head> <body> <ul id="subMenu"> <li class="dd"> <a href="#">导航1</a> </li> <li class="dd"> <a href="#">导航2</a> </li> <li class="dd"> <a href="#">导航3</a> </li> <li class="dd"> <a href="#">导航4</a> </li> </ul> </body> </html>
通过给伪元素 :after 设置 inline-block 设置宽度 100% ,配合容器的 text-align: justify 就可以轻松实现多列均匀布局了。再多配合几句 hack 代码,可以实现兼容到 IE6+ ,最重要的是代码不长,很好理解。
那么为什么使用了 :after 伪元素之后就可以实现对齐了呢?
原因在于 justify 只有在存在第二行的情况下,第一行才两端对齐,所以在这里,我们需要制造一个假的第二行,而 :after 伪元素正好再适合不过。
相关文章推荐
- display:inline-block+text-align:justify实现列表元素的两端对齐
- display:inline-block/text-align:justify下列表的两端对齐布局
- display:inline-block/text-align:justify下列表的两端对齐布局
- display:inline-block/text-align:justify下列表的两端对齐布局
- display:inline-block/text-align:justify下列表的两端对齐布局
- 实现列表两端完全对其text-aligh:justify 和display:inline-block
- text-align:justify和display:inline-block
- display:inline与display:block——行内元素显示与块级元素显示
- IE下块元素实现 display:inline-block
- 2. 为input元素设置vertical-align:middle; 3. 为label元素设置vertical-align:middle;display:inline-block;
- CSS属性display:inline-block;实现列表布局
- ie7下面不支持块级元素使用display:inline-block的问题
- CSS - display:inline-block 相邻元素间有4px的空白间距
- 实现三个div同一行显示,IE6 and Ie7 :display:inline-block
- 【技术】去掉display:inline-block元素间的多余空白
- 关于display:inline-block布局导致错位问题分析
- 拜拜了,浮动布局-基于display:inline-block的列表布局
- 去掉display:inline-block元素间的多余空白
- IE6里面display:inlineblock使得块元素成行排列,没用
- 浮动布局-基于display:inline-block的列表布局