上述语法表示选择元素1里面的所有元素2(后代元素)。
-
元素1和元素2中间用空格隔开
-
元素1是父级,元素2是子级,最终选择的是元素2
-
元素2可以是儿子,也可以是孙子等,只要是元素1的后代即可
-
元素1和元素2可以是任意基础选择器
这里不会变
- 我是ol的孩子
- 我是ol的孩子
- 我是ol的孩子
xpp
- 我是ul的孩子
- 我是ul的孩子
- 我是ul的孩子
- 我是ul的孩子
- 我是ul的孩子
- 我是ul的孩子red
2.子选择器(重要)
子元素选择器只能作为某元素的最近一级子元素。简单理解就是选择亲儿子元素。
上述语法表示选择元素1里面的所有直接后代(子元素)元素2.
-
元素1和元素2中间用大于号隔开
-
元素1是父级,元素2是子级,最终选择的是元素2
-
元素2必须是亲儿子,其孙子,重孙之类都不归它管
老北京来了 3.并集选择器(重要)
并集选择器可以选择多组标签,同时为他们定义相同的样式。通常用于集体声明。
并集选择器是各选择器通过英文逗号连接而成,任何形式的选择器都可以作为并集选择器的一部分。
-
元素1和元素2中间用逗号隔开
-
逗号可以理解为和的意思
-
并集选择器通常用于集体声明
老北京来了 熊大熊二
光头强
-
- 小猪佩奇
- 猪爸爸
- 猪妈妈
4.伪类选择器
伪类选择器用于向某些选择器添加效果,比如给链接添加特殊效果,或选择你第一个,第n个元素。
伪类选择器书写最大的特点是用冒号(:)表示
- 链接伪类选择器
注意事项:为确保生效,请按照LVHA的顺序声明:link,visited,hover,active
链接伪类选择器实际开发中的写法:
老北京来了 - focus伪类选择器
focus伪类选择器用于选取获得焦点的表单元素。
焦点就是光标,一般情况类表单元素才能获取,因此这个选择器主要针对于表单元素来说。
老北京来了 5.复合选择器总结
| 选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |
| — | — | — | — | — |
| 后代选择器 | 用来选择后代元素 | 可以是子孙后代 | 较多 | 符号是空格 .nav a |
| 子代选择器 | 选择最近一级的元素 | 只选亲儿子 | 较少 | 符号是大于号 .nav>p |
| 并集选择器 | 选择某些相同样式的元素 | 可以用于集体声明 | 较多 | 符号是逗号 .nava,.header |
| 链接伪类选择器 | 选择不同状态的链接 | 跟链接相关 | 较多 | 重点记住a{}和a:hover实际开发的写法 |
| :focus选择器 | 选择获得光标的表单 | 跟表单相关 | 较少 | input:focus记住这个写法 |
元素显示模式就是元素(标签)以什么方式进行显示,比如
<div>
自己占一行,比如一行可以放多个<span>
。HTML元素一般分为块元素和行内元素两种类型。
1.块元素
常见的块元素有
<h1>~<h6>,<p>,<div>,<ul>,<ol>,<li>
等。其中**<div>
是最典型的块元素**。块元素的特点:
-
比较霸道,自己独占一行。
-
高度,宽度,外边距以及内边距都可以控制。
-
宽度默认是容器(父级宽度)的100%。
-
是一个容器及盒子,里面可以放行内或者块级元素。
注意:
-
文字类的元素不能使用块级元素。
-
p标签主要用于存放文字,因此里面不能放块级元素,特别是不能放
<div>
。 -
同理
<h1>~<h6>
等都是文字类块级标签,里面也不能放其它块级元素。
2.行内元素
常用的行内元素有
<a>,<strong>,<b>,<em>,<i>,<del>,<s>,<ins>,<u>,<span>
等,其中**<span>
标签是最典型的行内元素**。有的地方也将行内元素称为内联元素。行内元素的特点:
-
相邻行内元素在一行上,一行可以显示多个。
-
高,宽直接设置无效。
-
默认宽度就是它本身内容的宽度。
-
行内元素只能容纳文本或其他行内元素。
注意:
-
链接里面不能再放链接
-
特殊情况链接
<a>
里面可以放块级元素,但会给转换一下块级模式最安全。
3.行内块元素
在行内元素中有几个特殊标签------
<img/>
,<inout/>
,<td>
,它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素。行内块元素的特点:
-
和相邻行内元素(行内块)在一行上,但是它们之间会有空白缝隙。一行可以显示多个(行内元素特点)。
-
默认宽度就是它本身内容的宽度(行内元素特点)。
-
高度,行高,外边距以及内边距都可以控制(块级元素特点)。
4.元素显示模式总结
| 元素模式 | 元素排列 | 设置样式 | 默认宽度 | 包含 |
| — | — | — | — | — |
| 块级元素 | 一行只能放一个块级元素 | 可以设置宽度,高度 | 容器的100% | 容器级可以包含任何标签 |
| 行内元素 | 一行可以放多个行内元素 | 不可以直接设置高度,宽度 | 它本身内容的宽度 | 容纳文本或者其它行内元素 |
| 行内块元素 | 一行放多个行内块元素 | 可以设置宽度和高度 | 它本身内容的宽度 | |
5.元素显示模式转换
特殊情况下,我们需要元素模式的转换,简单理解:一个模式的元素需要另一种模式的特性比如想要增加理解
<a>
的触发范围。-
转换为块元素:
display:block
-
转换为行内元素:
display:inline
-
转换为行内块:
display:inline-block
案例
老北京来了