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以及属性选择器

目录
相关文章
|
2月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
42 1
|
2月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
47 1
|
23天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
76 6
|
23天前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
31 2
|
2月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
1月前
|
存储 前端开发 开发者
深入了解 Sass 和 SCSS:CSS 预处理器的强大功能
Sass(Syntactically Awesome Stylesheets)是一个强大的 CSS 预处理器,为开发者提供了诸多高级特性,如变量、嵌套、混合、继承等,简化了 CSS 的编写和管理。SCSS 是 Sass 3 引入的新语法,完全兼容 CSS3,并增强了 Sass 的动态功能。本文详细介绍了 Sass 和 SCSS 的核心特性及其在实际开发中的应用,如变量定义、嵌套规则、混合、继承、以及常用的操作符与扩展功能。
30 0
WK
|
2月前
|
存储 移动开发 前端开发
HTML5和CSS5有什么区别
HTML5和CSS5在网页设计中扮演不同角色。HTML5是超文本标记语言的第五版,通过新特性如实时更新、跨平台运行及更好的安全性等,定义网页内容和结构。尽管常说CSS5,实际最新的CSS版本包含多个模块如CSS Grid和Flexbox,主要用于控制网页布局和样式,提供强大的选择器、动画支持和响应式设计,与HTML5相辅相成,共同构建现代网页的基础架构。
WK
51 3
|
2月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
87 1
|
2月前
|
XML 数据格式 Python
Python技巧:将HTML实体代码转换为文本的方法
在选择方法时,考虑到实际的应用场景和需求是很重要的。通常,使用标准库的 `html`模块就足以满足大多数基本需求。对于复杂的HTML文档处理,则可能需要 `BeautifulSoup`。而在特殊场合,或者为了最大限度的控制和定制化,可以考虑正则表达式。
64 12
|
1月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
18 0
下一篇
无影云桌面