九宫格布局

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

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

首先想到的是直接使用<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. idea push reject:push mater to origin/master was rejected by remote

    用idea commit之后,执行push操作,总是提示push reject:push mater to origin/master was rejected by remote,如下图 上网说执行 ...

  2. 怎么将oracle的sql文件转换成mysql的sql文件-- 费元星

    http://jingyan.baidu.com/article/ca41422fe01f251eaf99ed6e.html

  3. Xcode坑之一Invalid argument

    Xcode坑之一Invalid argument 正在搞代码,运行程序时突然发现程序不能再次运行了,一运行就提示Invalid argument 然后FQ各种查啊,试了好多方法都不行,重启,重置,我用 ...

  4. Javascript在浏览器中的加载顺序详解!

    现在前端用javascript用的比较多,当然真心的说这个语言是一个非常业余的语言,但是用的人很多,所以也比较火.今天想完成一个javascript外部文件自动加载的设计(类似于java或者php的i ...

  5. SpringMVC 集成 Freemarker 模板引擎

    本文通过 maven 项目中集成 1.引入 SpringMVC 与 Freemarker 需要的依赖 <!-- SpringMVC --> <dependency> <g ...

  6. Pythontutor:可视化代码在内存的执行过程

    http://www.pythontutor.com/visualize.html今天去问开发一个Python浅拷贝的问题,开发给了一个神器,可以可视化代码在内存的执行过程,一看即懂,太NB了!~真是 ...

  7. git :.gitigrone文件不生效的解决办法

    真正的原因是.gitignore只能忽略那些尚未被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的.一个简单的解决方法就是先把本地缓存删除(改变成未track状 ...

  8. bitbucket相关操作

    常见命令: git checkout -b develop master 创建Develop分支的命令 git checkout master 切换到Master分支 git merge --no-f ...

  9. React01

    目录 React-day01 入门知识 React介绍 官网 React开发环境初始化 SPA 脚手架初始化项目(方便,稳定)* 通过webpack进行初始化 配置镜像地址 开发工具配置 元素渲染 组 ...

  10. System.Activator类

    public static ObjectHandle CreateInstance(string assemblyName, string typeName); 该类有一个方法. // // 摘要: ...