(CSS+盒模型+dl列表)实现 毒霸首页中模块部分的布局

具体要实现毒霸界面的如下截图部分:


这里写图片描述


使用 dl、dt、 dd标签来实现上面的图片功能,我使用的工具是webstorm,这个工具非常强大,无论从代码提示、界面还是从快捷键上,这个web前端的软件可以说表现的非常强大


上面的每一行就是一个dl标签


拿第一行举例,如果我把第一行中的购物用dt表示, 京东商城用一个dd表示,唯品会也用一个dd表示,除了更多标签使用右浮动意外,其它的标签使用左浮动,那么做出的效果如下:


这里写图片描述


实现上图局部的代码如下:

<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .kuang {
            width: 890px;
            height: 280px;
            background-color: gray;
        }

        dl {
            margin: 0px;
            margin-top: 1px;
            height: 30px;
            background-color: antiquewhite;
        }

        dl dt, dl dd {
            padding: 0px;
            margin: 0px;
            margin-left: 15px;
            padding-top: 5px;
            width: 70px;
            float: left;
            line-height: 20px;

        }

        .more {
            width: 70px;
            float: right;
            color: forestgreen;
        }

        dl dt {
            color: blue;
        }
    </style>
</head>
<body>
<div class="kuang">
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd>国美手机</dd>
        <dd>聚美优品</dd>
        <dd>品牌精选</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>唯品会</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>

        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>亚马逊</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd class="more">更多>></dd>
    </dl>
    <dl>
        <dt>购物</dt>
        <dd>京东商城</dd>
        <dd>唯品会</dd>
        <dd>苏宁易购</dd>
        <dd>秋装特卖</dd>
        <dd>亚马逊</dd>
        <dd>徐海涛</dd>
        <dd>xuhaitao</dd>
        <dd>hunk xu</dd>
        <dd class="more">更多>></dd>
    </dl>
</div>


细心的会发现我做的效果和毒霸中原作的效果还是有一点差距,就是居中问题,毒霸的效果好像是居中对齐,而我做的效果是左对齐,然后为了达到居中对齐,考虑使用text-align:center,但是发现这个不管用,因为这个属性只对块元素内部的行内元素起作用,比如如果要使dd标签中的文字居中对齐,那么就可以使用text-align:center,而现在是想使很多dd标签居中,那么text-align就不管用


为了解决上面的问题,修改一下html内容,一行只使用一个dd标签,修改后效果如下:
这里写图片描述


上图实现思路:
dt左浮动,dd右浮动
dl,dd,dt{margin:1px auto;padding:0 auto} 必须加上这行,否则 dt 和dd 在浮动时可能会达不到预期
line-height 设置垂直居中
text-algin:center 设置块元素中的内联元素居中对齐
更多 这个超链接也要设置成右浮动


实现代码如下:

<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .kuang {
            width: 890px;
            height: 280px;
            background-color: gray;
        }

        dl {
            width: 890px;
            height: 32px;
            background-color: antiquewhite;
            margin: 1px;
            margin-left: 1px;
            padding: 0px;

        }

        dt {
            width: 50px;
            float: left;
            background-color: lightskyblue;
        }

        dd {
            float: right;
            width: 838px;
            text-align: center;

           background-color: lightskyblue;
        }
        dl,dd,dt{margin:1px auto;padding:0 auto}
        dt a {
            margin-left: 8px;
            color: blue;
            line-height: 30px;
        }

        dd a {
            width: 80px;
            line-height: 30px;
            margin-left: 12px;
        }

        .more {
            width: 85px;
            float: right;
            color: brown;
        }

    </style>
</head>
<body>
<div class="kuang">
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>苏宁易购</a><a>秋装特卖</a><a>亚马逊</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>苏宁易购</a><a>秋装特卖</a><a>亚马逊</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>苏宁易购</a><a>秋装特卖</a><a>亚马逊</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>苏宁易购</a><a>秋装特卖</a><a>亚马逊</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
    <dl>
        <dt><a>购物</a></dt>
        <dd><a>京东商城</a> <a>唯品会</a><a>国美手机</a><a>聚美优品</a><a>品牌精选</a><a
                class="more">更多>></a></dd>
    </dl>
</div>
</body>

FR:徐海涛(Hunk Xu)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值