表格是个好东西,它可以自动根据内容来调整格子,确保数据正常显示,并且不破坏表格的结构。但也有一些劣势,因为是用大量标签堆砌而成,页面结构会比较乱,细节也往往不容易控制。所以我们希望有表格的展示效果,但不想用表格,于是就有了模拟表格。
  对于HTML中的同级数据,我们更希望把它们放到一起。所以UL、LI的结构可以满足需求,UL就是整个表格,LI就是我们的单元格。对LI元素设置display:inline-block,让其并行排列。然后要让元素像表格一样就需要设置适当的宽度,比如下面的例子使用33.33%,也就是每行显示3个单元格。注意还需要同时将box-sizing设置为border-box,因为我们可能需要边框或padding之类的东西,且不能影响到整个单元格的宽度。最后使用等高布局,对元素设置上很大数值的padding-bottom和负margin-bottom,让单元格的高度超过行盒子,为了让水平边框不因为单元格高度不等而参差不齐。这样,整个布局就完成了。它有点类似表格,内容可以撑开单元格高度。对于要确保数据显示却不想用表格布局的场景可以考虑使用它。

运行<style>
ul {
  width:260px;overflow:hidden;
  border-right:1px solid #CCC;
  border-bottom:1px solid #CCC;
  margin:0px;padding:0px;
  font-size:0px;
}
li {
  box-sizing:border-box;
  width:33.33%;
  display:inline-block;
  vertical-align:top;
  padding-bottom:999px;
  margin-bottom:-999px;
  border-left:1px solid #CCC;
  border-top:1px solid #CCC;
  font:14px/1.75 Simsun;
}
</style>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>无论单个格子里面有多少文字,即使换行也不会影响整个布局。</li>
  <li></li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
</ul>

模拟表格 inline-block等高布局的更多相关文章

  1. div两栏等高布局

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. css设置多列等高布局

    初始时,多个列内容大小不同,高度不同.现在需要设置不同的背景来显示,而且各个列的高度需要保持一致.那么这就需要利用到多列等高布局. 最终需要的效果: 1. 真实等高布局 flex 技术点:弹性盒子布局 ...

  3. 巧妙使用div+css模拟表格对角线

    首先声明: 这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点.如果对此深以为然的朋友,请一笑过之... 有时在插入文档时,要用到表格对角线,常见 ...

  4. 问题:table 可否实现对角线;结果:用div+css模拟表格对角线

    首先声明: 这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点.如果对此深以为然的朋友,请一笑过之... 有时在插入文档时,要用到表格对角线,常见 ...

  5. CSS等高布局的6种方式

    × 目录 [1]边框模拟 [2]负margin [3]table[4]absolute[5]flex[6]js 前面的话 等高布局是指子元素在父元素中高度相等的布局方式.等高布局的实现包括伪等高和真等 ...

  6. css圣杯布局、等高布局

    所谓圣杯布局,就是自适应浏览器的分辨率,也称双飞翼布局. 例子: <style> body{margin:0;} .center{height:600px;background:#f60; ...

  7. CSS display:table属性用法- 轻松实现了三栏等高布局

    display:table:此元素会作为块级表格来显示(类似 <table>); display:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签.目前IE8+以 ...

  8. CSS等高布局的7种方式

    前面的话 等高布局是指子元素在父元素中高度相等的布局方式.等高布局的实现包括伪等高和真等高,伪等高只是看上去等高而已,真等高是实实在在的等高.本文将介绍边框模拟.负margin这两种伪等高以及tabl ...

  9. css实现等高布局 两栏自适应布局 三栏自适应布局

    等高布局: HTML结构如下: <div class="wrapper"> <div class="box"> <h1>.. ...

随机推荐

  1. linux之SQL语句简明教程---主键,外来键

    主键 (Primary Key) 中的每一笔资料都是表格中的唯一值.换言之,它是用来独一无二地确认一个表格中的每一行资料.主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位) ...

  2. linux之SQL语句简明教程---SUBSTRING

    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: S ...

  3. HBase 1、HBase介绍和工作原理

    HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件 ...

  4. #include <stack>

    1 pop(); 出栈 2 push(); 入栈 3 size(); 返回栈中元素个数 4 top(); 返回栈顶元素 使用栈,把十进制转换为二进制 #include <iostream> ...

  5. 使用Mysql.data.dll文件在服务器上运行访问Mysql

    我使用的这个Mysql.data.dll文件 web.config上面主要需要声明以下代码 <system.data> <DbProviderFactories> <ad ...

  6. android系统将普通应用升级为系统应用

    作为一名程序员,有的时候并不是使用软件,而是去改造软件,不仅仅只是会编程而已,还要满足客户的需求.这样,才能开发出符合客户需求的应用,在关于到涉及到android底层的应用的时候,手机就需要root了 ...

  7. C++结构体中sizeof(1)

    sizeof sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节. 返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的 ...

  8. C++ strcpy实现

    char * strcpy(char * strDest,const char * strSrc) { if ((NULL==strDest) || (NULL==strSrc))  throw &q ...

  9. 1016. 部分A+B

    /* * Main.c * 1016. 部分A+B * Created on: 2014年8月30日 * Author: Boomkeeper *******测试通过********* */ #inc ...

  10. jQuery学习-事件之绑定事件(七)

    今天来说说事件中的handlers方法中的一个片段  1 matches[ sel ] = handleObj.needsContext ?  2     jQuery( sel, this ).in ...