九宫格布局

最近遇到一个题目,是实现一个九宫格布局的。实现的效果大概是下图这种这样子的:

(鼠标悬浮的时候,九宫格的边框颜色是改变的。)

首先想到的是直接使用<table>进行布局,原因很简单,就是想利用 table 里面有一个border-collapse:collapse; 属性,可以很方便地对 border 进行重合。

下面贴出代码:

css

    <style>
.tables{
border-collapse:collapse;
background-color: #fff;
}
.tds{
text-align:center;
width: 90px;
height: 90px;
font-size: 30px;
border: 5px solid blue;
text-decoration: underline;
}
.tds:hover{
border:5px solid red;
}
</style>

html

    <table class="tables">
<tr class="trs">
<td class="tds">1</td>
<td class="tds">2</td>
<td class="tds">3</td>
</tr>
<tr class="trs">
<td class="tds">4</td>
<td class="tds">5</td>
<td class="tds">6</td>
</tr>
<tr class="trs">
<td class="tds">7</td>
<td class="tds">8</td>
<td class="tds">9</td>
</tr>
</table>

结果(看到就瞬间蒙逼了,有一部分 border 被遮挡了)

既然遇到问题了,那就马上改改改,解决的办法是在 td 里再增加一个div。

修改

css

    <style>
.tables{
border-collapse:collapse;
background-color: #fff;
}
.tds{
width: 90px;
height: 90px;
border: 5px solid blue;
}
.tds div{
position: relative;
width: 90px;
height: 90px;
}
.tds div span{
display:block;
text-align: center;
line-height: 90px;
font-size: 30px;
width: 90px;
height: 90px;
text-decoration: underline;
}
.tds div span:hover{
position: absolute;
top: -5px;
left: -5px;
width: 90px;
height: 90px;
border:5px solid red;
}
</style>

html

    <table class="tables">
<tr class="trs">
<td class="tds"><div><span>1</span></div></td>
<td class="tds"><div><span>2</span></div></td>
<td class="tds"><div><span>3</span></div></td>
</tr>
<tr class="trs">
<td class="tds"><div><span>4</span></div></td>
<td class="tds"><div><span>5</span></div></td>
<td class="tds"><div><span>6</span></div></td>
</tr>
<tr class="trs">
<td class="tds"><div><span>7</span></div></td>
<td class="tds"><div><span>8</span></div></td>
<td class="tds"><div><span>9</span></div></td>
</tr>
</table>

DEMO


另外,也可以通过 给一个最外层的div设置一个 `background-color`来实现视觉上的边框,

栗子请戳 css实现九宫格(二) | Litten的博客

table 实现 九宫格布局的更多相关文章

  1. [转]基于display:table的CSS布局

    当IE8发布时,它将支持很多新的CSS display属性值,包括与表格相关的属性值:table.table-row和table-cell,它也是最后一款支持这些属性值的主流浏览器.它标志着复杂CSS ...

  2. iOS回顾笔记( 02 ) -- 由九宫格布局引发的一系列“惨案”

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  3. 与table有关的布局

    当IE8发布时,它将支持很多新的CSS display属性值,包括与表格相关的属性值:table.table-row和table-cell,它也是最后一款支持这些属性值的主流浏览器.它标志着复杂CSS ...

  4. iOS- 用UICollectionViewController 来进行横竖屏九宫格布局

    1.简单说说UICollectionViewController 我们在做九宫格布局时,可以使用UIScrollView,也可以使用UICollectionViewController. 当我们用UI ...

  5. css Table布局:基于display:table的CSS布局

    两种类型的表格布局 你有两种方式使用表格布局 -HTML Table(<table>标签)和CSS Table(display:table 等相关属性). HTML Table是指使用原生 ...

  6. 【CSS】340- 常用九宫格布局的几大方法汇总

    对,就是类似这样的布局~ 目录 1  margin负值实现 2  祖父和亲爹的里应外合 3  换个思路 - li生个儿子帮大忙 4 借助absolute方位值,实现自适应的网格布局 5 cloumn多 ...

  7. 关于css布局的记录(一) --table和flex布局

    1.table方式布局 效果图: 直接用table等标签布局,table布局自动垂直居中 亦可用 display:table == <table>.display:table-cell = ...

  8. [RN] React Native 使用 FlatList 实现九宫格布局 GridList

    React Native 使用 FlatList 实现九宫格布局 先看图片演示实例: 本文以图片列表为例,实现九宫格布局! 主要有两种方法: 1)方法一: 利用FlatList的 numColumns ...

  9. ListView 九宫格布局实现

    1.效果图 2.数据 SettingData.json { "data": [{ "icon":"setting", "title ...

随机推荐

  1. 编辑工具_vi

    vi/vim平时经常会用到,但是一直没有时间系统的整理下,今天看到了一篇不错的介绍文章.引用下,就当做笔记了,但是不晓得该怎么填引用路径,如有侵权请告知,补上引用路径 01. vi 简介 1.1 学习 ...

  2. Python元组,列表,字典,集合

    1.元组 元组是有序的,只有index和count两种方法,一看到元组,就提醒是不可更改的 names = ('wll', 'ly', 'jxx', 'syq') (1)index方法 print(n ...

  3. Android 游标

    静下心来,学一下Android的数据库连接. 1.直接从getReadableDatabase()与getWritableDatabase()入手.    --getReadableDatabase( ...

  4. 4,Flask 中的 request

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  5. Java集合——LinkedHashMap源码详解

    个KV.LinkedHashMap不仅像HashMap那样对其进行基于哈希表和单链表的Entry数组+ next链表的存储方式,而且还结合了LinkedList的优点,为每个Entry节点增加了前驱和 ...

  6. cocos2d-x 3.0的入门程序:helloworld

    看过了这么多不同方向的应用,发现很多程序入门都是helloworldhelloworld是所有程序员的绝对初恋 先看一下程序的运行结果吧 然后就是他的工程代码 工程的目录有两个 Classes:程序中 ...

  7. Service Intent must be explicit

    参考: http://blog.csdn.net/qs_csu/article/details/45114251 我做阿里云账号登录的时候,遇到一个问题,不知道阿里云服务的包名.怎么办?第二种方法可以 ...

  8. SparkSteaming中直连与receiver两种方式的区别

    SparkStreaming的Receiver方式和直连方式有什么区别? Receiver接收固定时间间隔的数据(放在内存中的),使用高级API,自动维护偏移量,达到固定的时间才去进行处理,效率低并且 ...

  9. 《Cracking the Coding Interview》——第1章:数组和字符串——题目7

    2014-03-18 01:55 题目:给定一个MxN矩阵,如果某个元素为0,则将对应的整行和整列置为0. 解法:单独挑出一行和一列作为标记数组.因为某元素为0就全部置为0,所以不论A[i][j]为0 ...

  10. linux下多线程断点下载工具-axel

    今天要下载一下14G左右的文件,用wget约10小时,后来发现linux下有个多线程支持断点续传的下载工具axel,试了一下,下载速度大大增加. 包地址:http://pkgs.repoforge.o ...