首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速了解CSS新出的列选择符双管道

作者 | 张鑫旭

来源 | https://www.zhangxinxu.com/wordpress/2019/02/css-column-combinator/

了解列选择符

示例用法:

col.selected || td { background-color: skyblue;}

平时我们用过空格,, 和,现在出来个双管道,是不是没见过,这个双管道就是本文要介绍的列选择符。

列选择符是规范中刚出现不久的新选择符,目前浏览器的兼容性还不足以实际项目中应用,因此本文仅简单介绍下,让大家知道大致是干什么用的。

在Table布局和Grid布局中都有列的概念,有时候我们希望控制整列的样式。有两种方法,一种是借助或者伪类,不过这两个伪类目前浏览器尚未支持;还有一种是借助原生Table布局中的和元素实现,这个兼容性非常好。

我们通过一个简单例子快速了解下这两个元素,如下表格HTML代码:

可以看出表格共有5列。其中,元素中有3个元素,从属性值可以看出,这3个元素分别占据1列,2列和2列。此时,我们给后面2个元素设置背景色,就可以看到背景色作用在整列上了,CSS如下:

.ancestor { background-color: dodgerblue;}.brother { background-color: skyblue;}

最终效果如下图:

但是,有时候,我们的单元格并不是正好属于某一列,而是跨列,此时,元素是会忽略这些跨列元素的。举个例子:

col.selected { background-color: skyblue;}

此时仅C和E两个单元格有天蓝色的背景色,G单元格虽然也覆盖了第3列,由于同时也属于第2列,于是被无视了,效果如下图:

这就有问题了,很多时候,我们就是要G单元格也有背景色的,只要包含该列,都认为是目标对象。为了应对这种需求,列选择符应运而生了。

列选择符写作双管道,是两个字符,和JavaScript语言中的逻辑或写法一致,但是,在CSS中却不是“或”的意思,用“属于”解释要更恰当。

通过如下CSS选择器,可以让G单元格也有背景色:

col.selected || td { background-color: skyblue;}

意思就是选择所有属于的元素,哪怕这个元素横跨多列。

于是,我们可以看到如下图所示的效果:

本文内容就这些,结束!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190215B1707200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券