前端学习路线之css(五)

上一次我们给大家介绍了css的各种选择器,这次我们来介绍css的三大属性和选择器的权重。

一、css三大特性

01、层叠性(覆盖性)

一个标签的同一个属性被多次重复设置,最后设置的一次会生效,其他的都会被层叠覆盖;

遵循了就原则;

    .box {
        width: 300px;
        height: 300px;
        background-color: royalblue;
        width: 100px;
    }

以上代码盒子的宽度最终大小为100px,将最前面的300px覆盖掉了;

02、继承性

有一些css属性子级元素或继承父级元素的样式,不需要单独设置,控制文字的相关属性(text-,font-,line-,color)几乎都可以被继承;

注意:01、超链接a元素不会继承父级盒子的color颜色和text-decoration,因为浏览器默认给a设置默认的颜色样式,我们需要单独设置a的color颜色和text-decoration;

02、标题标签h1,h2,h3,h5,h6不会直接继承父级盒子的文字大小font-size,因为他们本身自己有默认的文字大小并且是em相对单位,我们得到的结果是我们设置父级文字大小乘以这个倍数;所以我们需要单独设置;

03、权重优先级

不同的选择选择元素的时候权重大小不同,我们以基础选择器为参照,计算出我们自己选择器权重大小;

基本计算

01、继承性是没有权重的,如果当前元素自己有样式,就不会继承父级的样式,所以继承性的权重为0;

02、标签选择器,伪元素,的权重为1 (0,0,0,1)

03、类选择器,伪类选择器,属性选择器,的权重为10 (0,0,1,0)

04、id选择器的权重为100 (0,1,0,0)

05、行内元素的权重为1000 (1,0,0,0)

06、可以给样式设置!important 提高权重 ,权重是无限大;

权重叠加

实际开发中我们往往是按照复合选择器书写样式,所以我们就会将一些权重进行叠加计算,比如以下代码就可以计算出不同的权重值;

     .box li a {
         color: red;
     }
     .box li a:hover {
        color: salmon;
     }

.box li a 的权重值 = 0,0,1,0 + 0,0,0,1 + 0,0,0,1 = 0,0,1,2 = 12

.box li a:hover的权重值 = 0,0,1,0 + 0,0,0,1 + 0,0,0,1 + 0,0,1,0 = 0,0,2,2 = 2

注意:权重叠加是不会有进位的,每一类基础选择器只能在自己的位置叠加,如果超过10也不能向前进位哦;相当于现实辈分和年龄是不能对比的;

总结如下前端学习路线之css(五)

同一个标签,携带了多个类名,有冲突:

这里需要补充两种冲突的情况:

  • 1、对同一个标签,如果用到了了多个相同的内嵌样式表,它的优先级:定义的样式表中,谁最近,就用谁。
  • 2、对于同一个标签,如果引用了多个相同的外部样式表,它的优先级:html文件中,引用样式表的位置越近,就用谁。

!important标记:优先级最高

来给一个属性提高权重。这个属性的权重就是无穷大!important无法提升继承的权重,该是0还是0

   

圆角border-radius

圆角矩形

border-radius取值为一个实际像素

        .box {
            width: 300px;
            height: 100px;
            background-color: #f00;
            border-radius: 15px;
        }

圆形

矩形必须是正方形,设置border-radius*取值大于等于高度一半或者直接设置50%

        .box {
            width: 100px;
            height: 100px;
            background-color: #f00;
            /* border-radius: 50px; */
            border-radius: 50%;
        }

胶囊形状

矩形必须是长方形,设置border-radius*取值大于等于高度一半;

        .box {
            width: 300px;
            height: 50px;
            background-color: #f00;
            border-radius: 25px;
        }

如果设置border-radius*取值为50%,会绘制椭圆

        .box {
            width: 300px;
            height: 50px;
            background-color: #f00;
            border-radius: 50%;
        }

半圆

设置border-radius*取值个数为4个值:分别是:左上角 右上角 右下角 左下角

语法:border-radius:左上角 右上角 右下角 左下角;

        .box {
            width: 100px;
            height: 100px;
            background-color: #f00;
            border-radius: 0 50px 50px 0;
        }
​
        .box1 {
            width: 100px;
            height: 100px;
            background-color: #f00;
            border-radius: 50px 0 0 50px;
        }

盒子阴影box-shadow

语法

box-shadow: h-shadow v-shadow blur spread color inset;
box-shadow:水平阴影   垂直阴影   模糊距离   阴影大小   阴影颜色  内/外阴影;

水平阴影: 阴影在盒子的水平方向左右的位置设置; 垂直阴影: 阴影在盒子的垂直方向上下的位置设置; 模糊距离: 阴影的羽化模糊的程度,值越大越模糊; 阴影大小: 设置阴影的大小尺寸,一般可以不设置,有了需求在设置; 阴影颜色: 阴影的颜色显示; 内/ 外阴影:阴影在盒子的内部显示还是外部显示,默认不设置是外部阴影,我们不需要设置outset,设置了就出 问题,想要设置内阴影就设置取值为inset;

注意:一个盒子可以加多个阴影,用个英文的逗号隔开即可

box-shadow: 5px 5px 10px #000, 20px 20px 10px red;

文字阴影

语法

    text-shadow: h-shadow v-shadow blur color;
    text-shadow:水平阴影   垂直阴影   模糊距离   阴影颜色 ;

参数和盒子阴影差不多;

这次给大家介绍了三大属性和边框圆角的应用,下期给大家介绍盒模型的布局。

上一篇:永远都调不完的代码


下一篇:CSS属性书写顺序