【web前端开发】CSS最常用的11种选择器

简介: CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。

1.CSS介绍


CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。

CSS的作用:给HTML里面的标签设置样式

简单点来说就是让HTML的页面变得更加好看


2.CSS的语言规则


CSS是写在 style 标签里面的,而style标签一般写在head标签里面,title标签的下面


3.CSS的引入方式


CSS共有三种引入方式,分别是内嵌式,外联式和行内式

内嵌式: CSS写在style标签中

注意:style标签可以写在页面的任意位置,但一般都会在head标签里面

外联式: CSS写在单独的.css文件里面

要通过link标签在网页中导入

行内式: CSS写在标签的style属性中

一般搭配js来使用


4.选择器


标签选择器

标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式

语法:

标签名 {

     CSS属性名: 属性值

     CSS属性名: 属性值

     ...

   }

实例:

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Title</title>

 <style>

   p {

     color: blue;

   }

 </style>

</head>

<body>

 <p>这是一个段落</p>

 <p>这是一个段落</p>

 <div>这是一个段落</div>

</body>

</html>

效果:

2.png

作用: 通过标签名,找到页面中所有这类标签,并设置样式

注意:

  • 标签选择器选择的是一类标签,而不是单独一个
  • 标签选择器无论嵌套关系有多深,都能找到对应的标签

类选择器


标签选择器是选择这一类标签并设置样式,而类选择是可以给单独的一个标签设置样式

语法:

  .类名 {

     CSS属性名: 属性值

     CSS属性名: 属性值

     ...

   }

示例:

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Title</title>

 <style>

   .one {

     color: red;

   }

   .two {

     font-size: 30px;

   }

 </style>

</head>

<body>

 <p class="one">这是一个段落</p>

 <p class="one two">这是一个段落</p>

 <p>这是一个段落</p>

</body>

</html>

效果:

3.png

注意点:

所有的标签都有class这个属性,class属性的属性值就是类名

类名不能以数字或中横线 - 作为开头

一个标签可以有多个类名,类名之间要用空格隔开

- 类名可以重复,一个类选择器可以同时选中多个标签


id选择器


id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

语法:

#id属性值 {

CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

示例:

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Title</title>

 <style>

   #nav {

     color: blue;

   }

 </style>

</head>

<body>

 <p id="nav">这是一个段落</p>

 <p>这是一个段落</p>

</body>

</html>

效果:

5.png

注意:

所有的标签都有id这个属性

id是唯一的,不能重复!

id选择器只能被调用一次

id选择器通常搭配js来使用

类选择器与id选择器的区别

类选择器可以被多个标签调用

id选择器只能被调用一次


通配符选择器


找到文中所有的标签,并设置样式

语法:

* {

 CSS属性名: 属性值

 CSS属性名: 属性值

 ...

}

示例:

<!DOCTYPE html>

<html lang="en">

<head>

 <meta charset="UTF-8">

 <title>Title</title>

 <style>

   * {

     color: blue;

   }

 </style>

</head>

<body>

 <p>CSS</p>

 <span>CSS</span>

 <div>CSS</div>

 <h1>CSS</h1>

</body>

</html>

效果:

6.png

因为通配符选择器会改变所有标签的样式,在实际开发使用中用的很少


复合选择器


复合选择器中有 后代选择器和子代选择器


后代选择器


作用:根据HTML标签的嵌套关系,选择父元素"后代中"所有满足条件的标签

语法:

选择器1 选择器2{

   CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

效果:在选择器1中找到标签的后代(儿子,孙子,重孙子...)中,找到满足选择器2的标签,并设置样式

选择器和选择器之间用空格隔开

只要是后代(儿子,孙子,重孙子...)就会被选中

示例:

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

   <style>

       div p{

         color: #f00;

       }

   </style>

</head>

<body>

<div>

   <p>这是一个段落</p>

   <span>

       <p>这也是一个段落</p>

   </span>

   <h4>这是一个小标题</h4>

</div>

</body>

</html>

效果:

7.png


子代选择器


作用:根据HTML标签的嵌套关系,选择父元素"子代中"所有满足条件的标签

语法:

选择器1>选择器2{

   CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

效果:在选择器1中找到标签的子代中,找到满足选择器2的标签,并设置样式

这里的子代是只有儿子

选择器与选择器之间用 > 隔开

示例

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

   <style>

       div > p{

           color: blue;

       }

   </style>

</head>

<body>

<div>

   <p>这是一个段落</p>

   <span>

       <p>这也是一个段落</p>

   </span>

</div>

</body>

</html>

效果:

4.png

并集选择器


作用:同时选择多组标签,并设置样式

语法:

选择器1,选择器2,...{

   CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

效果:找到选择器1和选择器2所选中的标签,并设置样式

选择器和选择器中间用 , 隔开

选择器可以有多个

示例:

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

   <style>

       .one {

           font-size: 50px;

       }

       div,

       .one,

       span{

           color: blue;

       }

   </style>

</head>

<body>

   <div>这是一个div</div>

   <p class="one">这是一个段落</p>

   <span>这是一个span标签</span>

</body>

</html>

效果:

8.png


交集选择器


作用:找到 HTML中同时满足选择器的标签

语法:

选择器1选择器2...{

CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

效果:找到 包含上述选择器的标签,并设置样式

选择器可以有多个

示例:

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

   <style>

       .one {

           color: blue;

       }

       .two {

           font-style: italic;

       }

       p.one.two{

           font-size: 30px;

       }    

   </style>

</head>

<body>

   <div class="one">这是一个div</div>

   <p class="one two">这是一个p标签</p>

   <span>这是一个span标签</span>

</body>

</html>

效果:

9.png


伪类选择器


伪类是 W3C 制定的一套选择器的特殊状态,通过伪类您可以设置元素的动态状态


hover伪类选择器


作用:将鼠标悬停在元素上,并设置样式

语法:

选择器:hover {

CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

效果:鼠标悬停在设置的元素时,会出现样式

示例:

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

   <style>

     a:hover{

       color: red;

     }

   </style>

</head>

<body>

<a href="#">这是一个超链接</a>

<br>

<a href="#">这也是一个超链接</a>

</body>

</html>

效果:

我这里鼠标其实是悬浮在第二个标签上的,但是截图的时候不显示的鼠标了

11.png


任何一个元素都可以悬停,都可以设置样式


active伪类选择器


作用:将鼠标点击元素时,并设置样式

语法:

选择器:avtive {

CSS属性名: 属性值

   CSS属性名: 属性值

   ...

}

示例:

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Title</title>

   <style>

     p:active{

         color: skyblue;

     }

   </style>

</head>

<body>

<p>这是一个段落</p>

<p>这是一个段落</p>

</body>

</html>

13.png


结构伪类选择器


作用:根据HTML的结构关系查找元素

选择器 描述
E:first-child{ } 找到父元素中第一个子元素E
E:last-child{} 找到父元素中最后一个子元素E
E:first-child(n){ } 找到父元素第n个子元素E
E:last-child(n){} 找到父元素中倒数第n个子元素E


结语


选择器在前端开发中还是很常用的

实践为主,理论为辅 建议大家可以自己去尝试着使用一下

相关文章
|
14天前
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
82 3
|
2月前
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
11天前
|
前端开发 开发者 UED
《前端技术基础》第02章 CSS基础【合集】
层叠样式表(Cascading Style Sheets,简称CSS)是一种用于描述网页视觉表现的语言。该语言与HTML协同工作,其中HTML负责构建网页的结构,而CSS则负责定义网页的外观和格式。CSS通过一系列规则来实现样式的应用,这些规则由选择器(Selectors)和声明块(Declaration Blocks)构成。选择器的作用是明确指出哪些HTML元素将受到特定样式规则的影响,而声明块则包含了具体的样式声明,这些声明定义了元素的视觉属性和相应的值。
28 1
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
55 6
|
2月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
49 5
|
2月前
|
消息中间件 前端开发 JavaScript
探索微前端架构:构建现代Web应用的新策略
本文探讨了微前端架构的概念、优势及实施策略,旨在解决传统单体应用难以快速迭代和团队协作的问题。微前端允许不同团队独立开发、部署应用的各部分,提升灵活性与可维护性。文中还讨论了技术栈灵活性、独立部署、团队自治等优势,并提出了定义清晰接口、使用Web组件、状态管理和样式隔离等实施策略。
|
2月前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
2月前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
58 4
|
2月前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
49 3