# html_css_note
**Repository Path**: szluyu99/html_css_note
## Basic Information
- **Project Name**: html_css_note
- **Description**: 重识 HTML 与 CSS 的代码笔记
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 0
- **Created**: 2021-05-28
- **Last Updated**: 2023-08-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
> 我的CSDN原文地址:[https://blog.csdn.net/weixin_43734095/article/details/117025820](https://blog.csdn.net/weixin_43734095/article/details/117025820)
@[toc](重识 HTML + CSS)
> B 站课程:[HTML5+CSS3 全面深度解析](https://www.bilibili.com/video/BV1R7411f7HZ)
所有代码:[https://gitee.com/szluyu99/html_css_note](https://gitee.com/szluyu99/html_css_note)
# 前言
实习了一段时间,做的 SpringBoot 相关的开发,对网页开发的搬砖更熟悉了....
由于经常翻各种前端文档(百度),大部分前端的知识点我都是比较清楚的;前端框架也是用过不少,像 BootStrap、Layui、ElementUI、Vue、jQuery..
我觉得后端开发人员好像普遍写不好 HTML 和 CSS(说的主要是我自己),基本上都是可以看懂(不懂也可以百度),并且可以在模版上修改成需要的样子,但是我觉得这样是不行的!**我立志要当一个前端基础扎实的后端程序员**!
很久以前系统的学习过 HTML、CSS,不过那个时候知识储备不太够,我感觉很多东西真的就是过了一遍。现在有了一定的实战经验的情况下,每天抽点时间再次学习一遍 HTML + CSS 的知识点,希望**对前端有个更清晰的认识**。
## 基本 HTML 标签
[【重识 HTML + CSS】网页基础知识、基本 HTML 标签](https://blog.csdn.net/weixin_43734095/article/details/114107003)
网页的基础知识
* 网页的显示过程
* 缓存 (cache) 技术
* 浏览器内核
常用 HTML 元素
* DOCTYPE 文档说明
* html 元素:根元素
lang 属性
head 元素:存放元数据
title 元素:网页的标题
meta 元素:网页的字符编码
base 元素:设置 a 元素的默认行为
* body 元素:网页的具体内容和结构
* h、p、strong 元素:文本样式
* pre、code、br 元素:结构样式
* 字符实体:显示特殊符号
* img 元素:显示图片
图片与像素
* a 元素:定义超链接
iframe 元素:嵌入 HTML 文档
锚点链接:在网页内进行跳转
伪链接:点击后不跳转 URL
图片链接
URL
标签语义化
## 基本 CSS 属性
[【重识 HTML + CSS】基本 CSS 属性](https://blog.csdn.net/weixin_43734095/article/details/116947115)
CSS 简介
* 内联样式、文档样式表、外部样式表
* @charset、@import
* 注释
* HTML 和 CSS 的编写准则
* 设置网页的图标
常用 CSS 属性
* 初识 CSS
* background-color、color、span 元素
* div 元素
* 【练习】div、span
* 颜色
CSS 属性 - 文本
* text-decoration 设置文字的装饰线
* letter-spacing、word-spacing 设置间距
* text-transform 设置大小写转换
* text-indent 设置第一行的缩进
* text-align 设置水平对齐方式
CSS 属性 - 字体
* font-size 设置文字大小
* font-family 设置文字的字体名称
* @font-face 让网页支持网络字体
* font-weight 设置文字的粗细
* font-style 设置文字的常规、斜体显示
* font-variant 设置小写字母的显示形式
## CSS 选择器
[【重识 HTML + CSS】CSS 选择器(1)](https://blog.csdn.net/weixin_43734095/article/details/116999139)
* 元素选择器 (type selectors):`div {}`
* 通用选择器 (universal selector):`* {}`
* id 选择器 (id selectors):`#xxx {}`
* 类选择器 (class selectors):`.xxx {}`
* 【练习】类选择器实现多种按钮样式
* 属性选择器 (attribute selectors)
* `[att]`
* `[[att=val]`
* `[[attr~=val]`
* `[[attr|=val]`
* `[[attr^=val]`
* `[[attr$=val]`
* `[[attr*=val]`
* 后代选择器 (descendant combinator):`div span {}`
* 子选择器 (child combinators):`div>span {}`
* 相邻兄弟选择器 (adjacent sibling combinator):`div+p`
* 全体兄弟选择器 (general sibling combinator):`div~p`
* 选择器组
* 交集选择器:`div.one {}`
* 并集选择器:`div, .one, [title="test"] {}`
* 【练习】让所有文本输入框的文字颜色都为红色
* 【练习】找到内容为 em2、em3、em4 的 em 元素
[【重识 HTML + CSS】CSS 选择器(2)](https://blog.csdn.net/weixin_43734095/article/details/117116525)
动态伪类:
* `a:link` 未访问的链接
* `a:visited` 已访问的链接
* `a:hover` 鼠标挪动到链接上
* `a:active` 激活的链接(鼠标在链接上长按住未松开)
* `a:focus` 指当前拥有输入焦点的元素(能接收键盘输入)
目标伪类 `:target` 当元素被锚点链接当作目标跳转之后起作用
语言伪类 `:lang`
元素状态伪类:
* `:enabled` 启用状态
* `:disabled` 禁用状态
* `:checked` 被选中状态
结构伪类:
* `:nth-child(an + b)`
* `:nth-last-child(an + b)`
* `:nth-of-type(an + b)`
* `:nth-last-of-type(an + b)`
* `:empty` 代表里面完全空白的元素
否定伪类:`:not(x)`,x 为简单选择器
伪元素:
* `::first-line` 可以针对首行文本设置属性
* `::first-letter` 对首字母设置属性
* `::before` 在元素内容之前插入其他内容
* `::after` 在元素内容之后插入其他内容
## CSS 特性
[【重识 HTML + CSS】CSS 特性](https://blog.csdn.net/weixin_43734095/article/details/117336026)
* CSS 属性的继承
* CSS 属性的层叠
* CSS 属性的优先级
`!important` > 内联样式 > id > class、属性、伪类 > 标签(元素)、伪元素 > 通用(*)
* CSS 属性使用总结
## HTML 列表、表格、表单
[【重识 HTML + CSS】列表、表格、表单](https://blog.csdn.net/weixin_43734095/article/details/117360870)
>代码:[列表、表格代码](https://gitee.com/szluyu99/html_css_note/tree/master/day05)、[表单代码](https://gitee.com/szluyu99/html_css_note/tree/master/day06/01-%E8%A1%A8%E5%8D%95)
列表
* 有序列表 ol、li
* 无序列表 ul、li
* 定义列表 dl、dt、dd
* 列表相关的 CSS 属性:list-style-type、list-style-image、list-style-position、list-style
表格
* table 的常用属性
* tr 的常用属性
* th、td 的常用属性
* 细线表格的实现 border-collapse
* 表格的其他元素 tbody、caption、thead、tfoot、th
* 单元格的合并
* CSS 属性 - border-spacing
表单
* input 常用属性
布尔属性的概念
* 按钮 - input 和 button
* label 绑定 input
* radio
* checkbox
* 隐藏域 (type=hidden)
* select 和 option
* fieldset 和 legend
* form 的常用属性
* get 和 post
* 表单练习 - 集成各种搜索引擎
## HTML 元素类型
[【重识 HTML + CSS】元素类型、display、visibility、overflow](https://blog.csdn.net/weixin_43734095/article/details/117392493)
> 代码:[元素类型](https://gitee.com/szluyu99/html_css_note/tree/master/day06/02-%E5%85%83%E7%B4%A0%E7%B1%BB%E5%9E%8B)
元素类型
* 块级、行内级元素
* 替换、非替换元素
* 元素的分类总结
CSS 属性 - `display`
* inline-block
* 练习 - 邮箱显示与选择
* 练习 - 分页跳转栏
* display 的其他取值
CSS 属性 - `visibility`
CSS 属性 - `overflow`
细节:元素之间的空格
## 盒子模型相关知识点
[【重识 HTML + CSS】盒子模型相关知识点](https://blog.csdn.net/weixin_43734095/article/details/117407861)
> 代码:[https://gitee.com/szluyu99/html_css_note/tree/master/day07/02-盒子模型](https://gitee.com/szluyu99/html_css_note/tree/master/day07/02-%E7%9B%92%E5%AD%90%E6%A8%A1%E5%9E%8B)
盒子模型 (Box Model)
宽度、高度相关 CSS 属性 - `width`、`height`
内边距相关 CSS 属性 - `padding`
外边距相关 CSS 属性 - `margin`
* 【常见问题】上下 margin 传递
* 【常见问题】上下 margin 折叠
border 边框
* CSS 属性 - `border-width`、`border-color`、`border-style`
* CSS 属性 - `border-top`、`border-right`、`border-bottom`、`border-left`、`border`
* 边框的形状 - 三角形、双色平分
* 行内级非替换元素的注意点
* CSS 属性 - `border-radius `圆角
CSS 属性 - `outline`
CSS 属性 - `box-shadow`
CSS 属性 - `text-shadow`
CSS 属性 - `box-sizing`
元素的水平居中显示(行内级、块级、inline-block)
## Photoshop 简单使用
[【重识 HTML + CSS】Photoshop 简单使用](https://blog.csdn.net/weixin_43734095/article/details/117536494)
Photoshop 简介
* 常用功能、面板、设置
* 常用快捷键
* 矩形选框工具 (D)
* 裁剪工具、切片工具 (C)
* 吸管工具 (I)
* 参考线
* 文字工具 (T)
* 移动工具 (V)
Photoshop 操作 - 切图
* 规则图形:矩形选择框工具
* 规则图形:切片工具
* 不规则图形:利用魔棒工具 + 矩形选择框
Photoshop 操作 - 测量
* 盒子模型属性:矩形选框工具
* 盒子模型属性:切片工具
* 文字测量:参考线 + 矩形选框工具
Photoshop 文件格式 - psd
## 背景相关知识点
[【重识 HTML + CSS】背景相关知识点](https://blog.csdn.net/weixin_43734095/article/details/117592992)
> 代码:[https://gitee.com/szluyu99/html_css_note/tree/master/day08/02-背景](https://gitee.com/szluyu99/html_css_note/tree/master/day08/02-%E8%83%8C%E6%99%AF)
* CSS 属性 - `background-image` 设置元素背景图片
* CSS 属性 - `background-repeat` 设置背景图片是否平铺
* CSS 属性 - `background-size` 设置背景图片大小
* CSS 属性 - `background-position` 设置背景图片具体位置
* 练习 - 滑动门技术
* 练习 - 大图适配
* CSS Sprite(精灵图)
* CSS 属性 - `background-attachment`
* CSS 属性 - `background`
`background-image` 元素 和 img 标签 的选择
## 定位相关知识点
[【重识 HTML + CSS】定位](https://blog.csdn.net/weixin_43734095/article/details/117622053)
> 代码:[https://gitee.com/szluyu99/html_css_note/tree/master/day09/01-定位](https://gitee.com/szluyu99/html_css_note/tree/master/day09/01-%E5%AE%9A%E4%BD%8D)
标准流 (Normal Flow)
CSS 属性 - position
* `relative` - 相对定位
* `static` - 静态定位
* `fixed` - 固定定位
画布 (Canvas) 和视口 (Viewport)
脱标元素的特点
* `absolute` - 绝对定位
* 子绝父相
* 练习 - 蒙版
* 绝对定位技巧
元素的层叠
* CSS属性 - z-index
## 浮动相关知识点
[【重识 HTML + CSS】浮动](https://blog.csdn.net/weixin_43734095/article/details/117858490)
> 代码:[https://gitee.com/szluyu99/html_css_note/tree/master/day10/01-浮动](https://gitee.com/szluyu99/html_css_note/tree/master/day10/01-%E6%B5%AE%E5%8A%A8)
CSS 属性 - float
* 浮动的规则
* 浮动的应用
* 浮动存在的问题:高度坍塌
* 清浮动的常见方法
* CSS 属性 - clear
* 各种定位方案对比
## 官方文档的阅读
[【重识 HTML + CSS】官方文档的阅读](https://blog.csdn.net/weixin_43734095/article/details/118227120)
CSS 属性的描述
CSS 属性的取值
* 组合 (combinators)
* 出现次数 (multipliers)
* 类型 (types)
< number >、< integer >
< length >
< time >
< angle >
< percentage >
< string >
< url >
## 项目实战 - 网易严选主页
[【重识 HTML + CSS】项目实战](https://blog.csdn.net/weixin_43734095/article/details/118254611)
>项目 git 网址:[https://gitee.com/szluyu99/html_css_note/tree/master/yanxuan](https://gitee.com/szluyu99/html_css_note/tree/master/yanxuan)
项目整体页面:[项目预览图](https://gitee.com/szluyu99/html_css_note/blob/master/yanxuan/%E7%BD%91%E6%98%93%E4%B8%A5%E9%80%89.png)
* 常见项目目录
* CSS Reset
* CSS 编码规范
* 浏览器私有前缀
* CSS 知识补充
CSS 属性 - white-space
CSS 属性 - text-overflow
image-set
inline-level box 和 line box
基线 - baseline
CSS 属性 - vertical-align
* 代码相关
去除空格的js函数
单行文字显示省略号
* 项目界面
## HTML + CSS 总结
[HTML 与 CSS 总结](https://blog.csdn.net/weixin_43734095/article/details/118371867)
HTML 元素
* 脱标元素
* 非脱标元素
CSS属性
* 盒子模型
* 定位
* 文字
* 字体
* 背景
* 动画
# WebStorm 常用快捷键
> 慢慢积累...
文本编辑相关快捷键:
| 作用 | 快捷键 |
|--|--|
| 使用特定代码包裹选中的内容 | Ctrl + Alt + T |
其他快捷键:
| 作用 | 快捷键 |
|--|--|
| 重命名文件 | Shift + F6 |
| 展开项目结构 | Alt + 1 |
# flex 布局
[flex 布局](https://blog.csdn.net/weixin_43734095/article/details/118379559)
flex 简介
flex container 相关属性
* flex 模块布局
* flex-direction:设置 main axis 的方向
* justify-content:设置 flex items 在 main axis 对齐方式
* align-items:设置 flex items 在 cross axis 对齐方式
* flex-wrap:设置 flex container 单行还是多行
* flex-flow:简写属性 (flex-direction || flex-wrap)
* align-content:多行 flex items 在 cross axis 上的对齐方式
* 总结
flex items 相关属性
* order:决定 flex items 的排布顺序
* align-self:覆盖 flex container 设置的 align-items
* flex-grow:决定了 flex items 如何拓展
* flex-shrink:决定了 flex items 如何收缩
* flex-basic:设置 flex items 在 main axis 上的 base size
* flex:简写属性 (flew-grow flew-shrink? || flex-basis)
* 总结
# VsCode 好用的前端插件
* **Auto Rename Tag**:自动完成另一侧标签的同步修改
* **HTML CSS Support**:智能提示 CSS 类名以及id
* **Bracket Pair Colorizer**:给括号加上不同的颜色
* **HTML Snippets**:智能提示 HTML 标签,以及标签含义
* **Path Intellisense**:自动补全路径
* **CSS Peek**:根据类名寻找 CSS 代码
* **open in browser**:快速使用浏览器打开 Html 页面
* **Live Server**:打开网页更改代码后自动更新页面,无需刷新
* **jQuery Code Snippets**:jQuery 代码智能提示
* **filesize**:显示当前文件大小
* **vscode-icons**:好看的图标样式
* **Panda Theme**:好看的黑白主题配色

**Dracula Official**
