当前位置: 首页 > news >正文

CSS选择器之兄弟选择器(~和+)

日常写代码碰到这个选择器,‘~’,傻傻分不清 ‘+’ 跟 ‘~’的区别,虽然我知道他们都是兄弟选择器。

现在拿这两个选择器来测试了一下。发现原来是这样的。

  先来代码说话:

  (1)、‘~’选择器

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        .h3 ~ p{

            color: red;

        }

    </style>

</head>

<body>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <h3 class="h3">这是标题标签</h3>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <h3>这是标题标签</h3>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

</body>

</html>

  效果如下:

        

 

  (2)、‘+’选择器

  

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

        .h3 + p{

            color: red;

        }

    </style>

</head>

<body>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <h3 class="h3">这是标题标签</h3>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <h3>这是标题标签</h3>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

    <p>这是段落标签</p>

</body>

</html>

  代码还是那些,只是把‘~’换成了‘+’,结果是大不相同。

      

 

    通过这两个例子,可以发现虽然这两个选择器都表示兄弟选择器,但是‘+’选择器则表示某元素后相邻的兄弟元素,也就是紧挨着的,是单个的。而‘~’选择器则表示某元素后所有同级的指定元素,强调所有的。

 

相关文章:

  • JS实现字符串翻转的方法分析
  • js 函数重载
  • 从两个角度理解为什么 JS 中没有函数重载
  • Promise.all和Promise.race区别,和使用场景
  • js 判断当前时间是否处于某个时间段内
  • 请描述一下 cookies,sessionStorage 和 localStorage 的区别
  • node -v没有作用
  • edited
  • 笔记本尺寸
  • 关于冒烟测试和回归测试的概念
  • 关于webstorm-----eslint一键自动修复所有错误
  • 微信授权,修改本地 host
  • 基于element封装一个公共的限制图片宽高的方法
  • elementUI编辑进入页面输入框输入内容没有作用问题
  • element上传图片校验尺寸
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JDK 6和JDK 7中的substring()方法
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • underscore源码剖析之整体架构
  • webgl (原生)基础入门指南【一】
  • Windows Containers 大冒险: 容器网络
  • 大型网站性能监测、分析与优化常见问题QA
  • 聊聊directory traversal attack
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 你不可错过的前端面试题(一)
  • 你真的知道 == 和 equals 的区别吗?
  • 前端工程化(Gulp、Webpack)-webpack
  • 说说动画卡顿的解决方案
  • No resource identifier found for attribute,RxJava之zip操作符
  • UI设计初学者应该如何入门?
  • 从如何停掉 Promise 链说起
  • #include
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .net 微服务 服务保护 自动重试 Polly
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • ?
  • @AliasFor注解
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [C/C++] C/C++中数字与字符串之间的转换
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件
  • [Electron]ipcMain.on和ipcMain.handle的区别
  • [HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx
  • [JavaScript]如何讓IE9, IE8, IE7, IE6關閉視窗時不彈出對話訊息
  • [LeetCode] 93. Restore IP Addresses 复原IP地址
  • [luogu2165 AHOI2009] 飞行棋 (枚举)
  • [MTK]安卓8 ADB执行ota升级