n宫格的实现方法

方法一、table

1、看成多列

<style>
    .line{  display: table; width: 1024px;
                clear:both; overflow:auto;  /*-----设置父div高度包住子div高度*/}
    .news{  display: table-row; float: left;    background-color:#236483;}

    .news img,.news-txt{    float:left; display: table-cell;    height: 150px;
            width: 100%;    font-size: 1.5em;   text-align: center;}
<html>
    <div class="line">
    <!-- 第一列 -->
        <div class="news">
        <!-- 第一格 -->
            <img src="img/news.jpg"><div class="news-txt">a</div>
        <!-- 第二格 -->        
            <img src="img/news.jpg"><div class="news-txt">b </div>
        </div>

    <!-- 第二列 -->
        <div class="news">
        <!-- 第一格 -->    <div class="news-txt">a</div>   <img src="img/news.jpg">

        <!-- 第二格 -->    <div class="news-txt">b</div>   <img src="img/news.jpg">
        </div>

    </div>

2、看成多行

<style>
    .line{  display: table; width: 1024px;
                clear:both; overflow:auto;  /*-----设置父div高度包住子div高度*/}

    .news{  display: table-row;     float: left;        background-color:#236483;}

    .news img,.news-txt{    float:left; display: table-cell;    height: 150px;
            width: 25%; font-size: 1.5em;   text-align: center;}
<html>
    <div class="line">
    <!-- 第一行 -->        
                <div class="news">
        <!-- 第一格 -->
            <img src="img/news.jpg"><div class="news-txt">    a </div>
        <!-- 第二格 -->
            <img src="img/news.jpg"><div class="news-txt">    b </div>
        </div>
    <!-- 第二行 -->
        <div class="news">
        <!-- 第一格 -->
            <div class="news-txt">    c </div>
            <img src="img/news.jpg">
        <!-- 第二格 -->
            <div class="news-txt">    d    </div>
            <img src="img/news.jpg">
        </div>
    </div>

总结:
1、优点table-cell单元格高度取其所在行l单元格高度的最大值,高度统一
2、缺点:①ie6/7兼容性不好, ②后台输出时需要水平、垂直各repeat

方法二、inline-block

<style>
    .line{  display: table; width: 1024px;
                clear:both; overflow:auto;  /*-----设置父div高度包住子div高度*/}
    .news{  display: table-row; float: left;    background-color:#236483;}

    .news img,.news-txt{    float:left; display: inline-block;  height: 150px;
            width: 100%;    font-size: 1.5em;   text-align: center;}

区别:display: inline-block
其余相同

优点:①可与文字,图片混排,可内嵌block属性元素,可以可以置身于inline水平的元素中;②所在行高取单元格最高值
③ie6/7虽然不支持display,但让其表现的跟inline-block一样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值