Python Html5和CSS3的新增功能:CSS权重与CSS3新增选择器

简介: Python Html5和CSS3的新增功能:CSS权重与CSS3新增选择器

一、CSS权重概念



CSS权重概念:指的是样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式。


二、权重的等级



  • 2.1、权重的等级划分
  • 1、!important,加在样式属性值后,权重值为 10000
  • 2、内联样式,如:style="",权重值为1000
  • 3、ID选择器,如:#content,权重值为100
  • 4、类,伪类和属性选择器,如: content、:hover 权重值为10
  • 5、标签选择器和伪元素选择器,如:div、p、:before 权重值为1
  • 6、通用选择器(*)、子选择器(>)、相邻选择器(+)、同胞选择器(~)、权重值为0


  • 2.2、权重的计算实例一


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS3权重</title>
    <style type="text/css">
        div{
          color:red !important;
        }
     </style>
</head>
<body>
     <div style="color:blue">这是一个div元素</div>
</body>
</html>

两条样式同时作用一个div,上面的样式权重值为10000+1,下面的行间样式的权重值为1000,所以文字的最终颜色为red


  • 2.3、权重的计算实例二


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSS3权重计算2</title>
    <style type="text/css">
        #content div.main_content h2{
            color:red;
        }
        #content .main_content h2{
            color:blue;
        }
     </style>
</head>
<body>
  <div id="content">
    <div class="main_content">
       <h2>这是一个h2标题</h2>
    </div>
  </div>
</body>
</html>


第一条样式的权重计算: 100+1+10+1,结果为112;

第二条样式的权重计算: 100+10+1,结果为111;

h2 标题的最终颜色为red


  • 最后提示:权重的和越大,样式的优先级越高!


三、CSS3新增选择器



  • 3.1、E:nth-child(n):匹配元素类型为E(标签的名字,如:div,p,span等等)且是父元素的第n个子元素,如下的例子


image.png

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>CSS3新增选择器</title>
   <style type="text/css">
       .list{
          width: 200px;
          height: 200px;
          background-color: green;
        }
      .list div{
          width: 100px;
          height: 30px;
          background-color: brown;
          margin: 10px;
       }
      .list div:nth-child(2){
          background-color: yellow;
      }
   </style>
</head>
<body>
   <div class="list">
      <div>2</div>
      <div>3</div>
      <div>4</div>
      <div>5</div>
</body>
</html>

提示:.list div:nth-child(2) 其中的 2 代表 list 里面的第2个div


  • 3.2、E:first-child:匹配元素类型为E且是父元素的第一个子元素
  • 3.3、E:last-child:匹配元素类型为E且是父元素的最后一个子元素
  • 3.4、E > F E元素下面第一层子集


image.png

image.png


<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>CSS新增选择器2</title>
   <style type="text/css">
       .list{
          width: 200px;
          height: 230px;
          background-color: green;
       }
       .list div{
          width: 100px;
          height: 30px;
          background-color: brown;
          margin: 10px;
       }
       .list div>h1{
          width: 50px;
          height: 20px;
          background-color: yellow;
          font-size: 12px;
       }
   </style>
</head>
<body> 
   <div class="list">
       <div>
          <h1>第1个h1</h1>
       </div>
       <div>
          <h1>第2个h1</h1>
       </div>
       <div>4</div>
       <div>5</div>
       <h1>第3个h1</h1>
    </div>
</body>
</html>


  • 3.5、E + F 紧挨着的后面的兄弟元素


image.png

image.png



<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>CSS新增选择器3</title>
   <style type="text/css">
      .list{
         width: 200px;
         height: 330px;
         background-color: green;
      }
      .list div{
         width: 100px;
         height: 30px;
         background-color: brown;
         margin: 10px;
      }
      .list h1{
         width: 80px;
         height: 20px;
         font-size: 10px;
         background-color: brown;
         margin: 10px;
       }
       /* E + F 紧挨着的后面的兄弟元素 */
       .list div+h1{
          background-color: yellow;
        }
    </style>
</head>
<body>
    <div class="list">
       <div>1</div>
       <h1>第1个h1</h1>
       <h1>第2个h1</h1>
       <div>2</div>
       <div>3</div>
       <div>4</div>
       <div>5</div>
    </div>
</body>
</html>


  • 3.6、E ~ F E元素后面的兄弟元素


image.png

image.png


四、属性选择器


  • 4.1、E[attr] 含有attr属性的元素或者 E[attr='ok'] 含有attr属性的元素且它的值为“ok”,如下


image.png


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器1</title>
    <style type="text/css">
       div{
          color: brown;
       }
       div[data-attr='ok']{
          color:red;
       }
     </style>
</head>
<body>
    <div data-attr="ok">这是1个div元素</div>
    <div>这是2个div元素</div>
</body>
</html>


  • 4.2、E[attr^='ok'] 含有attr属性的元素且它的值的开头含有“ok”

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器2</title>
    <style type="text/css">
       div{
           color: brown;
       }
       div[data-attr^='ok']{
           color:red;
       }
    </style>
</head>
<body>
    <div data-attr="ok123">这是1个div元素</div>
     <div>这是2个div元素</div>
</body>
</html>


  • 4.3、E[attr$='ok'] 含有attr属性的元素且它的值的结尾含有“ok”


image.png

4.4、E[attr*='ok'] 含有attr属性的元素且它的值中含有“ok”


image.png


推荐一篇博客 CSS3 E:nth-child、E>F、E~F、E+F以及属性选择器

目录
相关文章
|
10天前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
1月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
43 6
|
2月前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
43 7
|
2月前
|
存储 缓存 测试技术
Python中的装饰器:功能增强与代码复用的利器
在Python编程中,装饰器是一种强大而灵活的工具,它允许开发者以简洁优雅的方式增强函数或方法的功能。本文将深入探讨装饰器的定义、工作原理、应用场景以及如何自定义装饰器。通过实例演示,我们将展示装饰器如何在不修改原有代码的基础上添加新的行为,从而提高代码的可读性、可维护性和复用性。此外,我们还将讨论装饰器在实际应用中的一些最佳实践和潜在陷阱。
|
1月前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
44 11
|
1月前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
2月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
2月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
58 5
|
2月前
|
设计模式 监控 程序员
Python中的装饰器:功能增强与代码复用的利器####
本文深入探讨了Python中装饰器的工作原理、应用场景及其在提升代码可读性、减少重复劳动方面的优势。不同于传统方法的冗长和复杂,装饰器提供了一种优雅且高效的方式来增强函数或方法的功能。通过具体实例,我们将揭示装饰器如何简化错误处理、日志记录及性能监控等常见任务,使开发者能够专注于核心业务逻辑的实现。 ####
|
2月前
|
机器人 计算机视觉 Python
Python作为一种高效、易读且功能强大的编程语言,在教育领域的应用日益广泛
Python作为一种高效、易读且功能强大的编程语言,在教育领域的应用日益广泛
61 5