[转载]在table上使用::before/::after的问题
在table上使用::before/::after的问题
转载自:
- 次碳酸钴的技术博客
http://www.web-tinker.com/article/20638.html
在table上使用::before和::after之类的为元素会不会不科学呢?像table这样限定了子元素的标签,::before和::after之类的伪元素是怎么处理的?其实也没什么不科学的,因为浏览器设置都支持非table元素使用display设置得和table系列元素一样。
浏览器并不在乎你用什么标签,只要display能对上即可,即使全用DIV也可以实现表格运行<style>
.table {display:table;border:1px solid red;border-spacing:2px;}
.tr {display:table-row;}
.td {display:table-cell;border:1px solid red;padding:1px;}
</style>
<div class="table">
<div class="tr">
<div class="td">1</div>
<div class="td">2</div>
</div>
<div class="tr">
<div class="td">3</div>
<div class="td">4</div>
</div>
</div>
所以,伪元素只要有正确的display,在表格中使用是完全没问题的。如果display不正确,普通的元素就会被提取到表格外。运行<style>
table {border:1px solid red;border-spacing:2px;}
td {border:1px solid red;padding:1px;}
span {border:1px solid red;display:inline-block;}
</style>
<table>
<span>div</span>
<tr><td>
td
</td></tr>
</table>
但如果使用::before和::after,即使没有正确的display也会被包含到table中运行<style>
table {border:1px solid red;border-spacing:2px;}
td {border:1px solid red;padding:1px;}
table:before {
content:'before';
border:1px solid red;
display:inline-block;
}
</style>
<table id="table">
<tr><td>td</td></tr>
</table>
<script>
document.write(getComputedStyle(table,"::before").display);
</script>
IE8不支持getComputedStyle,所以没显示其display的值,但效果是相同的。虽然这个伪元素看似是TD的样子,但其实不是,它不会自动计算宽度。只有display:table-cell的元素才会在表格内被自动计算宽度。运行<style>
table {border:1px solid red;border-spacing:2px;}
td {border:1px solid red;padding:1px;}
table:before {content:'x';border:1px solid red;display:inline-block;}
table:after {content:'x';border:1px solid red;display:table-cell;}
</style>
<table id="table">
<tr><td>td</td></tr>
</table>
也许有人会觉得,没有TR只有用TD是不对的,其实这并没什么问题,如果没有TR直接遇到TD,引擎会为其建立一个TR。就像我们通常都不写TBODY一样,这也是自动建立的。
根据以上这些逻辑,::before和::after是可以在表格中使用的,而且如果不需要自动计算宽度(比如用于绝对定位)甚至不需要设置正确的display。
[转载]在table上使用::before/::after的问题的更多相关文章
- [转]C# ListView 单击标题实现排序(在转载的基础上有所完善)
using System; using System.Collections; using System.Windows.Forms; //在转载的基础上有所完善 namespace TDRFacto ...
- [转载]php 处理上百万条的数据库如何提高处理查询速度
转载自http://www.jb51.net/article/22063.htm ----------------------------------------------------------- ...
- 《转载》myeclipse 上安装 Maven3
本文转载自http://www.cnblogs.com/fancyzero/archive/2012/06/09/maven3.html 环境准备: JDK 1.6 Maven 3.0.4 myecl ...
- [转载] Android Studio 上第一个 Xposed 模块
本文转载自: http://www.open-open.com/lib/view/open1451364108964.html 环境: 已root手机一枚 Android Studio一枚 官方文档参 ...
- 【转载】debian上快速搭建ftp
转载自:http://suifengpiaoshi.diandian.com/post/2012-05-05/17955899 搭建ftp 包括搭建ftp服务器和ftp客户端 本文以debian上搭建 ...
- (转载)Linux上iptables防火墙的基本应用教程
(转载)http://www.vpser.net/security/linux-iptables.html iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的 ...
- 【转载】Windows上那些值得推荐的良心软件-整理 easybcd 引导工具 easyuefi 引导工具
您查询的关键词是:清理dism知乎 以下是该网页在北京时间 2019年03月17日 21:56:16 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 htt ...
- 【转载】Github上优秀的.NET Core项目
Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...
- 【转载】文件上传那些事儿,文件ajax无刷上传
导语 正好新人导师让我看看能否把产品目前使用的FileUploader从老的组件库分离出来的,自己也查阅了相关的各种资料,对文件上传的这些事有了更进一步的了解.把这些知识点总结一下,供自己日后回顾,也 ...
随机推荐
- ps -ef/ps -aux 查看正在活动的进程
ps -ef 查看正在活动的进程 ps -ef |grep abc 查看含有"abc"的活动进程 ps -ef |grep -v abc 查看不含abc的活动进程 1)ps a 显 ...
- 基于React实现的【绿色版电子书阅读器】,支持离线下载
代码地址如下:http://www.demodashi.com/demo/12052.html MyReader 绿色版电子书阅读器 在线地址:http://myreader.linxins.com ...
- MongoDB在Windows2003上安装配置及使用
本文档适用于MongoDB2.0.1版本在windows2003上的安装.配置,以及使用. 或者根据需要下载最新的稳定版本. 安装:将下载之后的压缩包解压到任意目录即可,本文假设解压到[D:\mong ...
- 4.const
const 放在*号的左边为指针常量,即:该指针所指向的内存空间不允许被修改.const放在*号的右边为常量指针,即:该指针的指向不允许被修改. 简单的说就是: 假设定义一个结构体 Teacher : ...
- spring boot 打包报错
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.0.RELEASE:repac ...
- BAT-使用BAT方法设置IP地址
::------以下为批处理文件内容---- @echo off ::set slection1= set/p slection1=请输入IP地址: netsh interface ip set ad ...
- UVA - 11584 划分字符串的回文串子串; 简单dp
/** 链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34398 UVA - 11584 划分字符串的回文串子串: 简单 ...
- 24模拟keepalved vrrp功能,监听主节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存)
[root@lb04 scripts]# cat ha_lv.sh #!/bin/bash while true do check_count=$(nmap 10.0.0.13|grep " ...
- Hibernate查询语言(HQL)
Hibernate查询语言(HQL)与SQL(结构化查询语言)相同,但不依赖于数据库表. 我们在HQL中使用类名,而不是表名. 所以是数据库独立的查询语言. HQL的优点 HQL有很多优点. 它们如下 ...
- postman-变量/环境/过滤等
之前虽然自己也有用postman来测试api,但都只是最简单输入url,发送,查看结果,大部分时候跟使用浏览器差不多,偶然在简书首页看到一篇 API开发神器-Postman , 深感还是得对自己使用的 ...