【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


结语


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

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

相关文章
|
5天前
|
JavaScript 前端开发
【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
【5月更文挑战第1天】【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
|
6天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
6天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。
|
6天前
|
移动开发 前端开发 UED
【专栏:HTML与CSS前端技术趋势篇】渐进式增强与优雅降级在前端开发中的实践
【4月更文挑战第30天】前端开发中的渐进式增强和优雅降级是确保跨浏览器、跨设备良好用户体验的关键策略。渐进式增强是从基础功能开始,逐步增加高级特性,保证所有用户能访问基本内容;而优雅降级则是从完整版本出发,向下兼容,确保低版本浏览器仍能使用基本功能。实践中,遵循HTML5/CSS3规范,使用流式布局和响应式设计,检测浏览器特性,并提供备选方案,都是实现这两种策略的有效方法。选择合适策略优化网站,提升用户体验。
|
6天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
7天前
|
XML 前端开发 JavaScript
前端CSS样式零基础教学总结,UI、前端开发都适用
前端CSS样式零基础教学总结,UI、前端开发都适用
|
8天前
|
前端开发 开发者
【Web 前端】CSS 样式覆盖规则?
【4月更文挑战第22天】【Web 前端】CSS 样式覆盖规则?
|
16天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
5天前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
2天前
|
安全 测试技术 PHP
掌握现代Web开发:PHP 8的新特性与最佳实践
【5月更文挑战第5天】 在当今快速发展的网络世界中,PHP作为一种流行的服务器端脚本语言,持续地演化着。最新的PHP 8版本引入了一系列令人兴奋的新特性和性能改进,为开发者提供了更加强大和灵活的工具。本文将深入探讨PHP 8中的新特性,包括联合类型、名称参数、匹配表达式等,并分享一些最佳实践,帮助开发者提高代码质量,优化性能,并确保安全性。通过这些实用技巧和示例,您将能够构建更高效、更安全的PHP应用程序。