这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天。
一、本堂课重点内容:
- CSS 概述
- CSS 选择器
- 设置文本样式
- CSS 工作原理
- CSS 布局
- 盒模型
- Flex 布局
- Grid
- 定位
二、详细知识点介绍:
-
在页面中使用CSS
- 外链(推荐):
<link rel="stylesheet" href="ccs文件的地址"> - 嵌入:在style标签里写样式:
<style></style> - 内联(不推荐):将样式写在html标签里的style属性里面,如:
<p style=""></p>
- 外链(推荐):
-
CSS是如何工作的
先加载HTML,HTML解析完成后加载CSS
-
选择器
除了标签、id、类选择器之外,还有如下的CSS选择器类型
- CSS的属性选择器
通过元素的属性或属性值选择元素,格式:[属性名] 或 [属性值="某特定值"] 或 [属性值的正则表达式]
如:[disabled] 或 [type = "password"] 或 [href^="#"]
- 伪类
(a)状态伪类,如a:link{}
(b)结构性伪类,如li:first-child{}
- 选择器的组合
- 多个选择器之间用逗号分隔,形成一个选择器组
-
颜色HSL
H:色相(360°的颜色光谱)
S:饱和度(0%-100%)百分比越高,颜色越鲜艳
L:亮度(0%-100%)百分比越高,颜色越亮
-
font-family书写小技巧
如果font-family里要写的字体有英文也有中文,则把英文的写在前面,中文的写在后面。(英文碰到英文字体首先匹配,中文碰到英文字体不匹配则接着向后找,找到中文字体匹配;若中文字体在前,英文字体在后,由于中英文都能匹配中文字体,则中文字体首先会匹配全部文字)
-
well-font
通过@font-face先根据url去找字体样式文件去下载再渲染
-
line-height
如果没写单位,则默认为是字体的多少倍的大小
-
处理关于空格符和换行
用css中的white-space属性:www.runoob.com/cssref/pr-t…
-
选择器的特异度
id选择器 > (伪)类选择器 > 标签
-
继承
某些属性会自动继承其父元素的计算值,除非显示指定一个值。
一般来说,文字相关的属性大部分都可以继承,盒子元素相关的(如宽度等)是不可继承的
将不可继承的变为可继承的方法:显示继承,将某属性的值写为inherit。如:box-sizing:inherit;
-
初始值
CSS 中每个属性都有一个初始值。background-color的初始值为 transparent;margin-left 的初始值为 0。
可以使用 initial 关键字显式重置为初始值background-color: initial
-
CSS求值过程
- 布局相关技术
1. 常规流:
*容器有指定高度时,height设置为百分数才有用,否则是不生效的
*padding、margin如果设置百分数,则它是相当于容器宽度的
*当四条边框颜色不同时,四角连接处的颜色是45°切分的。技巧:当把内容宽度高度设为0,且四条边框中的三条设为透明色时,就可以得到一个三角形,调整边框粗细可以变成不同大小的三角形
*使用margin:auto实现左右居中:margin-left:auto;margin-right:auto
*margin collapse:magrin在垂直方向上会有边距合并(折叠)现象。如:上方盒子的下外边距是100px,下方盒子的上外边距是100px,那么这两个盒子之间的外边距不是200px,而是100px(不是将二者相加,而是选择较大的那个边距),BFC 内盒子的 margin 不会与外面的含并
*box-sizing:boder-box将boder、padding、和内容作为一个整体来看宽度和高度等
*较长的单词无法拆分换行时;overflow-wrap:break-word;
*Flex Box(单一方向的布局模式)
使用方式:display:flex
主轴对齐方式:
侧轴对齐方式:
flexibility:
*Grid布局(网格布局)
使用方式:display:grid
三、实践练习例子: 设置boder的四个边为不同颜色实现三角形的绘制。
四、课后个人总结:
CSS的内容复杂且多样,所有知识点全部掌握可能是有点不太现实的,个人认为的办法是掌握常用且主流的特性,其余的可以随用随查,同时进行一个积累。还有一点个人认为很有趣的是,可以通过一些技巧来实现特殊图形的绘制,这种操作很具巧思,也很考验思维活性。
五、引用参考:
- CSS基础概念:developer.mozilla.org/zh-CN/docs/…
- W3C CSS 相关的规范:www.w3.org/TR/?tag=css
- CSS 相关文章:web.dev/learn/css/