聊聊CSS3中的4个逻辑选择器(快速入手)

本篇文章给大家介绍一下css3中的逻辑选择器,聊聊里面的 4 名成员,希望对大家有所帮助!

聊聊CSS3中的4个逻辑选择器(快速入手)

在 CSS 选择器家族中,新增这样一类比较新的选择器 — 逻辑选择器,目前共有 4 名成员:

:is:where:not:has

本文将带领大家了解、深入它们。做到学以致用,写出更现代化的选择器。【推荐学习:css视频教程】

:is 伪类选择器

:is() CSS伪类函数将选择器列表作为参数,并选择该列表中任意一个选择器可以选择的元素。

立即学习“前端免费学习笔记(深入)”;

在之前,对于多个不同父容器的同个子元素的一些共性样式设置,可能会出现如下 CSS 代码:

header p:hover,main p:hover,footer p:hover {  color: red;  cursor: pointer;}

而如今有了 :is() 伪类,上述代码可以改写成:

:is(header, main, footer) p:hover {  color: red;  cursor: pointer;}

它并没有实现某种选择器的新功能,更像是一种语法糖,类似于 JavaScript ES6 中的 Class() 语法,只是对原有功能的重新封装设计,实现了更容易的表达一个操作的语法,简化了某些复杂代码的写法。

语法糖(syntactic sugar)是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言,操作可以变得更加清晰、方便,或者更加符合程序员的编程习惯。用比较通俗易懂的方式去理解就是,在之前的某个语法的基础上改变了一种写法,实现的功能相同,但是写法不同了,主要是为了让开发人员在使用过程中更方便易懂。

一图胜前言(引用至 New CSS functional pseudo-class selectors :is() and :where()):

聊聊CSS3中的4个逻辑选择器(快速入手)

支持多层层叠连用

再来看看这种情况,原本的 CSS 代码如下:

div i

p i

div span

p span

h1 span

h1 i

如果要将上述 HTML 中,

下的 的 color 设置为 red,正常的 CSS 可能是这样:

div span,div i,p span,p i {    color: red;}

有了 :is() 后,代码可以简化为:

:is(div, p) :is(span, i) {    color: red;}

结果如下:

聊聊CSS3中的4个逻辑选择器(快速入手)

这里,也支持 :is() 的层叠连用。通过 :is(div, p) :is(span, i) 的排列组合,可以组合出上述 4 行的选择器,达到同样的效果。

当然,这个例子比较简单,看不出 :is() 的威力。下面这个例子就比较明显,这么一大段 CSS 选择器代码:

ol ol ul,     ol ul ul,     ol menu ul,     ol dir ul,ol ol menu,   ol ul menu,   ol menu menu,   ol dir menu,ol ol dir,    ol ul dir,    ol menu dir,    ol dir dir,ul ol ul,     ul ul ul,     ul menu ul,     ul dir ul,ul ol menu,   ul ul menu,   ul menu menu,   ul dir menu,ul ol dir,    ul ul dir,    ul menu dir,    ul dir dir,menu ol ul,   menu ul ul,   menu menu ul,   menu dir ul,menu ol menu, menu ul menu, menu menu menu, menu dir menu,menu ol dir,  menu ul dir,  menu menu dir,  menu dir dir,dir ol ul,    dir ul ul,    dir menu ul,    dir dir ul,dir ol menu,  dir ul menu,  dir menu menu,  dir dir menu,dir ol dir,   dir ul dir,   dir menu dir,   dir dir dir {  list-style-type: square;}

可以利用 :is() 优化为:

:is(ol, ul, menu, dir) :is(ol, ul, menu, dir) :is(ul, menu, dir) {  list-style-type: square;}

不支持伪元素

有个特例,不能用 :is() 来选取 ::before::after 两个伪元素。譬如:

注意,仅仅是不支持伪元素,伪类,譬如 :focus:hover 是支持的。

div p::before,div p::after {    content: "";    //...}

不能写成:

div p:is(::before, ::after) {    content: "";    //...}

:is 选择器的优先级

看这样一种有意思的情况:

where & is test

where & is test

我们给带有 .test-class 的元素,设置一个默认的颜色:

div .test-class {    color: red;}

如果,这个时候,我们引入 :is() 进行匹配:

div :is(p) {    color: blue;}

此时,由于 div :is(p) 可以看成 div p,优先级是没有 div .test-class 高的,因此,被选中的文本的颜色是不会发生变化的。

但是,如果,我们在 :is() 选择器中,加上一个 #test-id,情况就不一样了。

div :is(p, #text-id) {    color: blue;}

按照理解,如果把上述选择器拆分,上述代码可以拆分成:

div p {    color: blue;}div #text-id {    color: blue;}

那么,我们有理由猜想,带有 #text-id

元素由于有了更高优先级的选择器,颜色将会变成 blue,而另外一个 div p 由于优先级不够高的问题,导致第一段文本依旧是 green

但是,这里,神奇的是,两段文本都变成了 blue

聊聊CSS3中的4个逻辑选择器(快速入手)

CodePen Demo -- the specificity of CSS :is selector

https://codepen.io/Chokcoco/pen/rNJaGvb

这是由于,:is() 的优先级是由它的选择器列表中优先级最高的选择器决定的。我们不能把它们割裂开来看。

对于 div :is(p, #text-id)is:() 内部有一个 id 选择器,因此,被该条规则匹配中的元素,全部都会应用 div #id 这一级别的选择器优先级。这里非常重要,再强调一下,对于 :is() 选择器的优先级,我们不能把它们割裂开来看,它们是一个整体,优先级取决于选择器列表中优先级最高的选择器

:is 的别名 :matches() 与 :any()

:is() 是最新的规范命名,在之前,有过有同样功能的选择,分别是:

:is(div, p) span {}// 等同于:-webkit-any(div, p) span {}:-moz-any(div, p) span {}:matches(div, p) span {}

当然,下面 3 个都已经废弃,不建议再继续使用。而到今天(2022-04-27):is() 的兼容性已经非常不错了,不需要兼容 IE 系列的话可以考虑开始用起来(配合 autoprefixer),看看 CanIUse:

聊聊CSS3中的4个逻辑选择器(快速入手)

:where 伪类选择器

了解了 :is 后,我们可以再来看看 :where,它们两个有着非常强的关联性。:where 同样是将选择器列表作为其参数,并选择可以由该列表中的选择器之一选择的任何元素。

还是这个例子:

:where(header, main, footer) p:hover {  color: red;  cursor: pointer;}

上述的代码使用了 :where,可以近似的看为:

header p:hover,main p:hover,footer p:hover {  color: red;  cursor: pointer;}

这就有意思了,这不是和上面说的 :is 一样了么?

那么它们的区别在什么地方呢?

:is:where 的区别

首先,从语法上,:is:where 是一模一样的。它们的核心区别点在于 优先级

来看这样一个例子:

where & is test

CSS 代码如下:

:is(div) p {    color: red;}:where(div) p {    color: green;}

正常按我们的理解而言,:is(div) p:where(div) p 都可以转化为 div p,由于 :where(div) p 后定义,所以文字的颜色,应该是 green 绿色,但是,实际的颜色表现为 color: red 红色:

聊聊CSS3中的4个逻辑选择器(快速入手)

这是因为,:where():is() 的不同之处在于,:where() 的优先级总是为 0 ,但是 :is() 的优先级是由它的选择器列表中优先级最高的选择器决定的。

上述的例子还不是特别明显,我们再稍微改造下:

where & is test

我们给 div 添加上一个 id 属性,改造上述 CSS 代码:

:is(div) p {    color: red;}:where(#container) p {    color: green;}

即便如此,由于 :where(#container) 的优先级为 0,因此文字的颜色,依旧为红色 red。:where() 的优先级总是为 0 这一点在使用的过程中需要牢记。

组合、嵌套

CSS 选择器的一个非常大的特点就在于组合嵌套。:is:where 也不例外,因此,它们也可以互相组合嵌套使用,下述的 CSS 选择器都是合理的:

/* 组合*/:is(h1,h2) :where(.test-a, .test-b) {  text-transform: uppercase;}/* 嵌套*/.title:where(h1, h2, :is(.header, .footer)) {  font-weight: bold;}

这里简单总结下,:is:where 都是非常好的分组逻辑选择器,唯一的区别在于:where() 的优先级总是为 0,而:is() 的优先级是由它的选择器列表中优先级最高的选择器决定的。

:not 伪类选择器

下面我们介绍一下非常有用的 :not 伪类选择器。

:not 伪类选择器用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类(negation pseudo-class)。

举个例子,HTML 结构如下:

div.a
div.b
div.c
div.d
div:not(.b) {    color: red;}

div:not(.b) 它可以选择除了 class 为 .b 元素之外的所有 div 元素:

聊聊CSS3中的4个逻辑选择器(快速入手)

MDN 的错误例子?一个有意思的现象

有趣的是,在 MDN 介绍 :not 的页面,有这样一个例子:

/* Selects any element that is NOT a paragraph */:not(p) {  color: blue;}

意思是,:not(p) 可以选择任何不是

标签的元素。然而,上面的 CSS 选择器,在如下的 HTML 结构,实测的结果不太对劲。

p

div
span

h1

结果如下:

聊聊CSS3中的4个逻辑选择器(快速入手)

意思是,:not(p) 仍然可以选中

元素。我尝试了多个浏览器,得到的效果都是一致的。

CodePen Demo -- :not pesudo demo

https://codepen.io/Chokcoco/pen/KKZbWjy

这是为什么呢?这是由于 :not(p) 同样能够选中 ,那么 的 color 即变成了 blue,由于 color 是一个可继承属性,

标签继承了 的 color 属性,导致看到的

也是蓝色。

我们把它改成一个不可继承的属性,试试看:

/* Selects any element that is NOT a paragraph */:not(p) {  border: 1px solid;}

聊聊CSS3中的4个逻辑选择器(快速入手)

OK,这次

没有边框体现,没有问题!实际使用的时候,需要注意这一层继承的问题!

:not 的优先级问题

下面是一些使用 :not 需要注意的问题。

:not:is:where 这几个伪类不像其它伪类,它不会增加选择器的优先级。它的优先级即为它参数选择器的优先级。

并且,在 CSS Selectors Level 3,:not() 内只支持单个选择器,而从  CSS Selectors Level 4 开始,:not() 内部支持多个选择器,像是这样:

/* CSS Selectors Level 3,:not 内部如果有多个值需要分开 */p:not(:first-of-type):not(.special) {}/* CSS Selectors Level 4 支持使用逗号分隔*/p:not(:first-of-type, .special) {}

:is() 类似,:not() 选择器本身不会影响选择器的优先级,它的优先级是由它的选择器列表中优先级最高的选择器决定的。

:not(*) 问题

使用 :not(*) 将匹配任何非元素的元素,因此这个规则将永远不会被应用。

相当于一段没有任何意义的代码。

:not() 不能嵌套 :not()

禁止套娃。:not 伪类不允许嵌套,这意味着 :not(:not(...)) 是无效的。

:not() 实战解析

那么,:not() 有什么特别有意思的应用场景呢?我这里列举一个。

在 W3 CSS selectors-4 规范 中,新增了一个非常有意思的 :focus-visible 伪类。

:focus-visible 这个选择器可以有效地根据用户的输入方式(鼠标 vs 键盘)展示不同形式的焦点。

有了这个伪类,就可以做到,当用户使用鼠标操作可聚焦元素时,不展示 :focus 样式或者让其表现较弱,而当用户使用键盘操作焦点时,利用 :focus-visible,让可获焦元素获得一个较强的表现样式。

看个简单的 Demo:

button:active {  background: #eee;}button:focus {  outline: 2px solid red;}

使用鼠标点击:

聊聊CSS3中的4个逻辑选择器(快速入手)

可以看到,使用鼠标点击的时候,触发了元素的 :active 伪类,也触发了 :focus伪类,不太美观。但是如果设置了 outline: none 又会使键盘用户的体验非常糟糕。因为当键盘用户使用 Tab 尝试切换焦点的时候,会因为 outline: none 而无所适从。

因此,可以使用 :focus-visible 伪类改造一下:

button:active {  background: #eee;}button:focus {  outline: 2px solid red;}button:focus:not(:focus-visible) {  outline: none;}

看看效果,分别是在鼠标点击 Button 和使用键盘控制焦点点击 Button:

聊聊CSS3中的4个逻辑选择器(快速入手)

CodePen Demo -- :focus-visible example

https://codepen.io/Chokcoco/pen/abBbPrE

可以看到,使用鼠标点击,不会触发 :foucs,只有当键盘操作聚焦元素,使用 Tab 切换焦点时,outline: 2px solid red 这段代码才会生效。

这样,我们就既保证了正常用户的点击体验,也保证了无法使用鼠标的用户的焦点管理体验,在可访问性方面下了功夫。

值得注意的是,这里为什么使用了 button:focus:not(:focus-visible) 这么绕的写法而不是直接这样写呢:

button:focus {  outline: unset;}button:focus-visible {  outline: 2px solid red;}

解释一下,button:focus:not(:focus-visible) 的意思是,button 元素触发 focus 状态,并且不是通过 focus-visible 触发,理解过来就是在支持 :focus-visible 的浏览器,通过鼠标激活 :focus 的 button 元素,这种情况下,不需要设置 outline

为的是兼容不支持 :focus-visible 的浏览器,当 :focus-visible 不兼容时,还是需要有 :focus 伪类的存在。

因此,这里借助 :not() 伪类,巧妙的实现了一个实用效果的方案降级。

这里有点绕,需要好好理解理解。

:not 兼容性

经历了 CSS Selectors Level 3 & CSS Selectors Level 4 两个版本,到今天(2020-05-04),除去 IE 系列,:not 的兼容性已经非常之好了:

聊聊CSS3中的4个逻辑选择器(快速入手)

:has 伪类选择器

OK。最后到所有逻辑选择器里面最重磅的 :has 出场了。它之所以重要是因为它的诞生,填补了在之前 CSS 选择器中,没有核心意义上真正的父选择器的空缺。

:has 伪类接受一个选择器组作为参数,该参数相对于该元素的 :scope 至少匹配一个元素。

实际看个例子:

div -- p

div -- p.has

div -- p

div:has(.g-test-has) {    border: 1px solid #000;}

我们通过 div:has(.g-test-has) 选择器,意思是,选择 div 下存在 class 为 .g-test-has 的 div 元素。

注意,这里选择的不是 :has() 内包裹的选择器选中的元素,而是使用 :has() 伪类的宿主元素。

效果如下:

聊聊CSS3中的4个逻辑选择器(快速入手)

可以看到,由于第二个 div 下存在 class 为 .g-test-has 的元素,因此第二个 div 被加上了 border。

:has() 父选择器 -- 嵌套结构的父元素选择

我们再通过几个 DEMO 加深下印象。:has() 内还可以写的更为复杂一点。

div span
  • div ul li h2 span

div h2 span

div:has(>h2>span) {    margin-left: 24px;    border: 1px solid #000;}

这里,要求准确选择 div 下直接子元素是 h2,且 h2 下直接子元素有 span 的 div 元素。注意,选择的最上层使用 :has() 的父元素 div。结果如下:

聊聊CSS3中的4个逻辑选择器(快速入手)

这里体现的是嵌套结构,精确寻找对应的父元素

:has() 父选择器 -- 同级结构的兄元素选择

还有一种情况,在之前也比较难处理,同级结构的兄元素选择。

看这个 DEMO:

div + p

p

div + h1

h1

div + h2

h2

div + ul
    ul

我们想找到兄弟层级关系中,后面接了

元素的  .has-test 元素,可以这样写:

.has-test:has(+ h2) {    margin-left: 24px;    border: 1px solid #000;}

效果如下:

聊聊CSS3中的4个逻辑选择器(快速入手)

这里体现的是兄弟结构,精确寻找对应的前置兄元素

这样,一直以来,CSS 没有实现的父选择器,借由 :has() 开始,也能够做到了。这个选择器,能够极大程度的提升开发体验,解决之前需要比较多 JavaScript 代码才能够完成的事。

上述 DEMO 汇总,你可以戳这里 CodePen Demo -- :has Demo

https://codepen.io/Chokcoco/pen/poaJjwm

:has() 兼容性,给时间一点时间

比较可惜的是,:has() 在最近的 Selectors Level 4 规范中被确定,目前的兼容性还比较惨淡,截止至 2022-05-04,Safari 和 最新版的 Chrome(V101,可通过开启 Experimental Web Platform features 体验)

聊聊CSS3中的4个逻辑选择器(快速入手)

Chrome 下开启该特性需要,1. 浏览器 URL 框输入 chrome://flags,2. 开启 #enable-experimental-web-platform-features

耐心等待,给给时间一点时间,这么好的选择器马上就能大规模应用了。

(学习视频分享:web前端入门)

以上就是聊聊CSS3中的4个逻辑选择器(快速入手)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1624057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
利用CSS也可以处理图片,转为“像素风”!
上一篇 2025年12月24日 08:27:30
聊聊怎么巧用CSS给普通黑色二维码添上彩色渐变!
下一篇 2025年12月24日 08:27:45

相关推荐

  • 利用css3仿造window7的开始菜单

    相当逼真,css3果然强悍。要留意的点依旧是哪几项,难点在于细节的微调,尤其是渐变背景的制作,css3中非常灵活,下次有机会,发篇css3渐变背景的详细教程。   相当逼真,css3果然强悍。友情提示:请勿在IE下浏览。来看下原作者的设计草图: 简明创建过程  第一步 :创建如下菜单结构 @@##@…

    2026年5月10日
    000
  • 怎么安装html5_HTML5开发环境安装与配置详细步骤

    答案是配置HTML5开发环境需三步:1. 安装VS Code等编辑器并配置插件;2. 使用Chrome或Firefox测试页面;3. 可选搭建本地服务器,如Live Server或http-server;最后创建index.html文件验证环境。 安装HTML5开发环境其实并不复杂,因为HTML5本…

    2026年5月10日
    000
  • 使用CSS Grid实现不规则列布局:告别传统表格的限制

    本教程详细阐述如何利用css grid实现复杂的、不规则的列布局,尤其适用于那些传统html表格难以实现的块状结构。文章将通过具体的css属性和html结构示例,指导读者如何定义网格、控制子项的跨度与位置,以及优化自动布局流程,从而高效构建灵活且响应式的页面布局。 1. 传统表格的局限与CSS Gr…

    2026年5月10日
    000
  • CSS的伪类选择器

    这次给大家带来css的伪类选择器,css伪类选择器的注意事项有哪些,下面就是实战案例,一起来看一下。 a.random:hover{color:#64FFDA;font-size:120%;} //选择的是class=”random”的标签。 a#search:active{font-size:80…

    2026年5月10日
    000
  • border-radius属性如何使用

    border-radius属性用于创建圆角,其使用语法是“border-radius: 1-4 length|%;”,border-radius是一个最多可指定四个“border -*- radius”属性的复合属性。 本文操作环境:Windows7系统、Dell G3电脑、HTML5&&a…

    2026年5月10日
    000
  • 详解img[src=””] img无路径情况下,灰色边框去除解决方法

    img[src=””]  img标签无路径情况下,灰色边框去除解决方案 1.Js解决办法 @@##@@ function whenError(a){ a.onerror=null; a.src=’path_default.jpg’; console.log(‘图片出错的时候调…

    用户投稿 2026年5月10日
    000
  • HTML5怎么制作天气应用_HTML5天气组件开发实战

    使用HTML5、CSS3和JavaScript结合OpenWeatherMap API可快速开发响应式天气应用。2. 页面结构包含输入框、按钮和结果显示区域。3. 通过fetch调用API获取实时天气数据,支持中文和摄氏度单位。4. 数据渲染包括城市名、温度、图标、湿度和风速,并用CSS美化界面。5…

    2026年5月10日
    000
  • 关于CSS3字体属性整理分析

     字体属性: Font-family: {font-family: name}           {font-family: cursive| fantasy | monospace | serif | sans-serif} Font-size: {font-size: 数值 | inherit…

    用户投稿 2026年5月10日
    000
  • 深入理解CSS选择器的优先级顺序

    css中有很多选择器,比如类选择器,标签选择器,id选择器等等,不同选择器之间的优先级顺序也不一样,今天就和大家聊聊css选择器的优先级顺序,以及、!important的使用,有需要的朋友可以参考一下,希望对你有用。 1、!important 表示最高优先级。ie6浏览器不认识 !important…

    用户投稿 2026年5月10日
    000
  • 使用Flexbox实现内容居中布局:从页脚固定到内容对齐

    本文深入探讨了如何利用CSS Flexbox实现网页内容的精确居中对齐,尤其是在包含固定页脚的复杂布局中。我们将通过分析一个常见的布局问题,逐步讲解如何配置Flex容器及其子项的属性,如`display: flex`、`flex-direction`、`justify-content`和`text-…

    2026年5月10日
    000
  • 学习html5编程路径_从基础到项目实战路线【方法】

    需遵循由浅入深的学习路径:一、分阶段夯实HTML/CSS/JS基础与HTML5新API;二、通过待办列表、Canvas画板等微型项目整合技能;三、参与开源或复刻经典界面提升工程素养;四、用Vite等工具实践构建流程;五、打造可展示的全栈作品集。 如果您希望系统性地掌握HTML5编程技能,并最终能够独…

    2026年5月10日
    500
  • css权重是什么?css权重的介绍

    本篇文章给大家带来的内容是关于css权重是什么?css权重的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1、什么是css权重?css6大基础选择器 css权重指的是css6大基础选择符的优先级,优先级高的css样式会覆盖优先级底的css样式,优先级越高说明权重越高,反之亦然…

    2026年5月10日
    100
  • 如何使用CSS的Grid布局实现小松鼠邮票的效果(附源码)

    本篇文章给大家带来的内容是关于如何使用css的grid布局实现小松鼠邮票的效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 每日前端实战系列的全部源代码请从 github 下载: https://github.com/comehope/front-…

    2026年5月10日
    000
  • 使用CSS3实现鼠标悬停图片上浮显示描述的示例代码分享

    使用CSS3实现鼠标悬停图片上浮显示描述的示例代码分享使用CSS3实现鼠标悬停图片上浮显示描述的示例代码分享使用CSS3实现鼠标悬停图片上浮显示描述的示例代码分享使用CSS3实现鼠标悬停图片上浮显示描述的示例代码分享

    效果图: 代码如下: CSS3鼠标悬停图片上浮显示描述特效 – 何问起.hovertree-container{border:0px solid red;}.container{background-color:white}.hovertreeinfo{text-align:center;}a{co…

    2026年5月10日 用户投稿
    000
  • css3中新增加的颜色模式有哪些

    css新增了3种颜色模式:1、RGBA模式,是在RGB模式上新增了Alpha透明度,例“rgba(255,0,0,0.5)”;2、HSL模式,例“hsl(360,50%,50%)”;3、HSLA模式,是在HSL模式上新增了Alpha透明度。 本教程操作环境:windows7系统、CSS3版、Dell…

    2026年5月10日
    000
  • css3 animation属性怎么用

    css3 animation属性是一个简写属性,通过设置六个动画属性来实现动画效果。这六个属性分别为动画名称、动画时间、速度曲线、动画延迟、播放次数及动画是否反向播放。 css3 animation属性 作用:animation 属性是一个简写属性,用于设置六个动画属性。 语法: animation…

    2026年5月10日
    000
  • 如何使用CSS3实现千变万化的文字阴影text-shadow的效果

    如何使用CSS3实现千变万化的文字阴影text-shadow的效果如何使用CSS3实现千变万化的文字阴影text-shadow的效果如何使用CSS3实现千变万化的文字阴影text-shadow的效果如何使用CSS3实现千变万化的文字阴影text-shadow的效果

    这篇文章主要介绍了css3实现千变万化的文字阴影text-shadow效果设计的相关资料,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了CSS3千变万化的文本阴影text-shadow效果实例,供大家参考,具体内容如下 语法: none||none|[,]*或none||[,]* 取值简单说明:…

    2026年5月10日 用户投稿
    000
  • CSS3实现预载动画效果的几种方法

    CSS3实现预载动画效果的几种方法CSS3实现预载动画效果的几种方法CSS3实现预载动画效果的几种方法CSS3实现预载动画效果的几种方法

    本篇文章主要介绍了css3动画:5种预载动画效果实例,内容挺不错的,现在分享给大家,也给大家做个参考。 实现如图所示的动画效果: 预载动画一:双旋圈 在两个不同方向旋转的圆圈。我们对内圈的转速定义了一个CSS代码,即内圈比外圈的速率快2倍。 实现如图所示: 立即学习“前端免费学习笔记(深入)”; h…

    2026年5月10日 用户投稿
    000
  • 使用HTML5和CSS3实现生日蛋糕的制作

    这篇文章主要介绍了关于使用HTML5和CSS3实现生日蛋糕的制作,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 “祝你生日快乐,祝你生日快乐……”,过生日有生日歌,生日蛋糕也是必不可少的,这篇文章主要为大家详细介绍了程序员利用纯HTML5+CSS3制作的生日蛋糕,具有一定的参考价值,…

    2026年5月10日
    000
  • CSS3中有哪些伪类选择器, 伪类选择器nth-child() 怎么使用

    css3中新的属性给我们带来了不少的便利,比如伪类选择器 nth-child(),但是它在ie6-8和ff3.0-浏览器不支持,css3中nth-of-type(n)(比如nth-of-type(1))这个特殊的类选择符可以设置更加个性的标题和段落等,不过,目前nth-of-type(n)只支持火狐…

    用户投稿 2026年5月10日
    000

发表回复

登录后才能评论
关注微信