display:inline-block配合text-align:justify实现块级元素均匀布局

20 篇文章 0 订阅
15 篇文章 0 订阅

今天突然get到一个使用text-align:justify实现块级元素均匀布局。

这里写图片描述

代码如下:

<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 伪元素正好再适合不过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值