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

CSS学习记录13

CSS组合器

组合器是解释选择器之间关系的某种机制。CSS选择器可以包含多个简单选择器。在简单选择器之间,我们可以包含一个组合器。

CSS中有四种不同的组合器:

  • 后代组合器(空格)
  • 子选择器(>)
  • 相邻兄弟选择器(+)
  • 通用兄弟选择器(~)

后代选择器

后代选择器匹配属于指定元素后代的所有元素。下面的例子选择<div> 元素内的所有<p> 元素:

div p {background-color: yellow;
}

子选择器

子选择器匹配属于指定元素子元素的所有元素。下面的例子选择属于<div>元素子元素的所有<p>元素:

div > p {background-color: yellow;
}

相邻兄弟选择器

相邻兄弟选择器匹配所有作为指定元素的相邻同级的元素。兄弟(同级)元素必须具有相同的父元素,“相邻”的意思是“紧随其后”。下面的例子选择紧随<div>元素之后的所有<p> 元素:

div + p {background-color: yellow;
}

通用兄弟选择器

通用兄弟选择器匹配属于指定元素的统计元素的所有元素。下面的例子选择属于<div>元素的统计元素的所有<p>元素:

div ~ p {background-color: yellow;
}

 CSS伪类

伪类用于定义元素的特殊状态。例如,它可以用于:

  • 设置鼠标悬停在元素时的样式
  • 为已访问和未访问链接设置不同的样式
  • 设置元素获得焦点时的样式

伪类的语法

selector:pseudo-class {property: value;
}

锚伪类

链接能够以不同的方式显示:

/* 未访问的链接 */
a:link {color: #FF0000;
}/* 已访问的链接 */
a:visited {color: #00FF00;
}/* 鼠标悬停链接 */
a:hover {color: #FF00FF;
}/* 已选择的链接 */
a:active {color: #0000FF;
}

注意:a:hover 必须在CSS定义中的 a:link 和 a:visited 之后,才能生效! a:active 必须在CSS定义中的a:hover 之后才能生效!伪类名称对大小写不敏感。

伪类和CSS类

伪类可以与CSS结合使用:当您将鼠标悬停在例子中的链接上时,它会改变颜色:

a.highlight:hover {color: #ff0000;
}

悬停在<div>上

在<div>元素上使用:hover伪类的实例:

div:hover {background-color: blue;
}

简单的工具提示悬停

把鼠标悬停到<div>元素以显示<p>元素(类似工具提示的效果):

p {display: none;background-color: yellow;padding: 20px;
}div:hover p {display: block;
}

CSS:first-child伪类

 :first-child伪类与指定的元素匹配:该元素时另一个元素的第一个子元素。在下面的例子中,选择器匹配作为任何元素的第一个子元素的任何<p>元素:

p:first-child {color: blue;
}

匹配所有<p>元素中的首个<i>元素

 在下面的例子中,选择器匹配所有<p>元素的第一个<i>元素:

p i:first-child {color: blue;
}

匹配所有首个<p>元素中的所有<i>元素

在下面的例子中,选择器匹配作为另一个元素的第一个子元素的<p>元素中的所有<i>元素:

p:first-child i {color: blue;
}

CSS - :lang伪类

:lang伪类允许您为不同的语言定义特殊的规则。在下面的例子中,:lang为属性为lang="en"的<q>元素定义引号:

  q:lang(en) {quotes: "~" "~";}

所有CSS伪类 

选择器例子例子描述
:activea:active选择活动的链接。
:checkedinput:checked选择每个被选中的 <input> 元素。
:disabledinput:disabled选择每个被禁用的 <input> 元素。
:emptyp:empty选择没有子元素的每个 <p> 元素。
:enabledinput:enabled选择每个已启用的 <input> 元素。
:first-childp:first-child选择作为其父的首个子元素的每个 <p> 元素。
:first-of-typep:first-of-type选择作为其父的首个 <p> 元素的每个 <p> 元素。
:focusinput:focus选择获得焦点的 <input> 元素。
:hovera:hover选择鼠标悬停其上的链接。
:in-rangeinput:in-range选择具有指定范围内的值的 <input> 元素。
:invalidinput:invalid选择所有具有无效值的 <input> 元素。
:lang(language)p:lang(it)选择每个 lang 属性值以 "it" 开头的 <p> 元素。
:last-childp:last-child选择作为其父的最后一个子元素的每个 <p> 元素。
:last-of-typep:last-of-type选择作为其父的最后一个 <p> 元素的每个 <p> 元素。
:linka:link选择所有未被访问的链接。
:not(selector):not(p)选择每个非 <p> 元素的元素。
:nth-child(n)p:nth-child(2)选择作为其父的第二个子元素的每个 <p> 元素。
:nth-last-child(n)p:nth-last-child(2)选择作为父的第二个子元素的每个<p>元素,从最后一个子元素计数。
:nth-last-of-type(n)p:nth-last-of-type(2)选择作为父的第二个<p>元素的每个<p>元素,从最后一个子元素计数
:nth-of-type(n)p:nth-of-type(2)选择作为其父的第二个 <p> 元素的每个 <p> 元素。
:only-of-type(n)p:only-of-type选择作为其父的唯一 <p> 元素的每个 <p> 元素。
:only-childp:only-child选择作为其父的唯一子元素的 <p> 元素。
:optionalinput:optional选择不带 "required" 属性的 <input> 元素。
:out-of-rangeinput:out-of-range选择值在指定范围之外的 <input> 元素。
:read-onlyinput:read-only选择指定了 "readonly" 属性的 <input> 元素。
:read-writeinput:read-write选择不带 "readonly" 属性的 <input> 元素。
:requiredinput:required选择指定了 "required" 属性的 <input> 元素。
:rootroot选择元素的根元素。
:target#news:target选择当前活动的 #news 元素(单击包含该锚名称的 URL)。
:validinput:valid选择所有具有有效值的 <input> 元素。
:visiteda:visited选择所有已访问的链接。

:nth-child(n) 和 :nth-of-type的区别 

:nth-child(n)会根据元素在器父元素是中的位置选择元素。它会选择所有的子元素,不论类型是什么。

:nth-of-type(n)时根据元素的类型在其父元素中的位置选择元素。它只会选择指定类型的元素。

  • :nth-child(n) 关注位置,不论元素类型;
  • :nth-of-type(n) 专注于元素类型在同类型元素中的位置。

 CSS伪元素

css伪元素用于设置元素指定部分的样式。

例如,它可用于:

  • 设置元素的首字母、首行的样式
  • 在元素的内容之前或之后插入内容

语法

伪元素的语法:

selector::pseudo-element {property: value;
}

:first-line 伪元素

:first-line伪元素用于向文本的首行添加特殊样式。下面的例子为所有<p>元素中的首行添加样式:

p::first-line {color: #ff0000;font-variant: small-caps;
}

注意:::first-line伪元素只能应用于块级元素。

以下属性适用于::first-line伪元素:

  • 字体属性
  • 颜色属性
  • 背景属性
  • word-spacing
  • letter-spacing
  • text-decoration
  • vertical-align
  • text-transform
  • line-height
  • clear

请注意双冒号表示法 - ::first-line 对比 :first-line。 在CSS3中,双元素取代了伪元素的单冒号表示法。这是W3C试图区分伪类和伪元素的尝试。在CSS2和CSS1中,伪类和伪元素都使用了单冒号语法。为了向后兼容,CSS2和CSS1伪元素可接受单冒号语法。

::first-letter 伪元素

::first-letter 伪元素用于向文本的首字母添加特殊样式。下面的例子设置所有<p>元素中文本的首字母格式:

p::first-letter {color: #ff0000;font-size: xx-large;
}

注意:::first-letter伪元素只适用于块级元素。

下面的属性适用于 ::first-letter 伪元素:

  • 字体属性
  • 颜色属性
  • 背景属性
  • 外边距属性
  • 内边距属性
  • 边框属性
  • text-decoration
  • vertical-align(仅当 "float" 为 "none")
  • text-transform
  • line-height
  • float
  • clear

伪元素和CSS类

伪元素可以与CSS类结合使用:

p.intro::first-letter {color: #ff0000;font-size: 200%;
}

多个伪元素

也可以组合几个伪元素。

在下面的例子中,段落的第一个字母将是红色,字体大小为xx-large。第一行的其余部分将变成蓝色,并使用小型大写字母。该段的其余部分将是默认的字体大小和颜色:

p::first-letter {color: #ff0000;font-size: xx-large;
}p::first-line {color: #0000ff;font-variant: small-caps;
}

CSS - ::before伪元素

::before 伪元素可用于在元素内容之前插入一些内容。

下面的例子在每个<h1>元素的内容之前插入一副图像:

h1::before {content: url(smiley.gif);
}

CSS- ::after伪元素

::after伪元素可用于在元素内容之后插入一些内容。

h1::after {content: url(smiley.gif);
}

CSS-::selection 伪元素

::selection 伪元素匹配用户选择的元素部分。

以下 CSS 属性可以应用于::selection:

  • color
  • background
  • cursor
  • outline
::selection {color: red; background: yellow;
}

 所有CSS伪元素

选择器例子例子描述
:afterp::after在每个 <p> 元素之后插入内容。
:beforep::before在每个 <p> 元素之前插入内容。
:first-letterp::first-letter选择每个 <p> 元素的首字母。
:first-linep::first-line选择每个 <p> 元素的首行。
:Selectionp::selection选择用户选择的元素部分。

相关文章:

CSS学习记录13

CSS组合器 组合器是解释选择器之间关系的某种机制。CSS选择器可以包含多个简单选择器。在简单选择器之间&#xff0c;我们可以包含一个组合器。 CSS中有四种不同的组合器&#xff1a; 后代组合器&#xff08;空格&#xff09;子选择器&#xff08;>)相邻兄弟选择器&#…...

CAD图纸加密软件哪个最好用 | 安全可靠的解决方案

CAD图纸加密软件哪个最好用 | 安全可靠的解决方案 图纸文件泄密事件频发&#xff0c;给企业带来了严重的商业损失、技术秘密泄露、公共安全威胁以及信誉损害。 为了应对这一挑战&#xff0c;选择一款既安全可靠又易于使用的CAD图纸加密软件显得尤为重要。 在众多加密软件中&a…...

基于SSM+Vue的宠物医院管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

处理VUE框架中,ElementUI控件u-table空值排序问题

按照以下步骤进行操作&#xff1a; 分离数据&#xff1a;首先&#xff0c;将原始数据按照username为空和非空进行分类。对非空表进行排序&#xff1a;对非空表按照username进行升序排序。合并表格&#xff1a;将空表和排序后的非空表合并&#xff0c;保证空表挂接在排序后的非…...

专业140+总分400+北京理工大学826信号处理导论考研经验北理工电子信息与通信工程,真题,大纲,参考书。

考研总分400&#xff0c;专业826信号处理导论&#xff08;信号与系统和dsp&#xff09;140&#xff0c;成功上岸北理工&#xff0c;虽然已经一段时间&#xff0c;但是后劲很大&#xff0c;每每回想还是昨日事&#xff0c;群里同学多次要求分享自己的一些经验&#xff0c;感谢大…...

Rocky DEM tutorial5_Drop Weight test_落锤试验

tutorial5_Drop Weight test_落锤实验 文章目录 tutorial5_Drop Weight test_落锤实验0. 目的1. 模型介绍2. 模型设置2.1 设置Physics2.2 导入几何2.3 定义进口面2.4 设置motion frames2.5 设置边界条件2.6 设置材料2.7 设置 materials interactions2.8 设置 Particles2.9 设置…...

C#,在 C# 语言中将 LaTeX 转换为 PNG 或 JPG 图像

在 C 语言中将 LaTeX 转换为 PNG 或 JPG 图像# 12月 28&#xff0c; 2021 2 分钟 法尔汉拉扎 在 C 语言中将 TeX 转换为 PNG JPG 图像# TeX 格式用于处理技术和科学文件。它通常用于交流或发布此类文档。在某些情况下&#xff0c;您可能需要将 TeX 文件渲染为 PNG 或 JPG 等图像…...

Elasticsearch:Mapping-映射

一、创建索引 自动生成索引字段数据类型即自动映射 创建之前&#xff0c;先删除索引防止重复创建 删除索引: DELETE product_mapping创建索引 product_mapping并且赋值 PUT /product_mapping/_doc/1 {"name": "xiaomi phone","desc": "s…...

安装Tensorflow@FreeBSD(失败)

pkg 安装&#xff0c;失败&#xff0c;找不到:pkg: No packages available to install matching science/py-tensorflow have been found in the repositories ports安装 cd /usr/ports/science/py-tensorflow make install 报错: 按照提示重新发命令 make DISABLE_VULNERA…...

API接口示例:电商商品评论数据

当然&#xff0c;以下是一个简化的电商商品评论数据API接口的示例。请注意&#xff0c;这只是一个示例&#xff0c;实际的API接口可能会更加复杂&#xff0c;并且会包含更多的验证、错误处理和安全措施。 API接口示例&#xff1a;电商商品评论数据 基础信息 API名称&#xf…...

使用idea创建一个JAVA WEB项目

文章目录 1. javaweb项目简介2. 创建2.1 idea新建项目2.2 选择&#xff0c;命名2.3 打开2.4 选择tomcat运行2.5 结果 3. 总结 1. javaweb项目简介 JavaWeb项目是一种基于Java技术的Web应用程序&#xff0c;主要用于开发动态网页和Web服务。这种项目能够构建在Java技术栈之上&a…...

解决MyBatis在 Oracle 中使用 IN 语句不能超过 1000 问题

在 Oracle 数据库中&#xff0c;IN 语句常用于查询某个字段是否属于一组特定的值。对于大多数开发者而言&#xff0c;IN 是一种简单直观的查询方式&#xff0c;能够提升开发效率&#xff0c;避免过多的 OR 语句。然而&#xff0c;许多人在使用 IN 语句时可能遇到一个问题&#…...

最长递增子序列两种算法实现(动态规划,二分查找)

恭喜你刷到博主 DP 经典题目详解部分第一期&#xff0c;想学好 DP 请关注订阅&#xff0c;会持续更新&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 建议先阅读DP算法入门 00001 最长递增子序列&#xff08;Longest Increasing Subsequence&#xff0c;简写…...

Deepmotion技术浅析(三):特征提取

DeepMotion 的特征提取模块是整个动作捕捉和 3D 追踪流程的基础&#xff0c;负责从输入的视频帧中提取出具有代表性的视觉特征。这些特征将被用于人体姿态估计、动作识别、3D 重建等后续任务。 包括&#xff1a; 1.图像特征提取 卷积神经网络&#xff08;CNN&#xff09; 卷…...

国内CentOS使用yum安装docker和docker-compose

安装docker 安装需要的软件包&#xff0c; yum-util 提供yum-config-manager功能&#xff0c;另两个是devicemapper驱动依赖 yum install -y yum-utils device-mapper-persistent-data lvm2下载yum源采用阿里云的镜像源 wget -O /etc/yum.repos.d/docker-ce.repo https://mi…...

python学opencv|读取图像(十三)BGR图像和HSV图像互相转换深入

【1】引言 前序学习过程中&#xff0c;我们偶然发现&#xff1a;如果原始图像是png格式&#xff0c;将其从BGR转向HSV&#xff0c;再从HSV转回BGR后&#xff0c;图像的效果要好于JPG格式。 文章链接为&#xff1a; python学opencv|读取图像&#xff08;十二&#xff09;BGR图…...

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载&#xff0c;在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧&#xff01; List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…...

面向对象设计规则和各类设计模式

面向对象设计&#xff08;Object-Oriented Design, OOD&#xff09;是一种软件设计方法论&#xff0c;它使用对象、类、继承、封装、多态等概念来组织代码。面向对象设计的核心目标是提高软件的可维护性、可扩展性和复用性。在面向对象设计中&#xff0c;遵循一定的设计原则和模…...

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(六)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(六) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…...

利用Docker分层构建优化镜像大小

合适docker镜像文件大小不仅影响容器启动效率&#xff0c;也影响资源占用效率。本文介绍如何利用分层方式构建docker镜像&#xff0c;采用多种方式避免镜像文件太大而影响性能。 Docker 镜像大小优化的重要性 资源利用效率 较小的镜像文件在存储和传输过程中占用更少的空间和带…...

python random

# Python 的 random 模块&#xff1a;不只是“随机”那么简单 很多人第一次接触 Python 的 random 模块&#xff0c;大概都是在写猜数字游戏的时候。输入几行代码&#xff0c;屏幕上跳出一个随机数&#xff0c;感觉像是给程序注入了某种“不确定的灵魂”。但如果你认为 random …...

Android compose 可见性动画未执行问题修复

接着修改待办事项demo&#xff0c; 动画有问题&#xff0c; 导致初始不显示数据&#xff0c;其实数据库是有数据的。原代码如下&#xff1a;package com.example.testcompose1import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.Fa…...

seo关键词查询如何结合竞争对手分析

SEO关键词查询如何结合竞争对手分析 在当今数字营销的激烈竞争中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为了提升网站流量和品牌知名度的关键手段。而在SEO的实践过程中&#xff0c;关键词查询和竞争对手分析往往被认为是最重要的两大环节。SEO关键词查询…...

B站缓存视频合并终极指南:让离线观看体验完整如初

B站缓存视频合并终极指南&#xff1a;让离线观看体验完整如初 【免费下载链接】BilibiliCacheVideoMerge 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCacheVideoMerge 你是否曾经为B站缓存视频无法完整播放而烦恼&#xff1f;那些精心收藏的番剧、学习教程&…...

民宿主必看!用这个小程序系统3天上线你的酒店预订平台(含WIFI管理+数据分析)

民宿数字化转型实战&#xff1a;3天打造智能预订平台全攻略 站在莫干山民宿的露台上&#xff0c;老板娘林姐望着满房的预订表却愁眉不展——电话接单混乱、WIFI密码总被问、客人反馈石沉大海...这场景是否似曾相识&#xff1f;如今&#xff0c;一套轻量级解决方案正在改变这个…...

中国科技发展与华人贡献解析

中国科技发展与华人贡献解析纵观全球科技发展的壮阔历程&#xff0c;华人力量始终是不可或缺的核心支柱&#xff0c;中国科技的崛起与腾飞&#xff0c;既离不开本土科研工作者的深耕细作&#xff0c;更得益于海外华人的默默坚守与无私奉献。然而&#xff0c;长期以来&#xff0…...

测评 ASR 歌词生成模型

1. 测评背景与目标 业务需求&#xff1a; 目前有大批量的 MP3 音频需要匹配歌词。网络公开渠道能爬取到的歌词占比不足 50%&#xff0c;因此必须采用 ASR&#xff08;自动语音识别&#xff09;生成模式来补全缺口。 核心痛点&#xff1a; 现有的商业 API 调用成本较高&#xf…...

小个子春天怎么穿?记住这四二法则显高十厘米

小个子女生的春天穿搭&#xff0c;核心诉求只有一个&#xff1a;显高。但显高不等于穿高跟鞋&#xff0c;也不等于把衣服改短。真正的显高是调整比例&#xff0c;让视觉重心上移。我总结了一个“四二法则”&#xff0c;四个技巧加两个雷区&#xff0c;照着穿&#xff0c;视觉上…...

绝区零一条龙:AI驱动的游戏体验革新工具

绝区零一条龙&#xff1a;AI驱动的游戏体验革新工具 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 在快节奏的现代生活中&…...

005-SpringSecurity-Demo 配置外部文件映射

SpringSecurity-Demo 配置外部文件映射一、需求说明二、实现步骤1. 定义配置属性类&#xff08;读取yml配置&#xff09;2. 编写资源映射配置3. application.yml 配置&#xff08;路径可自定义&#xff09;三、原理讲解&#xff08;一看就懂&#xff09;四、使用示例五、路径写…...