CSS基础-12-伪类和伪元素-01-伪类(常见伪类选择器、动态伪类选择器、UI元素状态伪类选择器、结构伪类选择器,anchor伪类示例,first-child伪类示例、lang伪类示例)

1. 伪类

1.1 概念

CSS 伪类是用来添加一些选择器的特殊效果。
由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和 class 有些类似,但它是基于文档之外的抽象,所以叫伪类。

1.2 常见伪类选择器

动态伪类选择器

注意:a 标签的4种伪类选择器的顺序为:a:link ,a:visited,a:hover ,a:active,否则无效

  • :link。元素被定义了超链接但并未被访问过
  • :visited。元素被定义了超链接并已被访问过
  • :active。元素被激活
  • :hover。鼠标悬停
  • :focus。元素获取焦点

UI 元素状态伪类选择器

UI 元素状态伪类选择器主要是针对 Form 表单元素进行操作,最常见的使用方式如设置 type="text" 有 enable 和 disabled 两种状态,enable 为可写状态,disabled 为不可状态。

  • :checked。选中的复选按钮或者单选按钮表单元素
  • :enabled。所有启用的表单元素
  • :disabled。所有禁用的表单元素

结构伪类选择器

使用结构伪类选择器的好处是可以根据元素在文档中所处的位置,来动态地选择元素,从而减少 HTML 文档对 id 或类的依赖,有助于保持代码干净整洁。
注意:子元素的序号是从 1 开始的。

  • :fisrt-child。父元素的第一个子元素
  • :last-child。父元素的最后一个子元素的元素
  • :root。元素所在文档的根元素。

在 HTML 文档中,根元素始终是 html,此时该选择器与 html 类型选择器匹配的内容相同

  • :nth-child(n)。父元素的第 n 个子元素。

其中 n 可以是整数(1,2,3)、关键字(even,odd)、也可以是公式(2n+1),而且 n 值起始值为 1,而不是 0。

  • :nth-last-child(n):父元素的倒数第 n 个子元素。

此选择器与 :nth-child(n) 选择器计算顺序刚好相反,但使用方法都是一样的,其中 :nth-last-child(1) 始终匹配最后一个元素,与 last-child 等同。

  • :nth-of-type(n) 。父元素内具有指定类型的第 n 个元素
  • :nth-last-of-type(n)。父元素内具有指定类型的倒数第 n 个元素
  • :first-of-type。父元素内具有指定类型的第一个元素,与 nth-of-type(1) 等同
  • :last-of-tye 。父元素内具有指定类型的最后一个元素,与 :nth-last-of-type(1) 等同
  • :only-child 。父元素只包含一个子元素,且该子元素匹配元素
  • :only-of-type。选择父元素只包含一个同类型子元素,且该子元素匹配选择元素
  • :empty。选择没有子元素的元素,而且该元素也不包含任何文本节点

2. anchor伪类

作用:链接的不同状态都可以以不同的方式显示

2.1 链接样式

a:link {color:#000000;}      /* 未访问链接*/
a:visited {color:#00FF00;}  /* 已访问链接 */
a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
a:active {color:#0000FF;}  /* 鼠标点击时 */

说明:
a:hover 必须跟在 a:link 和 a:visited后面
a:active 必须跟在 a:hover后面

2.2 下划线

顺序同上

a:link {text-decoration:none;}    /* unvisited link */
a:visited {text-decoration:none;} /* visited link */
a:hover {text-decoration:underline;}   /* mouse over link */
a:active {text-decoration:underline;}  /* selected link */

2.3 背景颜色

a:link {background-color:#B2FF99;}
a:visited {background-color:#FFFF85;}
a:hover {background-color:#FF704D;}
a:active {background-color:#FF704D;}

3. first-child 伪类

作用:选择父元素的第一个子元素

3.1 匹配第一个 p 元素

  • 语法
p:first-child { …… }
  • 示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>hello world(runoob.com)</title> 
<style>
p:first-child
{
    color:red;
} 
</style>
</head>

<body>
<p>第一个p</p>
<p>第二个p</p>
<p>第三个p</p>
</body>
</html>
  • 结果显示


    image.png

3.2 匹配所有< p > 元素中的第一个 < i > 元素

  • 语法
p > i:first-child  { …… }
  • 示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>hello world</title> 
<style>
p > i:first-child
{
    color:blue;
} 
</style>
</head>

<body>
<p> |=p元素=| <i>|=第一个i=| </i>|=继续p=|<i>|=第二个i=|</i>|=继续p=|</p>
<p> |=p元素=| <i>|=第一个i=| </i>|=继续p=|<i>|=第二个i=|</i>|=继续p=|</p>
</body>
</html>
  • 结果显示


    image.png

3.3 匹配第一个子元素的 < p > 中所有 < i > 元素

  • 语法
p:first-child i  { …… }
  • 示例
    同 2.2 做修改
  • 结果显示


    image.png

4. lang 伪类

作用:不同的语言定义特殊的规则

  • 示例

为属性值为 no 的q元素定义引号的类型

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"> 
<title>玄德公记事</title> 
<style>
q:lang(no)
{
    quotes: "\\" "/";
}
</style>
</head>

<body>
<p>曹贼说: <q lang="no">天下英雄,唯使君与操耳。</q> 当时吓死宝宝了</p>
</body>
</html>
  • 显示结果

引号被替换为\ /

image.png
  • 示例

input 使用focus,输入时元素受影响,本示例背景变为黄色。

<html>
<head>
<meta charset="utf-8"> 
<title>hello world</title> 
<style>
input:focus
{
    background-color:yellow;
}
</style>
</head>

<body>
<form action="demo-form.php" method="get">
First name: <input type="text" name="fname" /><br>
Last name: <input type="text" name="lname" /><br>
<input type="submit" value="提交" />
</form>

</body>
</html>
  • 结果显示


    image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容