前端学习之css选择器--基本选择器、关系选择器、属性选择器、复合选择器、伪类选择器

目录

基本选择器

结果

关系选择器

结果

父子关系

祖先后代关系

相邻兄弟关系

兄弟关系

​编辑

 属性选择器

结果

 复合选择器

结果

 伪类选择器

 结果

伪类选择器-操作标签

结果

未访问

访问后

悬停

伪类选择器-操作表单

结果

 伪类选择器-操作结构

 结果


基本选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>基本选择器</title><!-- 基本选择器1、类选择器2、id选择器3、标签选择器4、通配符选择器    --><style>/* 1、class选择器,一个标签可以设置一个或者多个选择器指的是标识test1这个类型class属性可以填写多个类型写在后面的class属性值覆盖前面的值 */.test1{color: aqua;}.test2{color: beige;}.test3{color: rgb(255, 205, 228);}/* id选择器用#标识#id属性值*/#tesd-id{color: brown;}/*3、标签选择器直接使用标签名称*/span{/* 背景 */background-color: bisque;}/*4、通配符选择器,不建议使用会选中html页面全部元素*/*{background-color: black;}</style>
</head>
<body><span class="test1 test3">测试文字</span><span class="test2">测试文字</span><span id="tesd-id">测试文字</span>
</body>
</html>

结果

关系选择器

测试不同关系时要将其他关系测试代码注释掉,以防相互影响。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>关系选择器</title><!-- 1、父子2、祖先、后代3、相邻兄弟4、兄弟--><style>/* 父子关系测试,渲染子标签,下面的代码渲染的是测试内容p和测试内容span,因为span在p里面 */div>p{color: aqua;}/* 祖先后代关系测试,渲染后代,又被成为后代选择器 *//* div span{color: brown;} *//* 相邻兄弟关系测试,注意是相邻的也就是在下面例子中只有测试1改变,且+只代表向下渲染*//* .div+span{color: brown;} *//* 兄弟选择器,这个选的是全部的兄弟,同理也只可以向下渲染 */#test-p~span{color: blueviolet;}</style>
</head>
<body><!-- 父子关系测试 --><div>测试内容--div<p>测试内容-p<span>测试内容-span</span><span>测试内容-span</span></p><p>测试内容-p</p></div><!-- 祖先后代测试 --><!-- <div>测试内容--div<p>测试内容-p<span>测试内容-span</span><span>测试内容-span</span><span>测试内容-span</span></p></div> --><!-- 相邻兄弟关系测试 --><!-- <div class="div">测试内容--div<p>测试内容-p<span class="test1">测试内容-span</span><span class="test2">测试内容-span</span><span id="test-1">测试内容-span</span></p></div><span>测试1</span><span>测试2</span><span>测试3</span><span>测试4</span> --><!-- 兄弟关系测试 --><!-- <div class="div">测试内容--div<p>测试内容-p<p id="test-p">ppp测试</p><span class="test1">测试内容-span</span><span class="test2">测试内容-span</span><span id="test-1">测试内容-span</span></p></div><span>测试1</span><span>测试2</span><span>测试3</span><span>测试4</span> -->
</body>
</html>

结果

父子关系

祖先后代关系

相邻兄弟关系

兄弟关系

 属性选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>属性选择器</title><!-- 1、属性名2、属性名=属性值3、属性名^= (以某某开头的)4、属性名$=属性值 (以某某结尾的)5、属性名*=属性值 (包含某某)--><style>/* 属性名 */[title]{color: brown;}/* 属性名 = 属性值 */[class="abcd"]{color: aqua;}/* 属性名^= (以某某开头的) */[title^="a"]{font-size: 120px;}/* 属性名$=属性值 (以某某结尾的) */[title$="c"]{color: blueviolet;}/* 属性名*=属性值 */[title*="bc"]{background-color: aqua;}/* 选择以a开头的属性title相邻的p标签 */[title^="a"]+p{color: chartreuse;}</style>
</head>
<body><div title="a">a</div><div title="ab">ab</div><div title="abc">abc</div><p class="abcd">abcd</p>
</body>
</html>

结果

 复合选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>复合选择器</title><!-- 交集并集可以组合各种选择器,包括属性选择器,关系选择器,基本选择器--><style>/* 交集 */.pc2#p1{color:red;}/* 并集 */.pc2,.d1{color:yellow;}[id="p1"],[class="d1"]{font-size: 120px;}</style>
</head>
<body><p id="p1" class="pc1">测试内容1</p><p id="p1" class="pc2">测试内容2</p><div id="d1" class="d1">测试内容3</div><div id="d1" class="d2">测试内容4</div>
</body>
</html>

结果

 伪类选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>伪类选择器</title><!-- 这个冒号后面的就是伪类选择器,伪类选择器,就是这是一个操作,不是一个标签之类的东西下面例子就是鼠标悬停后要产生的变化。--><style>div{width: 200px;height: 200px;border: 1px solid black;background-color: yellow;}div:hover{width: 50px;height: 50px;border: 1px solid black;background-color: blue;}</style>
</head>
<body><div></div>
</body>
</html>

 结果

伪类选择器-操作标签

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>伪类选择器-操作标签</title>
</head><style>/* 未访问标签 */[href]:link{color: aqua;}/* 按压标签 */[href]:active{color: rgb(0, 255, 51);}/* 访问后标签 */[href]:visited{color: yellow;}/* 悬停标签 */[href]:hover{color: blueviolet;}</style>
<body><a href="./2.1基本选择器.html">跳转到2.1</a>
</body>
</html>

结果

未访问

访问后

悬停

伪类选择器-操作表单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>伪类选择器-操作表单</title><style>/* 表示input标签的被选中属性,宽会变成100px */input:checked{width: 100px;}/* 表示获得鼠标焦点的元素宽会变成200px */input:focus{width: 200px;}/* 这个展示的是not属性表示除了not括号里面的属性执行的操作 */input:not([type="submit"]){width: 500px;}</style>
</head><body><form action="">username:<input type="text" name="username" id="username"><br>password:<input type="password" name="password" id="password"><br>nickname:<input type="text" name="nickname" id="nickname"><br>爱好:<br><input type="checkbox" name="hobby" id="hobby1">看书<br><input type="checkbox" name="hobby" id="hobby1">听音乐<br><input type="checkbox" name="hobby" id="hobby1">吃饭<br><input type="submit" value="注册"></form>
</body>
</html>

结果

 对表单的一些操作,此次操作显示的是最后一个操作的结果

 伪类选择器-操作结构

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>伪类选择器-操作结构</title><style>/* first-chile 表示所属父级的第一个同类型元素,若第一个不是同类型不渲染  */li:first-child{color: aqua;}/* first-of-type 表示所属父级的第一同类型元素,若第一个不是同类型也渲染 */li:first-of-type{color: red;}/* 链式写法,就是将不同的东西拼接,下面就是,当鼠标悬停到到first-of-type所指的地方变黄 */li:first-of-type:hover{color: yellow;}/* 指定索引元素 n代表全部,2n代表偶数变,2n-1代表奇数变,odd奇数变,even偶数变*/li:nth-child(4){color: palevioletred;}</style>
</head>
<body><div><ul><p>测试内容</p><li>测试内容1</li><li>测试内容2</li><li>测试内容3</li><li>测试内容4</li><li>测试内容5</li></ul></div>
</body>
</html>

 结果


不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树详解

二叉树详解 一:什么是树1:概念2:树的特点##3:树的一些重要概念 二:二叉树1:二叉树的概念2:二叉树的特点3:特殊的二叉树: 三:二叉树的性质四:二叉树的存储 一:什么是树 1:概念 树是一种非线性的数据结构,它是由n个节点组成的一个具有层次关系的集合,把它叫做树的原因是因为它看…

【网络原理】HTTP协议和使用Fiddler抓包

文章目录 &#x1f343;HTTP协议是什么&#xff1f;&#x1f340;理解 "应用层协议"&#x1f38d;HTTP 协议的工作过程&#x1f334;HTTP 协议格式&#x1f333;Fiddler抓包工具的使用&#x1f338;如何抓HTTPS的包&#xff1f; &#x1f38b;抓包工具的原理&#x1…

Vue2 和Vue3 双向数据绑定的区别和原理

Vue 2 和 Vue 3 的双向数据绑定原理基本相同&#xff0c;都是基于 JavaScript 的特性实现的&#xff0c;但在实现细节上有一些区别。 在 Vue 2 中&#xff0c;双向数据绑定是通过 Object.defineProperty 实现的。Vue 2 会使用 Object.defineProperty 为数据对象的每个属性创建…

Transformer的前世今生 day04(ELMO、Attention注意力机制)

ELMO 前情回顾 NNLM模型&#xff1a;主要任务是在预测下一个词&#xff0c;副产品是词向量Word2Vec模型&#xff1a;主要任务是生成词向量 CBOW&#xff1a;训练目标是根据上下文预测目标词Skip-gram&#xff1a;训练目标是根据目标词预测上下文词 ELMO模型的流程 针对Wor…

矩形相交问题

给出左下和右上的坐标&#xff0c;判断矩形是否相交&#xff0c;并求出相交的区域 思路&#xff1a;从矩形中点间的横纵坐标距离判断 矩形A&#xff1a;左下坐标&#xff08;A1&#xff0c;A2&#xff09;右上坐标&#xff08;A3&#xff0c;A4&#xff09; 矩形B&#xff1a;左…

科研学习|论文解读——了解在线环境中的多数观点形成过程:Facebook的探索性方法(IPM, 2018)

论文标题 Understanding the majority opinion formation process in online environments: An exploratory approach to Facebook 摘要 在在线社区的社会互动过程中,多数观点经常被观察到,但很少有研究用实证数据来解决这一问题。为了确定一个合适的理论视角来解释在…

软件推动开放自动化落地

当你唯一拥有的是一把锤子时&#xff0c;你周围的一切都是钉子。 软件是硬件设备的护城河&#xff0c;国际自动化厂商不遗余力地开发各种新型工业软件&#xff0c;其战略站在应用的制高点。以前我们追求硬件兼容&#xff0c;现在我们要致力于应用引领。如果我们拥有强大的SCADA…

js封装SDK 在VUE、小程序、公众号直接调用js调用后端接口(本文以vue项目为例)

1.封装一个js文件msgSdk.js 注意&#xff1a;需要修改这个请求地址 apiServiceAddress ;(function () {if (window.msgSdk) {return}var msgSdk (function () {var m_msgSdk thisvar apiServiceAddress"http://172.12.14.5:8000"this.I_SendHTTPRequest functi…

Linux账号管理与ACL权限设置

文章目录 Linux的账户和用户组用户标识符&#xff1a;UID与GID用户账号用户组&#xff1a;有效与初始用户组groups&#xff0c;newgrp 账号管理新增与删除用户&#xff1a;useradd、相关配置文件、passwd、usermod、userdel用户功能&#xff1a;id、finger、chfn、chsh新增与删…

HANA VIEW 用 ABAP 创建CDS VIEW,在生成ODATA

这里我们做ADT来创建 场景介绍:把hana中的一个底表,创建成ABAP的 CDS VIEW ,在把CDS VIEW 生成 OData 服务。 一、创建CDS Table Function 红框内根据自身情况填写 选择 Define Table Function with Parameters 创建 Data Definition 完整代码,定义 结构 , 也可以定义参…

Grok ChatLaw

Grok是马斯克旗下的AI公司推出的一款革命性产品&#xff0c;它提供了创新且可靠的数据分析和决策支持平台1。Grok的技术解决方案主要包括以下几个方面&#xff1a; 强大的数据处理能力&#xff1a;Grok能够处理大规模的数据&#xff0c;并从中提取出有价值的信息和洞察。 先进…

centos7安装jdk详细步骤(yum安装与手动安装)

centos7安装jdk详细步骤&#xff08;yum安装与手动安装&#xff09; 一、使用yum安装1. 准备工作2. 检查系统是否自带jdk3. 安装jdk 二、手动安装jdk1. 下载上传jdk2. 安装jdk3. 配置环境变量 一、使用yum安装 1. 准备工作 如果你的机器可以联网可以使用此方法 ping www.baidu…

Java基础学习笔记二

Java的加载与执行 Java既是编译型语言又是解释型语言 question&#xff1a;为什么JVM可以跨平台执行 answer &#xff1a; Java虚拟机&#xff08;JVM&#xff09;之所以能够跨平台执行&#xff0c;是因为它在不同操作系统上提供了一个统一的运行环境&#xff0c;实现了Java程…

‘‘ is not a package AttributeError: module ‘‘ has no attribute ‘__path__‘报错解决

报错&#xff1a; No module named ‘ldm.util’; ‘ldm’ is not a package AttributeError: module ‘ldm’ has no attribute ‘__ path__’ 原因&#xff1a; 1.首先这个引用没有被画横线&#xff0c;说明包存在&#xff0c;并且也在包目录底下添加了__init__.py文件 &am…

C++ Qt开发:QUdpSocket实现组播通信

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…

四川易点慧电子商务抖音小店:值得信赖的购物新选择

随着互联网的飞速发展&#xff0c;电子商务平台如雨后春笋般涌现&#xff0c;为消费者提供了前所未有的购物便利。在众多电商平台中&#xff0c;四川易点慧电子商务抖音小店以其独特的魅力和优质的服务&#xff0c;赢得了广大消费者的青睐和信任。 四川易点慧电子商务抖音小店以…

C++中的Union: 内存与类型转换技巧

在C中&#xff0c;union是一种特殊的数据类型&#xff0c;允许在相同的内存位置存储不同类型的数据。union提供了一种高效地利用内存的方式&#xff0c;但同时也要求开发者更加小心地处理数据以避免类型错误。 1. 基本定义 union定义了一个可以存储多种类型但任意时刻只能存储…

Python之进程池、阻塞模式、非阻塞模式、进程间的通信、queue

非阻塞模式 # 当需要创建的子进程数量不多时&#xff0c;可以直接利用multiprocessing中的Process动态成生多个进程 # 但如果是上百甚至上千个目标&#xff0c;手动的去创建进程的工作量巨大&#xff0c;此时就可以用到multiprocessing模块提供的Pool方法. # 初始化Poo1时&…

HTTPS 为什么比HTTP安全?

HTTPS&#xff08;Hyper Text Transfer Protocol Secure&#xff09;比 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;更安全&#xff0c;主要是因为 HTTPS 在 HTTP 的基础上添加了 SSL/TLS 协议&#xff0c;用于对数据进行加密&#xff0c;保证数据在传输过程中的…

数据库中SQL语句where 1=1和where 1=0

1、 背景 在实际的数据库查询中&#xff0c;常常会看到一些特殊的SQL语句构造&#xff0c;如WHERE 11、WHERE 10等&#xff0c;它们虽然看起来有些奇特&#xff0c;但在实际应用中确实有一些妙用。 其中WHERE 11用于动态构建查询条件&#xff0c;而WHERE 10通常用于强制不返回…