1、CSS的引入方式
CSS 的三种样式表:行内样式表(行内式) 内部样式表(嵌入式) 外部样式表(链接式)
1)行内样式表(内联样式表)
是在元素标签内部的style属性中设定CSS样式,适合于修改简单样式
基本语法:
<div style="color: red; font-size: 12px; ">青春不常在,抓紧谈恋爱</div>
- style其实就是标签的属性
- 在双引号中间,写法要符合CSS规范
- 可以控制当前的标签设置样式
- 由于书写繁琐,并且没有体现出结构与样式分离的思想,所以不太推荐大量使用,在当前元素添加简单样式的时候,可以考虑使用
2)内部嵌入式
内部嵌入式是将CSS代码集中写在HTML文档的head头部标签中,并且用style标签定义
基本语法:
<style type="text/CSS">
选择器 {属性1:属性值1; 属性2:属性值2; 属性3:属性值3;}
</style>
3)外部样式表
1.新建一个后缀名为.css的样式文件,把所有CSS代码都放入此文件中
2.在HTML页面中,使用<link>标签引入这个文件
<link rel="stylesheet" href="css"文件路径”>
- rel 定义当前文档与被链接文档之间的关系,在这里需要指定为"stylesheet",表示被链接的文档是一个样式表文件
- href 定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径
- 使用外部样式表设定CSS,通常也被称为外链式或链接式引入,这种方式是开发中常用的方式
2、 Emmet语法
Emmet语法的前身是Zen coding,它使用缩写,来提高html和css的编写速度,Vscode内部已经集成该语法
1)快速生成HTML结构语法
1.生成标签 直接输入标签名 按tab键即可 比如 div 然后tab键,就可以生成<div> </div>
2.如果想要生成多个相同的标签 加上*就可以了
3.如果有父子级关系的标签 可以用> 比如ul > li
4.如果有兄弟关系的标签 用+就可以了
5.如果生成带有类名的或者id名字的 直接写.demo 或者 #two tab键就好了
6.如果生成的div类名是有顺序的 可以用自增符号¥
7.如果想要生成的标签内部写内容可以用{}表示
3、css的复合选择器
CSS里面有基础选择器和复合选择器
复合选择器包括后代选择器、子选择器、并集选择器、伪类选择器等等
1)后代选择器(重要)
后代选择器又称为包含选择器,可以选择父元素里面的子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
语法:
元素1 元素2 { 样式声明 }
- 上述语法表示选择元素1里面的所有元素2(后代元素)
- 元素1和元素2一定要用空格隔开
- 元素1是父级 元素2是子级 最终选择是元素2
- 元素2可以是儿子 也可以是孙子等 之哟啊是元素1的后代即可
- 元素1和元素2可以是任意基础选择器
2)子选择器(重要)
子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素
语法:
元素1 > 元素2 { 样式声明 }
元素1和元素2中间用大于号隔开
3)并集选择器(重要)
并集选择器可以选择多组标签,同时为他们定义相同的样式。通常用于集体声明
并集选择器是各选择器通过英文逗号,连接而成,任何形式的选择器都可以作为并集选择器的一部分
语法:
元素1,元素2 { 样式声明 }
逗号可以理解为和的意思
4)伪类选择器
用于向某些选择器添加特殊的效果,比如给链接添加特殊的效果,或选择第1个,第n个元素
伪类选择器分为链接伪类、结构伪类等
11)链接伪类选择器:
a : link 选择所有未被访问的链接
a : visited 选择所有已被访问的链接
a : hover 选择鼠标指针位于其上的链接
a : active 选择活动链接(鼠标按下未弹起的链接)
链接伪类选择器注意事项:
1.为了确保生效,请按照LVHA的顺序声明:link- :visited-:hover-:active
2.记忆: lv包包hao
3.因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式
22)focus伪类选择器
:focus伪类选择器用于选取获得焦点的表单元素
焦点就是光标,一般情况<input>类表单元素才能获取,因此这个选择器CSS也要主动针对于表单元素来说
4、css的元素显示模式
元素显示模式:就是元素(标签)以射门方式进行显示,比如<div>自己占一行,比如一行可以放多个<span>
HTML元素一般分为块元素和行内元素两种类型
1)块元素
特点:
1.自己独占一行
2.高度、宽度、外边距以及内边距都可以控制
3.宽度默认是容器(父级宽度)的100%
4.是一个容器及盒子,里面可以放行内或者块级元素
注意:
- 文字类的元素内不能使用块级元素
- <p>标签主要用于存放文字,因此<p>里面不能放块级元素,特别是不能放<div>
- 同理,<h1>~<h6>等都是文字类块级元素,里面也不能放其他块级元素
2)行内元素
常见的行内元素有<a> <strong> <b> <em> <i> <del> <s> <ins> <u> <span>等,其中<span>标签是最典型的行内元素。有的地方也将行内元素称为内联元素。
行内元素的特点:
1.相邻行内元素在一行上,一行可以显示多个
2.高、宽直接设置是无效的
3.默认宽度就是它本身内容的宽度
4.行内元素只能容纳文本或其他行内元素
注意:
- 链接里面不能再放链接
- 特殊情况链接<a>里面可以放块级元素,但是给<a>转换一下块级模式最安全
3)行内块元素
在行内元素中有几个特殊的标签——<img/>、<input/>、<td>,它们同时具有块元素和行内元素的特点。
行内块元素的特点:
1.和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙,一行可以显示多个(行内元素特点)
2.默认宽度就是它本身内容的宽度(行内元素特点)
3.高度、行高、外边距以及内边距都可以控制(块级元素特点)
4)元素显示模式转换
- 给<a>链接设置高度和宽度
- 把行内元素a 转换为 块级元素:
- 转化为块元素:display:block
- 把块级元素转化为行内元素:
- 转化为行内元素:display:inline;
- 转换为行内块:display:inline-block
5、小技巧
单行文字垂直居中的代码
CSS没有给我们提供文字垂直居中的代码,这里我们可以使用一个小技巧来实现
解决方案:让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中