五种前端布局之table布局

五种前端基本布局---table布局、float布局、absolute布局、flexbox布局、grid布局

table布局

  1. 父级容器—display: table
  2. 子级容器—display:table-cell
    (1) 空间平均划分:子级容器默认是自动平分宽度沾满父级容器;
<body>
     <div class="box">
         <div class="left"></div>
         <div class="right"></div>
     </div>
 </body>
 
 <style>
     .box{
         width: 600px;
         height: 100px;
         display: table;
      }
      .left,.right{
         display: table-cell;
      }
      .left{
          background: yellowgreen;
      }
      .right{
          background: skyblue;
      }
 </style>

在这里插入图片描述
在这里插入图片描述

(2) 设置其中一个table-cell为固定宽度:如果固定好其中一个子级容器,那么其余子级容器会自动平分宽度沾满父级容器;

<body>
      <div class="box">
          <div class="left"></div>
          <div class="right"></div>
      </div>
  </body>
  
  <style>
      .box{
          width: 600px;
          height: 100px;
          display: table;
       }
       .left,.right{
          display: table-cell;
       }
       .left{
           width: 100px;
           background: yellowgreen;
       }
       .right{
           background: skyblue;
       }
  </style>

在这里插入图片描述

(3) 设置每一个table-cell为固定宽度;
在这里插入图片描述

(4) 把此元素放置在父元素的中部,即垂直居中—vertical-align:middle

  <body>
      <div class="box">
          <div class="a"></div>
          <div class="b"></div>
          <div class="c"></div>
          <div class="d"></div>
      </div>
  </body>

  <style>
      .box{
          width: 600px;
          height: 100px;
          display: table;
       }
       .a,.b,.c,.d{
          display: table-cell;
       }
       .a{
           background: yellowgreen;
           vertical-align: middle;
           text-align: center;
       }
       .b{
       background: skyblue;
       vertical-align: middle;
        text-align: center;
       }
        .c{
       background: palevioletred;
       vertical-align: middle;
        text-align: center;
        }
         .d{
       background: hotpink;
       vertical-align: middle;
        text-align: center;
         }
    </style>

在这里插入图片描述

在这里插入图片描述
(5) 等高对齐
下面的案例是不对右侧的box设置display:table-cell,只对左侧,所以就会出现左侧跟随右侧高度变化而变化,如果要实现不管两个box哪个高度产生变化另一个就跟随,只需要把右侧的box也设置成display:table-cell就可以实现了。

<body>
   <div class="content">
      <div class="img-box">
         [图片上传失败...(image-5e66ac-1553415098492)]
      </div>
     <div class="text-box">
         <span>
    王尼玛和陈尼玛都是年轻有为的骚年,有一天他们相遇了然后发现都对对方一见钟情后,所以就愉快的生活在了一起。。。。。王尼玛和陈尼玛都是年轻有为的骚年,有一天他们相遇了,然后发现都对对方一见钟情后,所以就愉快的生活在了一起。。。。。王尼玛和陈尼玛都是年轻有为的骚年,有一天他们相遇了,然后发现都对对方一见钟情后,所以就愉快的生活在了一起。。。。。王尼玛和陈尼玛都是年轻有为的骚年,有一天他们相遇了,然后发现都对对方一见钟情后,所以就愉快的生在了一起。。。。。王尼玛和陈尼玛都是年轻有为的骚年,有一天他们相遇了,然后发现都对对方一见钟情后,所以就愉快的生活在了一起。。。。。王尼玛和陈尼玛都是年轻有为的骚年,>有一天他们相遇了,然后发现都对对方一见钟情后,所以就愉快的生活在了一起。。。。。
         </span>
      </div>
    </div> 
</body>

 <style type="text/css">
     *{
         box-sizing:border-box;
      }
       .content{
          display: table;
          border:1px solid #06c;
          padding:15px 15px;
          max-width: 1000px;
          margin:10px auto;
          min-width:320px;
          width:100%;
       }
       .img-box{
         height:150px;
         width:100px;
          border:1px solid red;
          display: table-cell;
          vertical-align: middle;
          text-align: center;
          background-color: #4679bd;
       }
       .text-box{
          margin-left: 20px;
          border:1px solid #ddd;
          padding:10px;
       }
    </style>

在这里插入图片描述

table布局的优缺点

缺点

1.table 比其他html标签占更多的字节。造成下载时间延迟,占用服务器更多的流量资源(代码冗余)。
2.table 会阻挡浏览其渲染引擎的渲染顺序,会延迟页面的生成速度,让用户等待时间更久。
3.灵活性差,一旦设计确定,后期很难通过CSS让它展现新的面貌。
4.不利于搜索引擎抓取信息,直接影响到网站的排名。

优点

1.兼容性好.
2.容易上手

  • 23
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
前端性能优化是提高网页加载速度和用户体验的重要手段之一。而减少使用table布局是优化前端性能的一种常见方法。 1. 减少DOM元素数量:table布局包含大量的tr、td等标签,每个标签都是一个DOM元素,而DOM的操作开销较大。减少table布局的使用,可以减少DOM元素的数量,从而提升性能。 2. 减少嵌套层级:使用table布局时,常常会嵌套多个table标签,增加了嵌套的层级。层级过深会导致浏览器渲染变慢,增加页面加载时间。使用其他布局方式,如CSS布局,可以将嵌套层级减少到最低,提高性能。 3. 减少重绘与回流:table布局的改变会引发页面的重绘与回流,这是浏览器重新渲染页面的过程,会消耗大量的CPU资源。使用其他布局方式,如flex布局,可以减少页面的重绘与回流,提高性能。 4. 使用CSS代替表格:在某些情况下,使用table布局可能是为了实现某种特定的效果或布局。但是,很多情况下,可以使用CSS布局来替代table布局,例如使用flex布局、grid布局等。这样可以更加灵活地控制布局,并且能够更好地适应不同设备和屏幕尺寸。 综上所述,减少table布局是一种常见的前端性能优化手段,可以通过减少DOM元素数量、减少嵌套层级、减少重绘与回流、使用CSS代替表格等方式来实现。这样可以提高页面加载速度,提升用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值