
在 css 中,选择器可以分为基础选择器和复合选择器,复合选择器是由基础选择器组合而成,从而更准确、更高效选择目标元素。
复合选择器可以分为:后代选择器、子选择器、并集选择器、伪类选择器等
根据元素的包含关系,我们将元素可以分为:父元素、子元素、祖先元素、后代元素。

<table> 元素是其他元素的祖先元素,也就是说 <thead>、<tbody>、<tr>、<th>、<td> 元素都是他的后代。
并且 <table> 是 <thead> 和 <tbody> 元素的父元素,所以他们是 <table> 的子元素。
同理,<thead> 是 <tr> 的父元素,<tr> 是 <thead> 的子元素。
后代选择器可以选择祖先元素的后代元素,中间用空格间隔。
css
祖先元素 后代元素1 后代元素2 {
属性1: 属性值1;
属性2: 属性值2;
}
注意点
html(要求让 ul 里的 li 字体颜色为红色)
<body>
<ul>
<li>1li>
<li>2li>
<li>3li>
ul>
<ol>
<li>1li>
<li>2li>
<li>3li>
ol>
body>
css
效果

子选择器可以选择父元素内的子元素,元素与元素之间使用 >。
css
父元素>子元素 {
属性1: 属性值1;
属性2: 属性值2;
}
注意点
html(要求让 ol 里的 li 字体颜色为红色)
<body>
<ul>
<li>1li>
<li>2li>
<li>3li>
ul>
<ol>
<li>1li>
<li>2li>
<li>3li>
ol>
body>
css
效果

并集选择器可以选择多组元素,同时定义相同的样式。元素与元素用 , 隔开。
css【一般不这么写】
元素1,元素2 {
属性1: 属性值1;
属性2: 属性值2;
}
语法规范一般会竖着写(自动格式化保存会调整格式)
元素1,
元素2 {
属性1: 属性值1;
属性2: 属性值2;
}
注意点
html(要求用并集选择器让 ul 和 ol 里的 li 字体颜色同时为红色)
<body>
<ul>
<li>1li>
<li>2li>
<li>3li>
ul>
<ol>
<li>1li>
<li>2li>
<li>3li>
ol>
body>
css
效果

伪类选择器主要用来给一些选择器添加特殊效果🎆,比如给链接添加特殊效果,或者选择第一个,第n个元素。它用冒号(:)表示。
语法
a:link /* 超链接未访问时的状态 */
a:visited /* 超链接访问后的状态 */
a:hover /* 悬停状态 */
a:active /* 激活状态(按住鼠标不松开) */
注意点
html(要求让 a 未访问为黑色,鼠标停留时为绿色,点击按住不动为蓝色,访问后为红色)
<body>
<a href="#">百度a>
body>
css
效果
未访问

悬浮

点击按住不动

已访问

focus 伪类选择器用来选取获取焦点(光标)的表单元素。
一般该选择器只用于表单元素。
语法
input:focus {
属性1: 属性值1;
属性2: 属性值2;
}
html(要求点到哪个输入框就使其背景为红色)
<body>
<form action="">
<input type="text">
<input type="text">
<input type="text">
form>
body>
css
效果(点哪红哪)

本文主要学习黑马程序员pink老师的视频
如有错误,敬请指正,欢迎交流🤝,谢谢♪(・ω・)ノ