12-CSS-语法和选择器

news2024/11/25 2:44:56

一、语法格式:

  • 选择器指向需要设置样式的 HTML 元素。
  • 声明块包含一条或多条用分号分隔的声明。
  • 每条声明都包含一个 CSS 属性名称和一个值,以冒号分隔。
  • 多条 CSS 声明用分号分隔,声明块用花括号括起来。

二、选择器: 

CSS 选择器是一种用于选择文档中 HTML 元素的方法,控制元素的样式及其属性。CSS 选择器可以根据元素的类、ID、元素名、属性等不同条件进行筛选和控制。

1、元素选择器:

利用元素选择器,可以控制某个页面或整个网站内的某类 HTML 元素的样式,这些元素可以是段落、标题、图像、表格等标准的 HTML 元素。元素选择器根据元素名称来选择 HTML 元素。

元素选择器会选择文档中所有符合条件的元素,并将相同的样式应用于所有选中元素。

元素选择器是 CSS 样式优先级排名最低的一种选择器

  • p - 匹配所有 <p> 元素
  • h1, h2, h3 - 匹配所有标题,即 <h1>, <h2>, <h3>
  • a - 匹配所有链接元素, 即 <a>
  • img - 匹配所有图像元素, 即 <img>
  • table - 匹配所有表格元素, 即 <table>
  • form - 匹配所有表单元素, 即 <form>
  • input - 匹配所有输入元素, 即 <input>

 2、id选择器:

  • id 选择器使用 HTML 元素的 id 属性来选择特定元素。
  • 元素的 id 在页面中是唯一的,因此 id 选择器用于选择一个唯一的元素。
  • 要选择具有特定 id 的元素,写一个井号(#),后跟该元素的 id。

与元素选择器不同, ID 选择器具有更高的优先级,在规则冲突时具有更高的权重。如果有多个选择器针对同一个元素定义了不同的样式,那么拥有 ID 选择器的规则将覆盖元素选择器的规则。然而,为了保持样式表简洁且易于维护,尽量减少对 ID 选择器的使用,避免给后期维护造成不必要的麻烦。

3、类选择器:

  • 类选择器选择有特定 class 属性的 HTML 元素。
  • 如需选择拥有特定 class 的元素,请写一个句点(.)字符,后面跟类名。

除了上面提到的 .paragraph1 只选中单个元素外,还有很多其他的类选择器方式,比如:

  • .heading - 选择所有属于 heading 类的元素;
  • .primary-button - 选择所有属于 primary-button 类的按钮元素;

需要注意的是,在一个 HTML 中,同一个类可以被多次使用,也可以被多个元素使用。另外,类选择器的优先级低于 ID 选择器,但是可以高于元素选择器。类选择器应用广泛,使用时要注意为类命名语义化和简洁明了,以便于提升代码的可读性和可维护性。

4、通用选择器:通用选择器(*)选择页面上的所有的 HTML 元素。 

需要注意的是,由于通用选择器能匹配到 HTML 中的所有标签,因此在代码中大量滥用通用选择器会导致 CSS 选择器的匹配过程变慢,影响页面性能。因此,在实际开发中,尽量不要滥用通用选择器,只有在必要情况下使用。

5、并集选择器:是一种将多个 CSS 选择器组合使用的方式,它可以同时选中所有符合条件的不同元素。用逗号来分隔每个元素。

6、element element 选择器:选择<div>元素内的所有<p>元素。

 7、element>element 选择器:选择所有父级是 <div> 元素的 <p> 元素。

8、属性选择器:其语法形式为:

元素名称[attribute],表示选取拥有指定属性的元素。
元素名称[attribute=value],表示选取属性值恰好等于 value 的元素。
元素名称[attribute~=value],表示选取属性中包含有给定单词的元素。
元素名称[attribute|=value],表示选取属性值以 value 开头或以 '-' 分隔符开头的元素。
元素名称[attribute^=value],表示选取属性值以 value 开头的元素。
元素名称[attribute$=value],表示选取属性值以 value 结尾的元素。
元素名称[attribute*=value],表示选取属性值中包含 value 子串的元素。

选中所有具有 title 属性的链接,并将链接文本颜色设置为红色:

a[title] {
  color: red;
}
选中所有 type 属性值为 text 的输入框,并将背景色设置为浅灰色:
 
input[type="text"] {
  background-color: lightgray;
}

 9、伪类选择器:为 HTML 元素添加特定状态样式。其语法形式为 selector:pseudo-class { ... },其中 pseudo-class 指定了要添加特定样式的状态。

以下是一些常见的 CSS 伪类选择器:

  • :hover,表示鼠标在元素上方悬停时的状态,在该状态下设置的样式将应用于元素。
  • :active,表示元素处于被激活或选中状态时的状态,在该状态下设置的样式将应用于元素,通常用于 a 标签、input 标签等可以激活的元素。
  • :focus,表示元素获取焦点时的状态,在该状态下设置的样式将应用于元素,通常用于表单元素。
  • :disabled,表示元素处于禁用状态时的状态,在该状态下设置的样式将应用于元素,通常用于表单元素、按钮等需要禁用的元素。
/* 鼠标悬浮到链接上时字体变成红色 */
a:hover {
  color: red;
}

/* 点击一个按钮后,背景色变成灰色 */
button:active {
  background-color: gray;
}

/* 文本框获取到焦点时边框颜色变成蓝色 */
input:focus {
  border-color: blue;
}

/* 禁用的按钮变成灰色,且鼠标悬停时不会显示手型光标 */
button:disabled {
  background-color: gray;
  cursor: not-allowed;
}

 三、更多选择器:

选择器示例示例说明CSS
.class.intro选择所有class="intro"的元素1
#id#firstname选择所有id="firstname"的元素1
**选择所有元素2
elementp选择所有<p>元素1
element,elementdiv,p选择所有选择<div>元素内的所有<p>元素<div>元素和<p>元素1
element elementdiv p1
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/519867.html

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

相关文章

第一章 计算机系统概述

1.1 计算机发展历程 1.1.1 计算机硬件的发展 计算机系统硬件软件 计算机硬件的发展&#xff1a; 第一代计算机&#xff1a;(使用电子管)&#xff0c;第二代计算机&#xff1a;(使用晶体管)&#xff0c;第三代计算机&#xff1a;(使用较小规模的集成)&#xff0c;第四代计算…

Strategy 模式

文章目录 &#x1f4a1;问题引入&#x1f4a1;概念&#x1f4a1;例子&#x1f4a1;总结 &#x1f4a1;问题引入 软件为什么总是隔一段时间就要更新迭代&#xff1f;当然是因为不同的需求而发生了改变。 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff…

MySQL——通过C语言连接

文章目录 1、前置安装2、正式连接增加删除修改select 1、前置安装 前提&#xff1a; 如果你的mysql是通过yum安装的&#xff0c;那么那些库文件依赖&#xff0c;都是有的&#xff0c;不用你安装了。 但是如果是用 rpm包安装的&#xff0c;就需要去官网下载对应的包。 这些是…

操作系统与进程调度

文章目录 一、计算机操作系统1.操作系统&#xff08;Operating System&#xff09;2.计算机系统示意图 二、进程1.进程/任务&#xff08;Process/Task&#xff09;2.进程控制块抽象(PCB Process Control Block)3.进程调度(Process Scheduling&#xff09;4.内存管理&#xff08…

知识点回顾(一)

1.final,finally ,finalize final?修饰符&#xff08;关键字&#xff09;如果一个类被声明为final&#xff0c;意味着它不能再派生出新的子类&#xff0c;不能作为父类被继承。因此一个类不能既被声明为 abstract的&#xff0c;又被声明为final的。将变量或方法声明为final&…

ChatGPT潜能无限:多个震撼应用场景一一揭晓

ChatGPT 具有对个人、公司和各个行业非常有用的各种应用程序。在本文中&#xff0c;我们继续解释ChatGPT 应用&#xff08;基础应用场景&#xff0c;请点击这里查看&#xff09;。 看完此篇文章中&#xff0c;你会非常惊讶于起潜能无限的应用场景及其强大的功能&#xff0c;那…

Nginx之rewrite实现URL重写

1.开篇 rewrite是nginx服务器提供的一个重要功能&#xff0c;用于实现URL的重写。例如我们访问https://aa.qq.com&#xff0c;打开的是https://age.qq.com/&#xff0c;这就是使用URL重写的特性来实现的。 ngx_http_rewrite_module为实现URL重写提供了指令支持。 官方文档地…

ChatGPT教程(终极版)

新建了一个网站 https://ai.weoknow.com/ 每天给大家更新可用的国内可用chatGPT 这是一篇姗姗来迟的ChatGPT教程。 小白对ChatGPT的介绍足以让你阅读我的文章。 如果你已经使用过ChatGPT&#xff0c;那么祝贺你发现了宝藏。未来的先进技术一定会帮助你有所收获。 前提是你可…

我的『1024』创作纪念日

记得&#xff0c;2020年07月22日我撰写了第1篇技术博客&#xff1a;《遗传算法实例解析》在这平凡的一天&#xff0c;我赋予了它不平凡的意义也许是立志成为一名专业T作者、也许是记录一段刚实践的经验但在那一刻&#xff0c;我已在创作这趟旅程中出发今天&#xff0c;是我成为…

百度蜘蛛简介

百度蜘蛛简介 工作机制百度蜘蛛的工作要素百度蜘蛛原理的应用Baiduspider对一个网站服务器造成的访问压力如何&#xff1f;Baiduspider多长时间之后会重新抓取我的网页&#xff1f; 工作机制 百度蜘蛛的构建的原理。搜索引擎构建一个调度程序&#xff0c;来调度百度蜘蛛的工作…

2023.5.13>>Eclipse+exe4j打包Java项目及获取exe所在文件的路径

Eclipseexe4j打包Java项目及获取exe所在文件的路径 1、打包exe文件1.1 打jar包1.2 打包exe2、在程序中获取exe所在路径3、遇到问题4、JDK version和class file version(Class编译版本号)对应关系5、参考文章 1、打包exe文件 1.1 打jar包 右单击项目选择“Export…” 1.2…

软考A计划-真题-分类精讲汇总-第三章(数据库)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

小程序开发中的插件、组件、控件到底有什么区别?

小程序插件代码由一些自定义组件和 JS 代码文件构成&#xff0c;插件开发者在发布插件时&#xff0c;这些代码被上传到后台保存起来。当小程序使用插件时&#xff0c;使用者需填写插件的 AppID 和版本号&#xff0c;就可从后台获取相应的插件代码。小程序代码编译时&#xff0c…

基于 CentOS 7 构建 LVS-DR 群集

如有错误&#xff0c;敬请谅解&#xff01; 此文章仅为本人学习笔记&#xff0c;仅供参考&#xff0c;如有冒犯&#xff0c;请联系作者删除&#xff01;&#xff01; 前言&#xff1a; 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式其各自的优势 DR 模式 原理&#xff1a;首先…

Hadoop之block切片

切片是一个逻辑概念 在不改变现在数据存储的情况下&#xff0c;可以控制参与计算的节点数目 通过切片大小可以达到控制计算节点数量的目的 有多少个切片就会执行多少个Map任务 hdfs上数据存储的一个单元,同一个文件中块的大小都是相同的 因为数据存储到HDFS上不可变&#xff0…

Qt--QString字符串类、QTimer定时器类

目录 1. QString 字符串类 dialog.cpp 2. 容器类 2.1 顺序容器 QList 示例代码&#xff1a; student.h student.cpp dialog.h dialog.cpp 运行结果&#xff1a; 2.2 关联容器 QMap 示例代码&#xff1a; dialog.h dialog.cpp 运行结果&#xff1a; 3. Qt类型 3.1 跨平台数据类型…

中断相关内容大全

中断基本概念&#xff1a;程序中断指计算机执行现行程序过程中&#xff0c;出现某种急需处理的异常情况或特殊请求&#xff0c;CPU暂时中止现行程序&#xff0c;而转去对这些异常情况或特殊请求进行处理&#xff0c;处理完毕后CPU又自动返回到现行程序的断点处&#xff0c;继续…

【刷题之路】LeetCode24——详解两两交换链表中的结点的细节

一、题目描述 原题链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/comments/ 题目描述&#xff1a;给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&am…

linux下将结果保存为图片,因为服务器是命令行界面,无法弹出窗口

解决方法来自GitHub&#xff1a;https://github.com/open-mmlab/mmdetection/issues/1405 The code below can show and save image with result. import mmcv import cv2 from mmcv.runner import load_checkpoint from mmdet.models import build_detector from mmdet.apis i…

C语言结构体位域

目录 一、C语言位域是什么&#xff1f; 二、位域详解 定义格式&#xff1a; 1. 数据类型排序改变&#xff0c;位域长度不变 2. 数据类型排序不变&#xff0c;位域长度改变 3.根据以上代码的验证可以得出以下计算位域结构体数据的方法: 三.位域的结构体数据如何进行print…