CSS伪选择器::empty vs :blank

栏目: CSS · 发布时间: 7年前

内容简介:前端时间我们平时做项目的时候,时常会使用一些CSS Frameworks,比如说有名的Bootstrap,在这种情况之下,使用的一些选择器,是带有一些默认样式。有的时候元素中并没有任何内容,那么在页面上显示的效果就有点怪异。比如下面这样的一个场景,你的页面上有两个如果你的页面中引用了

前端时间 @Zell Liew的博客深入的介绍了CSS中伪选择器 :empty:blank 相关的知识 。那么 :empty:blank 究竟有什么作用,又在什么场景下使用呢?今天我们来一起看看,它们怎么使用,更应该应用在哪个场景之下呢?

使用场景

我们平时做项目的时候,时常会使用一些CSS Frameworks,比如说有名的Bootstrap,在这种情况之下,使用的一些选择器,是带有一些默认样式。有的时候元素中并没有任何内容,那么在页面上显示的效果就有点怪异。比如下面这样的一个场景,你的页面上有两个 .alertdiv 应用,其中一个有内容,另外一个任何内容都没有(就一个空 div )。比如:

<div class="alert alert-success">Success Alert</div>
<div class="alert alert-info"></div>

如果你的页面中引用了 bootstrap.css 的话,这个时候看到的效果将会是这样:

CSS伪选择器::empty vs :blank

对于这样的效果,估计没有人能接受。那么为什么会这样呢?来看一下代码,不难发现 .alert 有一个默认的样式:

.alert {
    position: relative;
    padding: .75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: .25rem;
}

元素中主要有一个 padding ,撑大了元素容器,就算元素没有任何内容,该元素也有一定的大小。就如上面看到的效果。那么我们有没有别的方法能处理呢?毕竟很多场景我们是不好控制元素的。

既然标题提到了 :empty:blank ,估计有同学想到了解决方案是不是和这两个伪元素有关呢?如果感兴趣的话,可以接着往下阅读,在介绍相应的解决方案之前,咱们先来了解一下 :empty:blank

:empty:blank

首先, :empty是什么? :blank`又是什么?

简单的说,** :empty:blank 都是CSS的伪选择器。其中 :empty 可以让你选择 空元素 。空元素是指没有任何内容的元素,甚至空格都不行。即:

<div class="alert alert-info"></div>

空元素可以有注释,只要注释填满了整个元素:

<!-- 完元素 -->
<div class="alert alert-info"><!-- 我是一个注释 --></div>

<!-- 非空元素 -->
<div class="alert alert-info"> <!-- 我是一个注释 --></div>
<div class="alert alert-info"><!-- 我是一个注释 --> </div>
<div class="alert alert-info"> <!-- 我是一个注释 --> </div>

最上面的一行代码,虽然 div 中有注释,但 <div></div> 之间没有任何内容,甚至是空格都没,那么他就是一个空元素,但下面三个 div ,虽然包含的也是注释,但是里面含有空格。所以说,这三个 div 不是空元素。

:blank:empty 为灵活。它可以让你选择有空白的元素:


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++程序设计

C++程序设计

谭浩强 / 清华大学出版社 / 2004-6-1 / 36.00元

《C++程序设计》作者深入调查了我国大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C++的教材,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律。在本书中做到准确定位,合理取舍内容,设计了读者易于学习的教材体系,并且以通俗易懂的语言化解了许多复杂的概念,大大减少了初学者学习C++的困难。C++是近年来国内外广泛使用的现代计算机语言,它既支持面向过程的程序设计,也支持基于对......一起来看看 《C++程序设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具