首页 > 其他分享 >CSS篇十五——(2)

CSS篇十五——(2)

时间:2022-10-02 22:32:47浏览次数:42  
标签:pink 权重 color li 样式 nav 十五 CSS

一、CSS三大特性之优先级

1. 权重叠加

权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。 代码示例:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>权重叠加</title>
<style>
/* 复合选择器会有权重叠加的问题 */
/* 权重虽然会叠加,但永远不会有进位 */
/* ul li 权重为:0,0,0,1 + 0,0,0,1 = 0,0,0,2 */
ul li {
color: steelblue;
}

/* 此处li 的权重为 0,0,0,1 */
li {
color: pink;
}

/* 综上,所以才会最终执行的是上面的复合选择器 */
/* .nav li 权重为:0,0,1,0 + 0,0,0,1 = 0,0,1,1 */
.nav li {
color: tan;
}
</style>
</head>

<body>
<ul class="nav">
<li>狮子王</li>
<li>忠犬八公</li>
<li>猫和老鼠</li>
</ul>
</body>

</html>

CSS篇十五——(2)_权重

权重叠加小测试:

  • div ul li ---------> 0,0,0,1 + 0,0,0,1 + 0,0,0,1 = 0,0,0,3
  • .nav ul li --------> 0,0,1,0 + 0,0,0,1 + 0,0,0,1 = 0,0,1,2
  • a:hover --------> 0,0,0,1 + 0,0,1,0 = 0,0,1,1
  • .nav a ----------> 0,0,1,0 + 0,0,0,1 = 0,0,1,1

2. 权重练习题

练习题1:下面的代码执行的是哪一个样式?红色?绿色?

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>权重练习题</title>
<style>
.nav {
color: red;
}

li {
color: green;
}

/* 最终执行的一定是后面单独定义的,因为前者是继承,继承的权重为 0 */
</style>
</head>

<body>
<ul class="nav">
<li>人生四大喜</li>
<li>久旱逢甘霖</li>
<li>他乡遇故知</li>
<li>洞房花烛夜</li>
<li>金榜题名时</li>
</ul>
</body>

</html>

最终执行的样式一定为绿色:因为前者是继承,继承的权重为 0,0,0,0;而单独定义的li 为标签选择器,权重为 0,0,0,1,后者权重比前面高,故执行绿色样式。

CSS篇十五——(2)_选择器_02

练习题2:按照下面的代码,最终第一个li 是什么样式?

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>权重练习题02</title>
<style>
.nav li {
color: blue;
}

/* 需求:把第一个li 颜色改为 粉色加粗 */
/* pink 权重为 0,0,1,0,.nav li 的权重为 0,0,1,1 前者权重大,
由于颜色样式有冲突,所以执行权重大的,而字体加粗样式没有冲突,故执行了 pink的代码 */
.pink {
color: pink;
font-weight: 700;
}
/* 若改成.nav .pink 则权重变为0,0,2,0 比.nav li 的权重为 0,0,1,1大,此时就会执行.nav .pink里面的代码样式 */
/* .nav .pink {
color: pink;
font-weight: 700;
} */
</style>
</head>

<body>
<ul class="nav">
<li class="pink">人生四大喜</li>
<li>久旱逢甘霖</li>
<li>他乡遇故知</li>
<li>洞房花烛夜</li>
<li>金榜题名时</li>
</ul>
</body>

</html>

按照上面的代码,最终的结果是“人生四大喜”变成加粗的蓝色字体;

原因如下:

  • pink 权重为 0,0,1,0,.nav li 的权重为 0,0,1,1 前者权重大,由于颜色样式有冲突,所以执行权重大的,而字体加粗样式没有冲突,故执行了 pink的代码

CSS篇十五——(2)_html_03

当.pink 变为 .nav .pink后,最终结果是“人生四大喜”变成加粗的粉色字体;

原因如下:

  • .nav .pink 则权重变为0,0,2,0 比.nav li 的权重为 0,0,1,1大,此时就会执行.nav .pink里面的代码样式

CSS篇十五——(2)_html_04

标签:pink,权重,color,li,样式,nav,十五,CSS
From: https://blog.51cto.com/u_13354745/5729507

相关文章

  • background属性 css背景设置
    CSS中的背景样式我们都会设置,但是总会遇到一些比较陌生的属性,或不知道背景样式到底有多少个属性,下面就让我们一探究竟吧!!一、背景属性大全属性描述background在......
  • css优先级
    四位数,大的优先级高第一个数字,1表示内联样式,0表示没有内联样式第二个数字表示选择器中id选择器的数量第三个数字表示选择器中类选择器名称的数量第四个数字表示选择器......
  • How To Use CSS How To Draw A Trapezoid All In One
    HowToUseCSSHowToDrawATrapezoidAllInOne如何使用CSS如何画一个梯形AllInOneCSStrapezoid/CSS梯形CSStriangle/CSS三角形demoscode......
  • CSS篇十五——(1)
    一、CSS的三大特性CSS有三个非常重要的特性:层叠性、继承性、优先级1.1层叠性给相同选择器设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲......
  • CSS篇十四
    一、CSS背景综合案例1.练习内容案例:五彩导航练习价值:1.链接属于行内元素,但是此时需要宽度高度,故需要转换模式2.里面的文字需要水平居中和垂直居中,需要单行文字垂直居中代......
  • CSS入门学习笔记
    CSS入门学习笔记一、CSS简介1、什么是CSS?2、为什么使用CSS?3、CSS的作用二、CSS语法1、CSS基础语法2、CSS注释语法3、CSS应用方法三、CSS选择器1、元素选择器2、类选择器3、......
  • CSS入门学习笔记
    CSS入门学习笔记一、CSS简介1、什么是CSS?2、为什么使用CSS?3、CSS的作用二、CSS语法1、CSS基础语法2、CSS注释语法3、CSS应用方法三、CSS选择器1、元素选择器2、类选择器3、......
  • 我如何在没有 CSS 变量的情况下为我的 Angular 应用程序设置主题
    我如何在没有CSS变量的情况下为我的Angular应用程序设置主题您可能认为为任何Web应用程序设置主题很容易。__你__只需要使用CSS变量,对吧?CSS变量很棒。使用......
  • 带有旋转效果的提交按钮 - 仅限 CSS - 一步一步
    带有旋转效果的提交按钮-仅限CSS-一步一步HTML对于HTML,我们需要一个带有文本和“检查”svg元素的按钮。我们将显示文本并隐藏svg。在按钮焦点上,我们将显示sv......
  • css变量的声明和读取
     1、css变量的声明使用--声明变量($被sass用掉了,@被less用掉了)<style>:root{--color:red;}</style>root为根元素,相当于给html设......