这是我参与「第四届青训营 」笔记创作活动的的第1天。本篇笔记是对第一天的课程内容总结,并结合了自己以往的学习笔记对内容,进行了一定的梳理。有意见和建议也欢迎在评论区交流讨论呀~
知识点
- HTML 简介与基本标签
- 语义化
- CSS 样式简介
- CSS 工作方式 页面渲染
- CSS 选择器 与 属性和值 层叠 cascade(样式如何匹配)
- 布局与盒模型:正常流、弹性盒子、网格、浮动盒子、定位
HTML 简介与基本标签
HTML:超文本标记语言(HyperText Markup Language)
它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。——百度百科
HTML 有着丰富的标签,由于篇幅不过多展开,推荐查阅 HTML(超文本标记语言) | MDN (mozilla.org)
HTML 标签的部分作用:
- 支持网站 SEO(meta 标签)
- 引入
iframe模板 - 显示 SVG 图形
- 引入图片视频
- 描述网页结构(页眉、页脚、侧边栏)
HTML 与 DOM 树
DOM(Document Object Model)即文档对象模型,是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。 DOM 将整个文档作为一个树形结构,树的每一个结点表示一个 HTML 标签或标签中的文本项。其中的文档一般指代的即是 HTML 文档,树形结构与 HTML 层次结构相同
HTML 语义化
语义化是什么?HTML 的元素、标签、属性都是有一定意义的
像
button head nav footer 这些标签都是有语义的,一眼就能看出来它的作用是什么。
理论上,通过一些手段,使得像
divspan这些无语义的标签“表现得像某些标签” 例如通过添加点击事件与 CSS 样式,可以使div标签长得与button一样,但这在机器(浏览器、屏幕阅读器)眼中,它就是一个没有任何含义的标签。
在开发中,开发者需要遵循语义化的建议,尽可能使 HTML 中使用的元素、标签、属性是有意义的,否则你的代码将犹如有口音一般难以用于沟通理解。
使用语义化规范优势:
- 提高网页的可访问性 What is accessibility? - 学习 Web 开发 | MDN (mozilla.org)
- 利于 SEO
- 利于 HTML 编写与阅读
个人认为语义化的理念不管是在 HTML 里面,还是日常的高级语言编程中都是非常重要的,没有人希望维护变量全是 a,b,c 的代码。以及对可访问性的理解,是一种人与人之间在虚拟世界中沟通交流的规范。
CSS 简介
层叠样式表 (Cascading Style Sheets,CSS),用于定义页面元素的样式,设置字体、颜色、位置、大小、动画等。由选择器、属性与属性值构成的声明组成。
CSS是一种 样式表 语言,用来描述 HTML 或 XML(包括如 SVG、MathML、XHTML 之类的 XML 分支语言)文档的呈现。CSS 描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。——MDN
CSS 渲染方式
CSS 样式加载解析完成后会与 DOM 树结合并生成渲染树,用于实现页面渲染。
CSS 属性匹配与选择器
用于找出页面中匹配的元素,设置其样式
- 标签选择器
- 类选择器
- id 选择器
- 属性选择器
- 伪类与伪元素选择器
- 通配选择符 *
选择器组合
组合优先级计算
样式匹配冲突解决决定因素:
- 重要程度
- 优先级
- 资源顺序
一个选择器的优先级可以说是由四个部分相加 (分量),可以认为是“个十百千” — 四位数的四个位数:
- 千位: 如果声明在 style 的属性(内联样式)则该位得一分。这样的声明没有选择器,所以它得分总是1000。
- 百位: 选择器中包含ID选择器则该位得一分。
- 十位: 选择器中包含类选择器、属性选择器或者伪类则该位得一分。
- 个位:选择器中包含元素、伪元素选择器则该位得一分。
| 选择器 | 千位 | 百位 | 十位 | 个位 | 优先级 |
|---|---|---|---|---|---|
| h1 | 0 | 0 | 0 | 1 | 0001 |
| h1 + p::first-letter | 0 | 0 | 0 | 3 | 0003 |
| li > a[href*="en-US"] > .inline-warning | 0 | 0 | 2 | 2 | 0022 |
| #identifier | 0 | 1 | 0 | 0 | 0100 |
| 内联样式 | 1 | 0 | 0 | 0 | 1000 |
属性继承
CSS 属性存在父子继承关系,可以设置显示继承、不继承、默认继承。
CSS布局与盒模型
CSS布局确定了内容大小与位置
盒模型
border box 和 content box 区别:height 与 width 大小指代的区别
内容盒子是内容的大小,
布局
- 常规流 Normal Flow
- 行级
- 块级
- 弹性盒子 FlexBox
- 网格布局 Grid
- 浮动布局
- 定位
- 相对定位
- 绝对定位
参考文章
- 青训营PPT课间与视频
- 什么是DOM
- MDN Web Docs