css

117 阅读8分钟

(⼀)CSS的结构

1、语法

选择器/选择符 { 样式/声明} ===>> 选择器 {属性1:属性值1;属性2:属性值2;……;}

选择器/选择符:要⽤样式修饰的对象,包括各类标签

样式/声明:需要修改为的样⼦,结构为 属性:属性值

2、CSS代码的三种使⽤⽅式

不论那种⽅式,都应该先创建需要修饰的对象,再来书写CSS 代码

1)内部样式表(⼀般⽤于案例解说,⼩⽹站)a. 位置:css代码写在html⽂档中head标签中

css代码写在 head 标签中的 title 标签的后⾯

 需要再创建⼀个style标签,然后只能将css代码书写在style标签内

    问题: 为什么要写在head标签内?

    答:因为若把css代码写在最后⾯,当⽹络不太好时,会先把html的内容显⽰出来,⽽css代码还

没解析完,此时的⻚⾯就会很丑,影响⽤⼾体验,不利于⽤⼾优化

2)外部样式表(⼤型⽹站的构建⼀般使⽤该⽅法,将css代码与html代码分隔开来)

 位置:css代码写在css⽂件中

 新建⼀个⽂件,命名规则与HTML⼀样,不过后缀为 .css

在css⽂件⾥,直接书写css代码,不⽤再添加 style 标签,另外,在css⽂件中,只可以书写

CSS代码

 书写完毕css代码之后,打开 html⽂档,使⽤ link 标签引⽤css代码描述的样式

<link rel="stylesheet" href=" 此处填写css代码的路径地址 ">

例如: <link rel="stylesheet" href="./04-外部css代码.css" />

【注意】:rel="stylesheet" 不可删除,删了会出错

3)内联样式表 (很少使⽤)

位置:css代码写在需要修饰的属性标签内部

格式    <标签名 style="css代码">……</标签名>

例如:<p style="width: 100px;height: 100px;">我是段落</p>

4)三种⽅式的权重

内联样式表的权重最⾼

外部与内部样式表的权重相等,哪个代码在下⾯就使⽤哪个样式

(因为代码的执⾏是从上到下,从左到右,下⾯的代码会覆盖上⾯的代码)

3、CSS选择器(

1)标签选择器⸺选中某⼀类标签进⾏修饰
        格式: 标签名 {属性1:属性值1;属性2:属性值2;……;}
        
2)class选择器
        选中某⼀类标签中的某⼀个或某⼏个标签进⾏修饰

3)步骤

    先给需要修饰的标签设置class名字 <标签名 class="class名字">
    再使⽤ .class名字 来定位该标签并设置样式 .class {css代码}

4)注意
 class名字的设置

 1、可以⽤ 连字符 - 下划线 _ 英⽂字⺟开头

 2、不能以数字开头 如:class="1div"

 3、不能有中⽂和特殊字符 如:class="中国{"

 4、若命名时有多个单词,单词之间的连接只可以⽤ - _ ,或者就直接⽤驼峰命名法,      如:userName

 5、命名最好带有语义 如:div class="box1"

 6、⼀般命名越⻓越好,当代码⾮常多时,⼀⽅⾯,不会让⾃⼰的代码之间有冲突,另⼀⽅⾯,
     当需要与别⼈的代码进⾏整合时,不会与别⼈的代码命名之间有冲突

4. 引⽤class名字要在css代码中

1)格式:

html代码中

css代码中(

2id选择器⸺同 class标签作⽤

1.先给需要命名的标签设置id名,命名规则与class命名相同 <标签名 id="id名">

2.在css代码区域使⽤ #id名字 来定位标签 #id名字 {}

3.class选择器的不同之处

    class选择器中⼀个属性可以有多个class名 如:<p class="text1 style1">

    但是id选择器中每个属性只能由⼀个ID名字


3)通配符选择器⸺选中⻚⾯中所有的标签进⾏修饰

1.在CSS代码区域,直接输⼊ * { css 代码}

2.因为影响范围太⼤,所以⼀般很少⽤

3.⼀般⽤于去除内外边距

4)群组选择器⸺选中⼀组标签进⾏修饰

格式:选择器1,选择器2,选择器3 {} 选择器之间⽤逗号进⾏连接

5)后代选择器⸺选中处于嵌套关系中的某⼀标签进⾏修饰1)格式:选择器1 选择器2 选择器3 {} 选择器之间⽤空格进⾏连接

⸺注意:后⾯的选择器必须为前⾯的选择器的后代,即后⾯的选择器处于前⾯选择器的嵌套

之中,且样式会作⽤到最后⼀个选择器⾝上,如上⾯的选择器3,⽽前⾯的选择器就只是限制范围

5.后代选择器与群组选择器的配合

注意:群组选择器中,以⼀个逗号代表各个选择器之间的分隔

⸺所以 .father .son1,.son2 代表的是 father中的son1和所有的son2

若要father中的son1、son2变为绿⾊背景,则 .father .son1,.father .son2

1)后代选择器与通配符选择器的配合

例⼦◦ 现在要让Tom中所有的标签为绿⾊

2)后代选择器与超链接的配合

例⼦

让所有字体颜⾊为红⾊ ,⼜希望⼆级标题为蓝⾊

3)⼦代选择器⸺选中处于嵌套关系中为⼦代关系的标签进⾏修饰

4)格式:选择器1>选择器2>选择器3 {} 选择器之间⽤⼤于符号连接

⸺注意:后⼀个选择器必须为上⼀个选择器的⼦代,不能是后代,即使爸爸跟⼉⼦,不能是爷爷

和孙⼦例⼦

5)应⽤场景:当⼀个⼤标签内部有多个同类标签,但我们只需要设置其中⼀个标签时

6)伪类选择器⸺修饰超链接或者设置⿏标移⼊和⿏标按下效果

7)格式(顺序不可变,前两个属性只能⽤于超链接)

    :link⸺未访问超链接时,超链接的样式

    :visited⸺访问过超链接了,超链接显⽰的样式

    :hover⸺⿏标移⼊标签时,标签显⽰的样式

    :active⸺⿏标安下标签时,标签显⽰的样式

8)例⼦:超链接

9)例⼦:其他标签4)hover与后代选择器的配合

格式:⿏标移⼊的对象 作⽤的对象 {显⽰的样式} (若是作⽤的对象是本⾝可不写)

6、CSS选择器的权重

1)各个选择器的权重如下:

!important 10000

内联样式表 1000

id选择器 100class选择器 10

伪类选择器 10

标签选择器 1

通配符 0

继承的样式 0

后代选择器 权重为各个选择器的总和

⼦代选择器 权重为各个选择器的总和

群组选择器 看⾃⾝,每个选择器计算⾃⼰的权重

2)权重的作⽤

当由多个选择器针对同⼀个标签设置了不同的样式时,哪个选择器的权重最⾼,最终就会采⽤

哪个选择器设置的样式。

如同时针对p标签,id选择器设置背景颜⾊为⿊⾊,class选择器设置背景颜⾊为绿⾊,⽽内联

样式表设置为粉⾊,那么最终会采⽤的样式为粉⾊,因为内联样式表的权重时三个中最⾼的。

3)!important(四个注意事项)

!important只能加在属性后⾯,需要空格 如:(colorred !important)

每个属性后⾯只能加⼀个!important 如:(colorred !important !important 这种格式是错误的)

当两个选择器中都设置了不同的⻓宽、颜⾊时,若important只加在了颜⾊属性上,那么⻓

宽则看哪个选择器的权重⾼,就采⽤哪个选择器的⻓宽(即冲突属性看important 不冲突

属性看权重)

    不建议加给内联样式,因为这是强上加强,之后再使⽤!important改变样式就会⽐较复杂了

    若是针对同⼀个标签的同⼀个属性,都加了 !important ,此时哪个选择器的权重更⾼就显⽰谁的样式

4)后/⼦代选择器的权重叠加 (具体看 day04-02后代选择器权重)

后/⼦代选择器的权重是其中的每⼀个选择器的权重相加得来的

5css的三⼤特征

7.继承

当嵌套关系中的⼦元素没有设置样式但⽗元素设置了样式时,⼦元素会采⽤部分⽗元素的样式。

 嵌套关系中的⼦元素可以继承⽗元素中的⽂本属性、表格属性、列表属性

 继承的权重为

 指定⼤于继承!嵌套关系中

 若⽗代设置了样式,⼦代没有设置样式,则⼦代继承⽗代的部分样式;

 若⽗代设置了样式,⼦代也设置了样式,则⼦代继采⽤⾃⼰的样式;

8.层叠

当针对同⼀个标签,多个选择器设置的样式没有冲突时,那么最后该标签呈现会是所有选择器的样式层层叠加起来的效果

9.优先级

当有多个选择器针对同⼀标签的同⼀属性进⾏样式设置时,此时有冲突,谁的权重最⾼,最终采⽤哪个选择器的样式

10.⼩技巧 设置⽤⼾代码⽚段

打开Vscode 设置—⽤⼾代码⽚段 新建全局代码⽚段⽂件 将所需要

的代码粘贴进去,其中"prefix": 后⾯输⼊的就是触发代码的快捷键名字,"description":代码段描述,在

⽂件中输⼊prefix时的提⽰信息

如: "prefix": "hy"⸻⸻代表输⼊hy,按下回⻋会出现该段代码