2025年3月14日 星期五 甲辰(龙)年 月十三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Html+Div+Css(前端)

CSS基础:4类组合选择器以及5个注意事项

时间:02-02来源:作者:点击数:22
CDSY,CDSY.XYZ

前言

要说组合选择器,我们先回顾下简单选择器。

CSS 中的简单选择器包括以下 4 种:

  1. 标签选择器(Element Selector):通过 HTML 元素名称作为选择器,如pdiva等。
  2. 类选择器(Class Selector):通过类名作为选择器,以.开头,如.red-text.btn等。
  3. ID 选择器(ID Selector):通过 ID 属性作为选择器,以#开头,如#header#content等。
  4. 通用选择器(Universal Selector):选择所有元素,使用*作为选择器。

而组合选择器是由多个简单选择器组合而成的选择器,用于更精确地选择 HTML 元素,尤其在一个页面内容多,网页也众多的场景下。那我们一起来看看吧。

4 类组合选择器

一、 后代选择器

(Descendant Selector):用空格分隔不同元素,选择某个元素的后代元素,如div pul li等。以下是 3 个使用后代选择器的 CSS 案例:

  1. 设置页面中所有(.content-box里面的 p 段落标签元素)的样式:
  • .content-box p {
  •   color#333/* 设置文字颜色 */
  •   font-size16px/* 设置字体大小 */
  •   line-height1.5/* 设置行高 */
  • }
  1. 设置导航栏中所有列表项(<li>元素)的样式:
  • .navbar li {
  •   display: inline-block; /* 设置为行内块级元素 */
  •   margin-right10px/* 设置右侧外边距 */
  • }
  1. 设置表格中所有表头单元格(<th>元素)的样式:
  • table th {
  •   background-color#f2f2f2/* 设置背景颜色 */
  •   color#333/* 设置文字颜色 */
  •   font-weight: bold; /* 设置字体加粗 */
  • }

二、 子元素选择器

(Child Selector):用>符号选择某个元素的直接子元素,如ul > lidiv > p等。以下是 3 个使用子元素选择器的 CSS 案例:

  1. 选择导航栏中直接的列表项(不包括子菜单):
  • .navbar > ul > li {
  •   display: inline-block;
  •   margin-right10px;
  • }
  1. 选择表格中直接的表头行(不包括表头中的单元格):
  • table > thead > tr {
  •   background-color#f2f2f2;
  •   color#333;
  •   font-weight: bold;
  • }
  1. 选择表单中的下拉选择框:
  • form > select {
  •   width200px;
  •   padding5px;
  •   border1px solid #ccc;
  • }

三、相邻兄弟选择器

(Adjacent Sibling Selector):用+符号选择紧接在某个元素后面的同级元素,如h2 + pdiv + p等。以下是 3 个使用相邻兄弟选择器的 CSS 案例:

  1. 选择文章标题后的第一个段落:
  • h2 + p {
  •   font-weight: bold;
  • }
  1. 选择导航栏中当前项后的下一个列表项:
  • .nav-item.current + .nav-item {
  •   font-weight: bold;
  • }
  1. 选择表格中第一行数据后的下一行数据:
  • tr + tr {
  •   background-color#f2f2f2;
  • }

四、通用兄弟选择器

(General Sibling Selector):用~符号选择某个元素后面所有同级元素,如h2 ~ pdiv ~ p等。

以下是 3 个使用通用兄弟选择器的 CSS 案例:

  1. 选择文章标题后的所有段落:
  • h2 ~ p {
  •   margin-top10px;
  • }
  1. 选择导航栏中当前项后的所有列表项:
  • .nav-item.current ~ .nav-item {
  •   opacity0.5;
  • }
  1. 选择表格中第一行数据后的所有行数据:
  • tr:first-child ~ tr {
  •   border-top1px solid #ccc;
  • }

如何选择这 4 种选择器?

在项目中选择合适的组合选择器取决于具体的需求和设计目标,以下是一些选择器写作的建议:

  1. 后代选择器(Descendant Selector):适合用于选择嵌套结构中的后代元素,例如选择特定容器内的子元素,或者选择文章内容中的段落和标题。
  2. 子元素选择器(Child Selector):适合用于选择某个元素的直接子元素,这在设计有嵌套结构的导航菜单或树形菜单时特别有用。
  3. 相邻兄弟选择器(Adjacent Sibling Selector):用于选择紧接在某个元素后面的同级元素,适合用于创建特定样式的相邻元素,例如列表项与列表项之间的分隔线。
  4. 通用兄弟选择器(General Sibling Selector):用于选择某个元素后面所有同级元素,适合用于处理表格中除第一行外的所有行、或者列表中除第一个列表项外的所有项的样式。

综合考虑项目的结构、设计需求以及选择器的特性,可以灵活运用这些组合选择器,提高样式的精准度和可维护性。

注意事项

写组合选择器需要注意什么呢,我认为有以下 5 个方面:

  1. 选择器的复杂度:组合选择器的复杂度越高,其匹配的元素也越具体。因此,在使用组合选择器时,应该根据实际需要和设计目标合理选择选择器的复杂度,避免过度嵌套和复杂的选择器结构。
  2. 选择器的可读性:选择器的命名应该具有一定的可读性和语义化,使得其他开发者能够快速理解选择器的作用和目的。选择器命名应该简洁明了,不宜过长或过于复杂。
  3. 避免选择器冲突:在编写组合选择器时,需要注意避免选择器冲突的问题,特别是在多人协作或引入第三方样式库的情况下。可以通过使用较具体的选择器、使用命名空间或者避免全局作用选择器等方式来减少选择器冲突。
  4. 灵活运用通用选择器:通用选择器(Universal Selector)可以用来选择页面上的所有元素,但过度使用通用选择器可能会影响页面性能。因此,在使用通用选择器时应该谨慎,尽量选择更具体的选择器来减少匹配元素的数量。
  5. 考虑选择器的权重:不同类型的选择器具有不同的权重,例如 ID 选择器的权重高于类选择器、属性选择器和标签选择器。在编写组合选择器时,需要考虑选择器的权重,避免样式被其他具有更高权重的选择器覆盖。关于这个权重问题,后面会写到。

总的来说,编写组合选择器需要综合考虑选择器的复杂度、可读性、避免冲突、权重以及性能等方面,保持选择器的简洁、明了和具体性,有助于提高样式表的可维护性和可扩展性。

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐