CSS—选择器

news2024/10/7 20:32:07

     

目录

一、CSS简介

二、HTML页面中常用的元素

 三、CSS语法规则

四、常用的选择器

五、选择器参考


一、CSS简介

 CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css

       样式表定义如何显示 HTML 元素,就像 HTML 中的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。我们只需要编辑一个简单的 CSS 文档就可以改变所有页面的布局和外观。

        在CSS中选择器的作用是用css为html页面中的元素添加样式,就需要用到css选择器。选择器可以根据不同的条件和位置来选择目标元素,从而实现对页面元素的精确控制。

二、HTML页面中常用的元素

那么HTML页面中常用的元素有哪些呢,如下所示:

  1. <html> - 表示HTML文档的根元素。
  2. <head> - 包含关于文档的元数据和其他头部信息。
  3. <title> - 定义文档的标题,显示在浏览器的标题栏或选项卡上。
  4. <body> - 包含文档的主要内容。
  5. <h1>-<h6> - 表示标题,由大到小分为六级标题。
  6. <p> - 表示一个段落。
  7. <a> - 创建一个超链接。
  8. <img> - 插入图片。
  9. <ul> - 无序列表,表示项目之间没有特定顺序。
  10. <ol> - 有序列表,表示项目按特定顺序排列。
  11. <li> - 列表中的一个项目。
  12. <div> - 用于组合其他元素或将其分组。
  13. <span> - 内联元素容器,用于对文本的部分进行样式设置。
  14. <input> - 表单输入元素,用于接收用户输入。
  15. <button> - 表单按钮。
  16. <form> - 创建一个表单。
  17. <table> - 表格,用于展示二维数据。
  18. <tr> - 表格中的一行。
  19. <td> - 表格中的一个单元格。
  20. <iframe> - 内嵌一个网页。
  21. <audio> - 插入音频内容。
  22. <video> - 插入视频内容。

 这只是一小部分HTML元素的示例,还有许多其他元素可用于创建丰富的网页内容和交互。每个元素都有不同的属性和用法,可以根据需要选择适合的元素来组织和呈现网页内容。

 三、CSS语法规则

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 

 

选择器通常是您需要改变样式的 HTML 元素。

每条声明由一个属性和一个值组成。

属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。

四、常用的选择器

① 元素选择器(Element Selector):通过元素名称选择 HTML 元素。

如下代码,p 选择器将选择所有 <p> 元素:

p {
  ...
  color: blue;
  ...
}

② 类选择器(Class Selector):通过类别名称选择具有特定类别的 HTML 元素。

类选择器以 开头,后面跟着类别名称。

如下代码,.highlight 选择器将选择所有具有类别为 "highlight" 的元素。

.highlight {
  ...
  background-color: yellow;
  ...
}

③ ID 选择器(ID Selector):通过元素的唯一标识符(ID)选择 HTML 元素。

ID 选择器以 # 开头,后面跟着 ID 名称。

如下代码,#runoob 选择器将选择具有 ID 为 "runoob" 的元素。

#runoob {
  ...
  width: 200px;
  ...
}

④ 属性选择器(Attribute Selector):通过元素的属性选择 HTML 元素。属性选择器可以根据属性名和属性值进行选择。

如下代码,input[type="text"] 选择器将选择所有 type 属性为 "text" 的 <input> 元素。

input[type="text"] {
  ...
  border: 1px solid gray;
  ...
}

⑤ 后代选择器(Descendant Selector):通过指定元素的后代关系选择 HTML 元素。

后代选择器使用空格分隔元素名称。

如下代码,div p 选择器将选择所有在 <div> 元素内的 <p> 元素。

div p {
  ...
  font-weight: bold;
  ...
}

 ⑥ 通用选择器(Universal Selector):选择所有 HTML 元素。通用选择器使用 * 符号。例如,* 选择器将选择页面上的所有元素。


五、选择器参考

选择器示例示例说明CSS
.class.intro选择所有class="intro"的元素1
#id#firstname选择所有id="firstname"的元素1
**选择所有元素2
elementp选择所有<p>元素1
element,elementdiv,p选择所有<div>元素和 <p> 元素1
element.classp.hometown选择所有 class="hometown" 的 <p> 元素1
element elementdiv p选择<div>元素内的所有<p>元素1
element>elementdiv>p选择所有父级是 <div> 元素的 <p> 元素2
element+elementdiv+p选择所有紧跟在 <div> 元素之后的第一个 <p> 元素2
[attribute][target]选择所有带有target属性元素2
[attribute=value][target=-blank]选择所有使用target="-blank"的元素2
[attribute~=value][title~=flower]选择标题属性包含单词"flower"的所有元素2
[attribute|=language][lang|=en]选择 lang 属性等于 en,或者以 en- 为开头的所有元素2
:linka:link选择所有未访问链接1
:visiteda:visited选择所有访问过的链接1
:activea:active选择活动链接1
:hovera:hover选择鼠标在链接上面时1
:focusinput:focus选择具有焦点的输入元素2
:first-letterp:first-letter选择每一个<p>元素的第一个字母1
:first-linep:first-line选择每一个<p>元素的第一行1
:first-childp:first-child指定只有当<p>元素是其父级的第一个子级的样式。2
:beforep:before在每个<p>元素之前插入内容2
:afterp:after在每个<p>元素之后插入内容2
:lang(language)p:lang(it)选择一个lang属性的起始值="it"的所有<p>元素2
element1~element2p~ul选择p元素之后的每一个ul元素3
[attribute^=value]a[src^="https"]选择每一个src属性的值以"https"开头的元素3
[attribute$=value]a[src$=".pdf"]选择每一个src属性的值以".pdf"结尾的元素3
[attribute*=value]a[src*="runoob"]选择每一个src属性的值包含子字符串"runoob"的元素3
:first-of-typep:first-of-type选择每个p元素是其父级的第一个p元素3
:last-of-typep:last-of-type选择每个p元素是其父级的最后一个p元素3
:only-of-typep:only-of-type选择每个p元素是其父级的唯一p元素3
:only-childp:only-child选择每个p元素是其父级的唯一子元素3
:nth-child(n)p:nth-child(2)选择每个p元素是其父级的第二个子元素3
:nth-last-child(n)p:nth-last-child(2)选择每个p元素的是其父级的第二个子元素,从最后一个子项计数3
:nth-of-type(n)p:nth-of-type(2)选择每个p元素是其父级的第二个p元素3
:nth-last-of-type(n)p:nth-last-of-type(2)选择每个p元素的是其父级的第二个p元素,从最后一个子项计数3
:last-childp:last-child选择每个p元素是其父级的最后一个子级。3
:root:root选择文档的根元素3
:emptyp:empty选择每个没有任何子级的p元素(包括文本节点)3
:target#news:target选择当前活动的#news元素(包含该锚名称的点击的URL)3
:enabledinput:enabled选择每一个已启用的输入元素3
:disabledinput:disabled选择每一个禁用的输入元素3
:checkedinput:checked选择每个选中的输入元素3
:not(selector):not(p)选择每个并非p元素的元素3
::selection::selection匹配元素中被用户选中或处于高亮状态的部分3
:out-of-range:out-of-range匹配值在指定区间之外的input元素3
:in-range:in-range匹配值在指定区间之内的input元素3
:read-write:read-write用于匹配可读及可写的元素3
:read-only:read-only用于匹配设置 "readonly"(只读) 属性的元素3
:optional:optional用于匹配可选的输入元素3
:required:required用于匹配设置了 "required" 属性的元素3
:valid:valid用于匹配输入值为合法的元素3
:invalid:invalid用于匹配输入值为非法的元素3

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

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

相关文章

Zabbix6.0监控

文章目录 一、Zabbix简介1&#xff09;zabbix 是什么&#xff1f;2&#xff09;zabbix 监控原理3&#xff09;Zabbix 6.0 新特性1、Zabbix server高可用防止硬件故障或计划维护期的停机2、Zabbix 6.0 LTS新增Kubernetes监控功能&#xff0c;可以在Kubernetes系统从多个维度采集…

【uniapp 小程序开发语法篇】资源引入 | 语法介绍 | UTS 语法支持(链接格式)

博主&#xff1a;_LJaXi Or 東方幻想郷 专栏&#xff1a; uni-app | 小程序开发 开发工具&#xff1a;HBuilderX 小程序开发语法篇 引用组件easycom Js文件引入NPM支持 Css文件引入静态资源引入css 引入静态资源如何引入字体图标&#xff1f;css 引入字体图标示例nvue 引入字体…

深入解析微店详情API:提升电商平台的技术实力

了解微店详情API的基本概念和功能&#xff1a; 微店详情API是用于通过商品ID获取商品详情数据的接口。它提供了丰富的商品信息&#xff0c;包括商品名称、价格、描述、规格、图片等。我们将介绍API的请求和响应结构&#xff0c;以及常见的参数和返回字段。 最佳实践&#xff1…

低版本Qt Creator安装方式

文章目录 一. 说明二.安装方法 一. 说明 安装最新的QT后自带的Qt Creator再打开的时候会很慢&#xff0c;并且打开项目后点击代码文件切换速度也会很慢&#xff0c;安装低版本的Qt Creator未出现这个问题&#xff0c;故选择安装低版本Qt Creator 二.安装方法 下载低版本Qt C…

中断子系统--硬件层(GICv3)

目录 综述 硬件层--GICV3 中断类型 中断状态 Distributor组件 中断使能配置 中断触发方式配置 中断优先级配置  中断分组标记 GIC处理中断流程 综述 由上面的block图&#xff0c;我们可知linux kernel的中断子系统分成4个部分&#xff1a; 硬件层&#xff1a;最下层…

学习总结(TAT)

好久都没交总结了&#xff0c;今天把之前的思路和错误整理了一下&#xff1a; 在服务器和客户端两侧&#xff0c;不可以同时先初始化获取输入流&#xff0c;否则会造成堵塞&#xff0c;同时为这位作者大大打call&#xff1a; (3条消息) 关于Java Socket和创建输入输出流的几点…

龙芯积极研发二进制翻译,提升软硬件兼容性,提高LoongArch架构

根据8月8日Phoronix报道&#xff0c;龙芯正在积极研发龙芯二进制翻译功能&#xff08;Loongson Binary Translationm&#xff0c;LBT&#xff09;以提高LoongArch架构与其他处理器&#xff08;如MIPS/x86/Arm&#xff09;的二进制翻译能力&#xff0c;这重要举措将显著提升龙芯…

【沁恒蓝牙mesh】CH58x flash分区之利用随机数作为蓝牙mesh地址

本文主要介绍了 沁恒蓝牙芯片 CH58x 的flash 分区与数据存储管理&#xff0c;利用随机数作为蓝牙mesh地址&#xff0c;蓝牙mesh采用自组网 &#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是喜欢记录零碎知识点的小菜鸟。&#x1f60e;&#…

【容器化】Oceanbase镜像构建及使用

通过该篇文章可以在国产X86-64或ARM架构上构建商业版oceanbase,只需要替换pkg安装包即可。下面截图主要以国产X86-64安装为例,作为操作截图: 镜像构建目录说明 pkg:用来存放安装包及脚本,抛出rpm其他是脚步,这些rpm包可以下载不同系统架构的包,构建镜像时该目录只需要保…

45.杜芬方程解仿真解曲线(matlab程序)

1.简述 Dufing方程是一种重要的动力系统山&#xff0c;是反映工程物理系统中非线性现象和混沌动力学行为的极其重要的方程式。通过Duffing方程可以探讨铁磁谐振电路中的分岔、拟周期运动、子谐波振荡。而在非线性与混沌系统的研究中&#xff0c;Duffing方程展示了丰富的混沌动力…

12.操作符详解(位操作符、逗号表达式、下标访问操作符、函数调用操作符、操作数的优先级)

这里写目录标题 1.位操作符1.1左移操作符&#xff08;<<&#xff09;1.2右移操作符&#xff08;>>&#xff09;1.3按位与操作符&#xff08;&&#xff09;1.4按位或操作符&#xff08;|&#xff09;1.5异或操作符&#xff08;^&#xff09;1.6取反操作符&#…

SPF9139全力适配ios16与鸿蒙3.0,超实用数据提取、分析、恢复能力UP!

​ 如今&#xff0c;群聊已成为人们必不可少的沟通窗口 家人群&#xff0c;好友群&#xff0c;班级群 粉丝群&#xff0c;交友群&#xff0c;工作群 …… 各类群聊铺天盖地般涌来的同时 也有一些群聊沦为了 赌博、传播淫秽视频、发表不当言论 等违法犯罪行为滋生之地 与…

滑动窗口——缓冲区大小

文章目录 作用处理过程三次握手四次挥手的全部流程 窗口理解为缓冲区的大小&#xff0c;滑动窗口的大小会随着发送数据和接收数据而变化。 通信双方都有发送缓冲区和接收缓冲区。 服务器&#xff1a; 发送缓冲区 接收缓冲区 客户端&#xff1a; 发送缓冲区 接收缓冲区 作用 处…

C++项目,出现debug能正常编译release编译报错的情况

编写了一个DLL库文件&#xff0c;发现可以正常编译生成debug的库&#xff0c;但是release的部分编译报错。列举过程中出现的错误解决办法&#xff1a; 1.报错点&#xff1a;fatal error C1189: #error: Building MFC application with /MD[d] … fatal error C1189: #error: B…

前端进阶html+css04----盒子模型

1.一个盒子由content&#xff08;文本内容)&#xff0c;padding,border,margin组成。 2.盒子的大小指的是盒子的宽度和高度。一般由box-sizing属性来控制。 1&#xff09;默认情况下, 也就是box-sizing: content-box时&#xff0c;盒子的宽高计算公式如下&#xff1a; 盒子宽…

使用 Splashtop Secure Workspace 改进安全访问

前言&#xff1a;Splashtop 首席执行官兼联合创始人 Mark Lee 我们在十多年前推出 Splashtop 远程访问和支持产品线时&#xff0c;专注于为用户提供高性能和卓越的用户体验&#xff0c;以便用户能够随处访问计算资源。如今&#xff0c;我们有25万企业客户和3000万个人用户&…

如何使用Java发邮件

首先要知道一点&#xff0c;发送邮件不需要像发送短信那样购买具体的定制化服务&#xff0c;可以理解为发送短信是一个涉及到具体的物理设备&#xff0c;比如基站等这些东西&#xff0c;而邮件的服务成本没有那么高&#xff0c;它是一个比较纯粹的软件服务。 其次你要知道那个…

Stable Diffusion教程(9) - AI视频转动漫

配套抖音视频教程&#xff1a;https://v.douyin.com/UfTcrcJ/ 安装mov2mov插件 打开webui点击扩展->从网址安装输入地址&#xff0c;然后点击安装 https://github.com/Scholar01/sd-webui-mov2mov 最后重启webui 下载模型 从国内liblib AI 模型站下载模型 LiblibAI哩…

从到店到到家,本土便利店正在围猎外资三巨头

全家在中国市场接连关店约300多家&#xff0c;7-11关闭或迁移全球市场的门店约1000家&#xff0c;罗森深圳公司2022年疑似亏损近8000万。 近三年来&#xff0c;以全家、7-11和罗森三家为代表的外资便利店企业&#xff0c;正在遭遇中国本土便利店品牌从到店到家的双重围猎。 20…

分析一下vue3下会造成响应式丢失的情况

前言 在我们从vue2过渡到vue3的时候&#xff0c;对于数据响应式的变化其实是懵懵懂懂的。从以往直接在data函数里面定义变量到每一次都要使用ref/reactive时&#xff0c;是有些不适应的。但问题不大&#xff0c;毕竟在大前端时代中&#xff0c;如果不及时跟上时代的步伐&#…