CSS02_选择器补充知识


title: CSS02
date: 2022-01-20 17:10:58
tags:


继承

  • 继承

我们为一个元素设置的样式同时也会应用到它的后代元素上,继承的设计是为了方便我们的开发,我们可以将一些通用的样式设置到祖先元素上,这样只需要设计一次,就可以让所有元素都获取到改样式。

  • 并不是所有样式都会继承

背景和布局相关的都不会被继承

background-color div里面的元素也会显示一样的color是因为background-color默认是透明,他们透过去了

<!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>Document</title>
    <style>
        body{
            font-size:20px;
        }
        /* p{
            color:red;
        } */
        div{
            color:blue;
            background-color:orange;
        }
    </style>
</head>
<body>
    <!--继承:我们为一个元素设置的样式同时也会应用到它的后代元素上
    继承的设计是为了方便我们的开发
    -->
    <p>
        我是一个p元素
        <span>我是p元素中的span</span>
    </p>
    <span>我是p元素外的span元素</span>
    <div>
        我是div元素
        <p>
            我是div中的p元素
            <span>我是div中p元素中的span元素</span>
        </p>
        <span>
            我是div中的span元素
        </span>
    </div>
</body>
</html>

选择器的权重

样式冲突

不同选择器选择同一元素且为相同样式设置不同值

发生样式冲突时,由选择器的权重决定

选择器的权重

优先级越高越优先显示

  • 优先级:内联样式 1,0,0,0>id选择器 0,1,0,0>类和伪类选择器 0,0,1,0>元素选择器 0,0,0,1

比较优先级时,需要将所有选择器的优先级相加计算,谁最高就选谁,分组选择器是单独计算

选择器的累加不会超过最大的数量级,比如类选择器再高也不会超过id选择器

如果优先级计算后相等,此时优先使用靠下的样式

通配选择器的优先级 0,0,0,0

继承的样式 没有优先级

举例:

<style>
    div{
        font-size:20;
    }
    *{
        font-size:50;
    }
</style>
<div>div里有个<span>span</span></div>

span的尺寸会是50,因为虽然span继承了div的样式20,继承的样式优先级为0,所有span会优先显示通配选择器样式50.

可以加某一个样式后面!important,则此时该样式会获得最先优先级,甚至会超过内联样式,但是请注意,在开发中!important需要慎用,因为之后都改不了了

超链接伪类举例

超链接主要一共有4个伪类

a:link

a:visited

a:hover

a:active

如果不按照以上顺序写,而是如下

a:hover{
	color:red;
}
a:active{
	color:chocolate;
}
a:link{
	color:green;
}
a:visited{
	color:greenyellow;
}

a:hover和a:active的样式将不会展现, 因为优先级相同,后面的将前面的样式覆盖了,前面的不再能显示出来

长度单位

像素

屏幕(显示屏)实际上是由一个一个小点构成的, 我们称小点为像素

分辨率: 1366*768 指的是屏幕横着有1366个像素,竖着有768个像素

不同屏幕像素大小不同,像素越小的屏幕显示的越清晰

所以同样的200像素在不同设备上显示效果不一样,很多高清屏为了大家能看清会自动放大125%/150%

百分比

可以将属性值设置为相对于父元素属性的百分比

可以使子元素跟随父元素来进行改变

 <style>
        .box1{
            background-color:red;
            width:300px;
            height:300px;
        }
        .box2{
            background-color:purple;
            width:50%;
            height:50%;
        }
  </style>
   <div class="box1">

        <div class="box2"> </div>

    </div>

em

<style>
    .box3{
        font-size:20px;
        background-color:rosybrown;
        height:10em;
        width:10em;
    }
</style>
<div class:box3></div>

em是相对元素的字体的大小来计算的,1em=1font-size,浏览器默认字体大小是16px

rem

rem是相对html的字体大小来计算的,如下代码,最后的box3结果为100X100px 的块,而非200X200px的块

<style>
	html{
		font-size:10px;
	}
	.box3{
		font-size:20px;
        background-color:rosybrown;
        height:10rem;
        width:10rem;
	}
</style>
<div class:box3></div>

颜色

颜色名

用颜色名来设置各种颜色,比如red,blue,green…

产生的问题是:直接使用颜色名不方便,记不住

RGB值

RGB通过三种颜色不同的浓度来调配出不同的颜色

R Red, G Green, B Blue

每一种颜色的范围在0-255(0%-255%)之间

语法:RGB() eg.(255,0,0)->red

工具:FastStone Capture,可以找到颜色的rgb

RGBA

rgba(R,G,B,A) A是透明度,范围0-1

 <style>
        .box1{
            background-color:rgb(22,255,255);
            width:200px;
            height:200px;
        }
        .box2{
            background-color: rgba(255,0,100,0.5);
            width:300px;
            height:200px;
        }
    </style>
    
     <div class="box1"> <div class="box2"> </div> </div>

十六进制的RGB

语法:#RGB

颜色浓度值 00-ff

eg.#ff0000->red

如果颜色两位两位重复可以进行简写 比如#aabbcc->#abc

但是#aabbcd不可简写,因为cd不重复

<style></style>

HSL值

H:色相 取值范围:0-360

S:饱和度 取值范围: 0%-100%

L:亮度 取值范围:0%-100%

hsla a也是透明度 取值范围0-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值