前端学习之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…

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

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

软件推动开放自动化落地

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

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 完整代码,定义 结构 , 也可以定义参…

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时&…

Gif动态闪图如何制作?教你1分钟快速制作

动态文字闪图是一种独特而有趣的图像效果&#xff0c;通过将文字以闪烁、跳动或变换的方式呈现&#xff0c;给人一种动态感和视觉冲击力。如果你想制作自己的动态文字闪图&#xff0c;下面是一些简单的方法来帮助你完成这个任务。使用在线闪图制作网站-GIF5工具网&#xff0c;无…

【09】进阶JavaScript事件循环Promise

一、事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 何为线程? 有了进程后,就可以运行程序的代码了。 运行代码的「人」称之…

算法之位运算

常见的位运算操作: 首先先熟悉一下常见的位运算操作: 1. 基础位运算 左移<<, 右移>>, 按位与&, 按位或|, 按位异或^, 按位取反~ 注意: 异或其实是一种无进位相加. 2. 给定一个 n, 确定它的二进制表示中第x位是 0 还是 1 n & (1<<x) 或者 (n>…

软件工程-第11章 内容总结

如果不想读这本书&#xff0c;直接看这一章即可。 11.1 关于软件过程范型 11.2 关于软件设计方法

微信小程序开发学习笔记——4.4常见的导航栏api接口

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p29&vd_source9b149469177ab5fdc47515e14cf3cf74 一、属性 界面 / 导航栏 / wx.showNavigationBar…

Vue3+.NET6前后端分离式管理后台实战(四)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(四)已经发布&#xff0c; 程序源码已打包&#xff0c;感兴趣的可以关注下载。 2&#xff0c;源码打包可以下载&#xff1a;

leecode1793 | 好子数组的最大分数 | 求给高度矩阵最大值

题目我就不念了&#xff0c;就一个字难理解&#xff0c;给的题总是这么难懂&#xff0c;总感觉出题人的语文是体育老师教的&#xff1f; 还有就是思维转变&#xff0c;才能能好的理解&#xff1f;一味的钻牛角尖死理解&#xff0c;效果不好 思维的转变 >悟性&#xff1f;&am…