1.什么是CSS
CSS:层叠样式表 (Cascading Style Sheets)。 能够对⽹⻚中元素位置的排版进⾏像素级精确控制, 实现美化⻚⾯的效果.,能够做到⻚⾯的样式和结构分离。
2.CSS 基本语法
选择器 + {⼀条/N条声明}
●选择器决定针对谁修改
●声明决定修改啥。(声明的属性是键值对。 使⽤ ; 区分键值对, 使⽤ : 区分键和值. )
● CSS 使⽤ /* */ 作为注释. (使⽤ ctrl + / 快速切换)
3.CSS 类型
- ⾏内样式
- 内部样式
- 外部样式
3.1 ⾏内样式
通过 style 属性, 来指定某个标签的样式。只适合于写简单样式.,只针对某个标签⽣效。
缺点: 不能写太复杂的样式。这种写法优先级较⾼, 会覆盖其他的样式。
3.2 内部样式
写在 style 标签中,嵌⼊到 html 内部的样式叫做内部样式。
注意: 理论上来说 style 放到 html 的哪⾥都⾏. 但是⼀般都是放到 head 标签中。
优点: 这样做能够让样式和⻚⾯结构分离。
缺点: 分离的还不够彻底.,尤其是 css 内容多的时候。
3.3 外部样式
实际开发中最常⽤的⽅式.
步骤:
1.创建⼀个 css ⽂件.
2. 使⽤ link 标签引⼊ css
优点: 样式和结构彻底分离了。
缺点: 受到浏览器缓存影响,修改之后不⼀定⽴刻⽣效。
注意:
1、 不要忘记 link 标签调⽤ CSS, 否则不⽣效。rel 属性是必须的,规定当前⽂档与被链接⽂档/资源之间的关系。stylesheet 表示要导⼊的样式表的 URL。
2、缓存问题
这是计算机中⼀种常⻅的提升性能的技术⼿段。⽹⻚依赖的资源(图⽚/CSS/JS等)通常是从服务器上获取的. 如果频繁访问该⽹站, 那么这些外部资源就没必要反复从服务器获取.,就可以使⽤缓存先存起来(就是存在本地磁盘上了). 从⽽提⾼访问效率。
可以通过 ctrl + F5 强制刷新⻚⾯,,强制浏览器重新获取 css ⽂件。
3.4 多种样式优先级
⾏内样式 > 内部样式 > 外部样式
没有行内样式和内部样式时,才听外部样式的。
4.代码⻛格
4.1 样式格式
- 紧凑⻛格
p { color: red; font-size: 30px;}
- 展开⻛格(推荐)
p {
color: red;
font-size: 30px;
}
4.2 样式⼤⼩写
虽然 CSS 不区分⼤⼩写, 我们开发时统⼀使⽤⼩写字⺟
5.选择器
5.1 选择器功能
选中⻚⾯中指定的标签元素。要先选中元素, 才能设置元素的属性。
5.2 选择器种类
常见选择器:
●标签选择器
●类选择器
●id 选择器
●通配符选择器
5.2.1 标签选择器
特点:
能快速为同⼀类型的标签都选择出来,但是不能对同一类型的不同标签进行差异化设置。
5.2.2 类选择器
特点:
●差异化表示不同的标签。
●可以让多个标签的都使⽤同⼀个标签。
语法细节:
●类名⽤ . 开头的
●下⽅的标签使⽤ class 属性来调⽤.
●⼀个类可以被多个标签使⽤, ⼀个标签也能使⽤多个类(多个类名要使⽤空格分割, 这种做法可以让代码更好复⽤)
●如果是⻓的类名, 可以使⽤ - 分割.
●不要使⽤纯数字, 或者中⽂, 以及标签名来命名类名.
注意: ⼀个标签可以同时使⽤多个类名。这样做可以把相同的属性提取出来, 达到简化代码的效果.
5.2.3 id 选择器
和类选择器类似。
●CSS 中使⽤ # 开头表示 id 选择器
●id 选择器的值和 html 中某个元素的 id 值相同
●html 的元素 id 不必带 #
●id 是唯⼀的, 不能被多个标签使⽤ (是和类选择器最⼤的区别)
类选择器 VS id选择器
1、类选择器在一个页面中是可以重复使用的;id选择器,一个页面只能使用和设置一次。
2、定义顺序不同:类选择器先定义样式再使用,id选择器先有id再定义样式。
3、类选择器的定义以".“开头,id选择器是以”#"开头。
5.2.4 通配符选择器
使⽤ * 的定义, 选取所有的标签.
*{
color:red;
}
⻚⾯的所有内容都会被改成红⾊,不需要被⻚⾯结构调⽤。
5.3总结
6.常⽤元素属性
CSS 属性有很多, 可以参考⽂档:
https://www.w3school.com.cn/cssref/index.asp
6.1 字体属性
6.1.1 设置字体
body {
font-family: '微软雅⿊';
font-family: 'Microsoft YaHei';
}
●字体名称可以⽤中⽂, 但是不建议。
●从上到下查找字体, 如果都找不到, 会使⽤默认字体。
●如果字体名有空格, 使⽤引号包裹。
●建议使⽤常⻅字体, 否则兼容性不好。
写法2:类似于嵌套
6.1.2 字体⼤⼩
p {
font-size: 20px;
}
●不同的浏览器默认字号不⼀样, 最好给⼀个明确值. (chrome 默认是 16px)
●可以给 body 标签使⽤ font-size
●要注意单位 px 不要忘记.
●标题标签需要单独指定⼤⼩
注意: 实际上它设置的是字体中字符框的⾼度;实际的字符字形可能⽐这些框⾼或矮。
6.1.3 字体粗细
p {
font-weight: bold;
font-weight: 700;
}
●可以使⽤数字表示粗细。
●取值范围是 100 -> 900,500以下不加粗,500以上加粗
6.1.4 ⽂字样式
6.1.5 ⽂本属性
① ⽂本颜⾊
RGB:我们的显示器是由很多很多的 “像素” 构成的. 每个像素视为⼀个点, 这个点就能反映出⼀个具体的颜⾊.我们使⽤ R (red), G (green), B (blue) 的⽅式表示颜⾊(⾊光三原⾊). 三种颜⾊按照不同的⽐例搭配, 就能混合出各种五彩斑斓的效果。
计算机中针对 R, G, B 三个分量, 分别使⽤⼀个字节表示(8个⽐特位, 表示的范围是 0-255, ⼗六进制表示为 00-FF).
数值越⼤, 表示该分量的颜⾊就越浓. 255, 255, 255 就表示⽩⾊; 0, 0, 0 就表示⿊⾊.
color 属性值的写法:
●预定义的颜⾊值(直接是单词)
●[最常⽤] ⼗六进制形式
●RGB⽅式
② ⽂本对⻬:控制⽂字⽔平⽅向的对⻬.
不光能控制⽂本对⻬, 也能控制图⽚等元素居中或者靠右
●center: 居中对⻬
●left: 左对⻬
● right: 右对⻬
6.2 背景属性
6.2.1 背景颜⾊
background-color: [指定颜⾊]
默认是 transparent (透明) 的. 可以通过设置颜⾊的⽅式修改.
6.2.2 背景图⽚
background-image: url(...);
⽐ image 更⽅便控制位置(图⽚在盒⼦中的位置)
注意:
1.url 不要遗漏.
2. url 可以是绝对路径, 也可以是相对路径
3. url 上可以加引号, 也可以不加.
6.2.3 背景平铺
background-repeat: [平铺⽅式]
重要取值:
repeat: 平铺
no-repeat: 不平铺
repeat-x: ⽔平平铺
repeat-y: 垂直平铺
默认是 repeat.
注意:背景颜⾊和背景图⽚可以同时存在. 背景图⽚在背景颜⾊的上⽅.
6.2.4 背景尺⼨
background-size: length|percentage|cover|contain;
●可以填具体的数值: 如 40px 60px 表示宽度为 40px, ⾼度为 60px;也可以填百分⽐: 按照⽗元素的尺⼨设置。
● cover: 把背景图像扩展⾄⾜够⼤,以使背景图像完全覆盖背景区域。背景图像的某些部分也许⽆法显示在背景定位区域中。
● contain: 把图像图像扩展⾄最⼤尺⼨,以使其宽度和⾼度完全适应内容区域.。
7.Chrome 调试⼯具 – 查看 CSS 属性
有两种⽅式可以打开 Chrome 调试⼯具:
●直接按 F12 键
● 开发者工具
标签含义:
elements 标签⻚使⽤
●ctrl + 滚轮进⾏缩放, ctrl + 0 恢复原始⼤⼩。
● 使⽤ 左上⻆ 箭头选中元素。
● 右侧可以查看当前元素的属性, 包括引⼊的类。
● 右侧可以修改选中元素的 css 属性. 例如颜⾊, 可以点击颜⾊图标, 弹出颜⾊选择器, 修改颜⾊. 例如字体⼤⼩, 可以使⽤⽅向键来微调数值。
●此处的修改不会影响代码, 刷新就还原了。
● 如果 CSS 样式写错了, 也会在这⾥有提示. (⻩⾊感叹号)
8.⻚⾯布局—盒模型
每⼀个 HTML 元素就相当于是⼀个矩形的 "盒⼦,这个盒⼦由这⼏个部分构成:
边框 border
内容 content
内边距 padding
外边距 margin
8.1 边框
基础属性
● 粗细: border-width
● 样式: border-style, 默认没边框。solid: 实线边框 ;dashed: 虚线边框; dotted:点线边框。
● 颜⾊: border-color
8.2 内边距
padding 设置内容和边框之间的距离。
默认内容是顶着边框来放置的.。⽤ padding 来控制这个距离,可以给四个⽅向都加上边距。
●padding-top 上
●padding-bottom 下
●padding-left 左
● padding-right 右
可以把多个⽅向的 padding 合并到⼀起. [四种情况都要记住, 都很常⻅]
8.3 外边距
控制盒⼦和盒⼦之间的距离,可以给四个⽅向都加上边距。
●margin-top 上
● margin-bottom 下
● margin-left 左
● margin-right 右
块级元素⽔平居中:
前提:
指定宽度(如果不指定宽度, 默认和⽗元素⼀致)
把⽔平 margin 设为 auto
三种写法:
注意:
这个⽔平居中的⽅式和 text-align 不⼀样。
margin: auto 是给块级元素⽤的。
text-align: center 是让⾏内元素或者⾏内块元素居中的。
对于垂直居中, 不能使⽤ "上下 margin 为 auto " 的⽅式.
去除浏览器默认样式
浏览器会给元素加上⼀些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别。为了保证代码在不同的浏览器上都能按照统⼀的样式显示, 往往我们会去除浏览器默认样式。使⽤通配符选择器即可。