一文说完前端
白鹤忘机HTML
HTML 超文本标记语言
- 超文本:链接
- 标记:标签,带尖括号的文本<>
标签结构
- 标签要成对出现,中间包裹内容
- <>里面放英文字母(标签名)
- 标签分类:双标签和单标签
- 自闭合标签
- 单标签:
<img />
、<br />
- 双标签:
<a></a>
、<p></p>
标签关系
- 嵌套关系:标签中包含标签
- 并列关系:标签并列出现
HTML骨架
- html:整个网页
- head:网页头部,用来存放给浏览器看的信息,例如 CSS
- title:网页标签栏标题
- body:网页主体,用来存放给用户看的信息,例如图片、文字
快速生成骨架:!+回车
注释
在 VS Code 中,添加 / 删除注释的快捷键:Ctrl + /
标题标签
<h1>一级标题</h1> |
注意:
- 一级标题在一个网页中只能用一次,用来放新闻标题或网页的 logo
- 独占一行(换行)
段落标签
<p>段落</p> |
特点:
- 独占一行
- 段落之间存在间隙
换行和水平线
- 换行:br
- 水平线:hr
文本格式化标签
强调 | 省略 | 作用 |
---|---|---|
strong | b | 加粗 |
em | i | 倾向 |
ins | u | 下划线 |
del | s | 删除线 |
图像标签
作用:在网页中插入图片
<img src="图片的 URL"> |
图片位置可以使用 ./ 选择本地图片(Linux系统的)
src用于指定图像的位置和名称,是必须属性。
图像属性
属性 | 作用 | 说明 |
---|---|---|
alt | 替换文本 | 图片无法显示时显示的文字 |
title | 提示文本 | 鼠标悬停时显示的文字 |
width | 图片宽度 | 值为数字,无单位 |
height | 图片高度 | 值为数字,无单位 |
属性语法:
- 属性名=”属性值”
- 属性写在尖括号里面,标签名后面,标签名和属性之间用空格隔开,不区分先后顺序
<img src="图片的 URL" alt="替换文本" title="提示文本"> |
注意:游览器缩放图片是等比例缩放
路径(同Linux)
绝对路径:以根目录为起点
相对路径:以当前目录为起点
.
:表示当前目录 如:cd ./Desktop
和cd Desktop
一样表示切换到当前目录下的Desktop目录中
..
:表示上一级目录 如:cd ..
切换回上一级目录 cd ../..
表示切换到上两级目录
/
:表示进入某个文件夹里面
注意:
- Windows 默认是 \ ,其他系统是 /,建议统一写为 /
- 特殊的绝对路径 → 文件的在线网址,应用场景:网页底部友情链接
超链接标签
作用:点击跳转到其他页面
<a href="网站或者本地文件">说明的文字如:跳转到yzf522</a> |
超链接默认是在当前窗口跳转页面,添加 target=”_blank” 实现新窗口打开页面。
拓展:开发初期,不确定跳转地址,则 href 属性值写为 #,表示空链接,页面不会跳转,在当前页面刷新一次。
<a>
标签是HTML中用于创建超链接的标签,可以用来链接到另一个网页、文件、电子邮件地址、电话号码等。它是一个双标签,有开始和结束标签。
基本语法
<a href="URL">链接文本</a> |
href
属性:定义要链接到的目标 URL 或资源。- 链接文本:显示给用户,用户点击此文本就会跳转到指定的链接。
使用示例
链接到网页
<a href="https://www.example.com">访问Example网站</a>
当用户点击 “访问Example网站”,会跳转到 “https://www.example.com"。
链接到同一页面的不同部分(锚链接)
<a href="#section1">跳转到第1部分</a>
<!-- 在页面的另一部分添加锚点 -->
<h2 id="section1">第1部分</h2>点击链接会跳转到页面中标记为
id="section1"
的位置。链接到电子邮件地址
<a href="mailto:example@example.com">发送邮件</a>
点击该链接时,会打开用户的默认邮件客户端,准备发送到指定的电子邮件地址。
链接到电话号码
<a href="tel:+1234567890">拨打电话</a>
点击该链接会在移动设备或支持拨号的设备上直接拨打号码。
在新窗口中打开链接
<a href="https://www.example.com" target="_blank">在新窗口中打开Example网站</a>
使用
target="_blank"
属性,可以在新窗口或新标签中打开链接。下载文件
<a href="file.pdf" download>下载文件</a>
使用
download
属性,用户点击链接时会直接下载文件而不是打开它。
其他常见属性
**
target
**:用于指定链接如何打开。_blank
:在新窗口或新标签页中打开。_self
:在当前窗口打开(默认行为)。_parent
:在父框架中打开。_top
:在整个浏览器窗口中打开,忽略任何嵌套的框架。
**
rel
**:定义链接与当前页面的关系,常用于 SEO 或安全。nofollow
:告诉搜索引擎不要跟随此链接。noopener
或noreferrer
:提升安全性,防止打开的新页面访问原页面。
完整示例
<a href="https://www.example.com" target="_blank" rel="noopener noreferrer">访问Example网站</a> |
这个链接会在新标签页中打开,并且使用 rel="noopener noreferrer"
来确保安全性,防止新页面访问当前页面的窗口对象。
总结
href
属性 是<a>
标签最重要的属性,用于定义目标链接。- 可以使用
target
控制链接的打开方式。 rel
提供了关于链接和页面关系的额外信息。
音频
<audio src="音频的 URL" controls loop autoplay></audio> |
属性 | 作用 | 特殊说明 |
---|---|---|
src | 音频的 URL | 支持mp3,Ogg,Wav |
controls | 显示控制面板 | |
loop | 循环播放 | |
autoplay | 自动播放 | 游览器一般会禁用自动播放 |
注意:
在 HTML5 里面,如果属性名和属性值完全一样,可以简写为一个单词,所以controls这些属性名是布尔函数
视频
<video src="视频的 URL"></video> |
属性 | 作用 | 特殊说明 |
---|---|---|
src | 音频的 URL | 支持mp4,Ogg,WebM |
controls | 显示控制面板 | |
loop | 循环播放 | |
autoplay | 自动播放 | 游览器支持在静音状态下自动播放 |
muted | 静音播放 |
注意:
想要自动播放,必须有 muted 属性
列表
列表分类:无序列表、有序列表、定义列表
无序列表:
<ul> |
有序列表:
<ol> |
定义列表:
<dl> |
注意:
- 父级里面只能包含对应的子级
- 子级里面可以是任何内容
表格
标签名 | 说明 |
---|---|
table | 表格 |
tr | 行 |
th(内容) | 表头单元格(分类名) |
td(内容) | 内容单元格 |
thead (表格结构标签) | 表示表格头部内容(不显示) |
tbody (表格结构标签) | 表示表格内容主体区域(不显示) |
tfoot (表格结构标签) | 表示表格底部汇总信息区域(不显示) |
rowspan=“数字”(合并) | 跨行合并,数字表示合并个数,保留最上单元格,删除合并的,父级为内容标签 |
colspan=“数字”(合并) | 跨列合并,数字表示合并个数,保留最左单元格,删除合并的,父级为内容标签 |
<table border="1"> |
注意:
- 不能跨表格结构标签合并单元格(thead、tbody、tfoot)
- 在网页中,表格默认没有边框线,使用 border 属性可以为表格添加边框线(数字表示像素大小)
表单
作用:收集用户信息
使用场景:
- 登录页面
- 注册页面
- 搜索区域
input 标签
input 标签 type 属性值不同,则功能不同
<input type="..." > |
type属性值 | 说明 |
---|---|
text | 文本框(单行) |
password | 密码框(以·的方式显示) |
radio | 单选框 |
checkbox | 多选框 |
file | 上传文件 |
input 标签占位文本
占位文本:提示信息,文本框和密码框都可以使用。
<input type="..." placeholder="提示信息"> |
单选框
属性名 | 作用 | 特殊说明 |
---|---|---|
name | 组名(相同时一组只能选择一个,实现单选功能) | 组名自定义 |
checked | 默认选择 | 布尔类型 |
性别: |
上传文件
默认情况下,文件上传表单控件只能上传一个文件,添加 multiple 属性可以实现文件多选功能
<input type="file" multiple> |
多选框
多选框也叫复选框,默认选中:checked
<input type="checkbox" checked> 我同意 |
下拉菜单
默认显示第一项,selected 属性实现默认选中功能
城市: |
文本域(多行)
<textarea>默认提示文字</textarea> |
注意:
- 实际开发中,使用 CSS 设置 文本域的尺寸
- 实际开发中,一般禁用右下角的拖拽功能,防止影响其他标签
label 标签
作用:网页中,某个标签的说明文本
经验:用 label 标签绑定文字和表单控件的关系,增大表单控件的点击范围
写法一
label 标签只包裹内容,不包裹表单控件
设置 label 标签的 for 属性值 和表单控件的 id 属性值相同
<input type="radio" id="man"> <label for="man">男</label> |
写法二:使用 label 标签包裹文字和表单控件,不需要id属性
<label> <input type="radio"> 女 </label> |
注意:支持 label 标签增大点击范围的表单控件:文本框、密码框、上传文件、单选框、多选框、下拉菜单、文本域等等。
按钮
<button type="">按钮</button> |
type属性值 | 说明 |
---|---|
submit | 提交到后台 |
reset | 重置 |
button | 普通按钮,一般配合JS使用 |
布局标签
- div:独占一行
- span:不换行
<div>div 标签,独占一行</div> |
标签名 | 语义 |
---|---|
header | 网页头部 |
nav | 网页导航 |
footer | 网页底部 |
aside | 网页侧边栏 |
section | 网页区块 |
article | 网页文章 |
字符实体
显示 | 实体名称 |
---|---|
空格 | & nbsp; |
< | & lt |
> | & gt |
CSS
书写位置
- 内部样式表:title 标签下方添加 style 双标签,style 标签里面书写 CSS 代码
- 外部样式表:CSS 代码写在单独的 CSS 文件中(**.css**),在 HTML 使用 link 标签引入
- 行内样式:写在标签的 style 属性值里,配合 JavaScript 使用
<style> |
属性名和属性值成对出现 → 键值对
<link rel="stylesheet" href=" css路径 "> |
<div style="color: red;">这是 div 标签</div> |
基础选择器
标签选择器
使用标签名作为选择器 → 选中同名标签设置相同的样式(标签选择器无法差异化同名标签的显示效果)
<style> |
类选择器
步骤:
- 定义类选择器 →在style中定义 .类名{ 属性 }
- 使用类选择器 → 标签添加 **class=”类名”
<style> |
注意:一个标签可以使用多个类名
id选择器
id 选择器一般配合 JavaScript 使用,很少用来设置 CSS 样式
步骤:
- 定义 id 选择器 → #id名
- 使用 id 选择器 → 标签添加 id= “id名”
<style> |
注意:和类选择器不同,同一个 id 选择器在一个页面只能使用一次
通配符选择器
*****,不需要调用,浏览器自动查找页面所有标签,设置相同的样式
* { color: red;} |
使用:通配符选择器可以用于清除标签的默认样式,例如:标签默认的外边距、内边距
盒子
作为选择器属性,在标签中使用
属性名 | 作用 |
---|---|
width | 宽度 |
height | 高度 |
background-color | 背景色 |
.orange { |
文字控制属性
字体大小
- 属性名:font-size
- 属性值:文字尺寸,PC 端网页最常用的单位 px
p { font-size: 30px;} |
字体加粗
属性名:font-weight
属性值:
- 400正常
- 700加粗
font-weight:400 不加粗 |
字体倾斜
属性名:font-style
属性值
- 正常(不倾斜):normal
- 倾斜:italic
font-style:normal |
行高
属性名:line-height
属性值
- 数字 + px
- 数字(当前标签font-size属性值的倍数)
line-height: 30px; |
单行文字垂直居中
垂直居中技巧:行高属性值等于盒子高度属性值
注意:该技巧适用于单行文字垂直居中效果
div { |
字体族
属性名:font-family
属性值:字体名
font-family: 楷体; |
font-family属性值可以书写多个字体名,各个字体名用逗号隔开,执行顺序是从左向右依次查找
font-family: Microsoft YaHei, Heiti SC, tahoma, arial, Hiragino Sans GB, "\5B8B\4F53", sans-serif; |
字体font复合属性
使用场景:设置网页文字公共样式,全部统一样式
一个属性对应多个值的写法,各个属性值之间用空格隔开
font: 是否倾斜 是否加粗 字号/行高 字体(必须按顺序书写)字号和字体值必须书写
div {font: italic 700 30px/2 楷体;} |
文本缩进
属性名:text-indent
属性值:
- 数字 + px
- 数字 + em(推荐:1em = 当前标签的字号大小)2em=缩进2个字
p {text-indent: 2em;} |
文本和图片水平对齐方式
作用:控制内容水平对齐方式
属性名:text-align
属性值:left(默认),center,right
注意:操作对象是文字和图片内容,将内容在标签里面操作,不影响标签位置
<style> |
文本修饰线
属性名: text-decoration
属性值:
属性值 | 效果 |
---|---|
none | 无 |
underline | 下划线 |
line-through | 删除线 |
overline | 上划线 |
文字颜色
属性名: color
属性值:
表示方式 | 属性值 | 说明 | 使用场景 |
---|---|---|---|
颜色关键字 | 颜色英文单词 | 学习测试 | |
rgb表示法 | rgb(r,g,b) | 分别表示红绿蓝(0~155) | 了解 |
rgba表示法 | rgba(r,g,b,a) | a表示透明度 | 实现透明色 |
十六进制表示法 | #RRGGBB | 两个一组,对应红绿蓝,0-f,可简写#RGB | 设计稿 |
提示:只要属性值为颜色,都可以使用上述四种颜色表示方式
复合选择器
定义:由两个或多个基础选择器,通过不同的方式组合而成
后代选择器(祖宗关系)
父选择器里面的所有子选择器(包括套娃)
选择器写法:父选择器 子选择器 { CSS 属性},父子选择器之间用空格隔开
<style> |
子代选择器(父子关系)
选中某选择器的子代选择器(最近的子级)。
选择器写法:**父选择器 > 子选择器 { CSS 属性}**,父子选择器之间用 > 隔开
<style> |
并集选择器(同辈关系)
选择器写法:**选择器1, 选择器2, …, 选择器N { CSS 属性}**,选择器之间用 **,**隔开
<style> |
交集选择器 (婚姻关系)
交集选择器:选中同时满足多个条件的选择器。
选择器写法:**选择器1选择器2 { CSS 属性}**,选择器之间连写,没有任何符号。
<style> |
注意:如果交集选择器中有标签选择器,标签选择器必须书写在最前面
伪类选择器 (情人关系)
伪类选择器:伪类表示元素状态,选中元素的某个状态设置样式。
鼠标悬停状态:选择器:hover { CSS 属性 }
<style> |
超链接伪类
选择器状态 | 作用 |
---|---|
link | 访问前 |
visited | 访问后 |
hover | 鼠标悬停 |
active | 单击时(激活) |
注意:如果要给超链接设置以上四个状态,需要按 LVHA 的顺序书写
经验:工作中,只设置悬停状态和一个超链接默认样式
选择器的继承性
子级默认继承父级的文字控制属性(如果子级自己有文字属性,则不会继承已有的属性)
一般会在body的css中写共用的文字属性
<style> |
选择器的层叠性
特点:
- 相同的属性会覆盖:后面的 CSS 属性覆盖前面的 CSS 属性
- 不同的属性会叠加:不同的 CSS 属性都生效
<style> |
注意:选择器类型相同则遵循层叠性,否则按选择器优先级判断
优先级
优先级:也叫权重,当一个标签使用了多种选择器时,基于不同种类的选择器的匹配规则。
<style> |
基础选择器:通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important
(选中标签的范围越大,优先级越低)
复合选择器:需要权重叠加计算,通配符选择器 < 标签选择器 < 类选择器 < id选择器 < 行内样式 < !important,
- 从左向右依次比较选个数,同一级个数多的优先级高,如果个数相同,则向后比较
- !important 权重最高
- 继承权重最低
Emmet 写法
Emmet写法:代码的简写方式,输入缩写 VS Code 会自动生成对应的代码。
CSS:大多数简写方式为属性单词的首字母
背景属性
网页中,使用背景图实现装饰性的图片效果
- 属性名:background-image(bgi)
- 属性值:url(背景图 URL)
div { |
平铺方式
属性名:background-repeat(bgr)
属性值 | 效果 |
---|---|
no-repeat | 不平铺 |
repeat | 平铺(默认) |
repeat-x | 水平平铺 |
repeat-y | 垂直平铺 |
背景图位置
属性名:background-position(bgp)
属性值:水平方向位置 垂直方向位置
关键字(可以组合)
关键字 位置 left 左 right 右 center 居中 top 顶 bottom 底
- 坐标(x y)
- x:正数向右;负数向左
- y:正数向下;负数向上
{ |
注意:
- 关键字取值方式写法,可以颠倒取值顺序
- 可以只写一个关键字,另一个方向默认为居中;数字只写一个值表示水平方向,垂直方向为居中
背景图缩放
作用:设置背景图大小
属性名:background-size(bgz)
常用属性值:
关键字
cover:等比例缩放背景图片以完全覆盖背景区,可能背景图片显示不全
contain:等比例缩放背景图片以完全装入背景区,可能背景区部分空白
百分比:根据盒子尺寸计算图片大小
数字 + 单位(例如:px)
div { |
提示:工作中,图片比例与盒子比例相同,使用 cover 或 contain 缩放背景图效果相同
背景图固定
作用:背景不会随着元素的内容滚动。
属性名:background-attachment(bga)
属性值:fixed
body { |
背景复合属性
属性名:background(bg)
属性值:背景色 背景图 背景图平铺方式 背景图位置/背景图缩放 背景图固定(空格隔开各个属性值,不区分向后顺序)
div { |
标签显示模式
块级元素(div)
- 独占一行
- 宽度默认是父级的100%
- 添加宽高属性生效
行内元素(span)
- 一行可以显示多个
- 设置宽高属性不生效
- 宽高尺寸由内容撑开
行内块元素 (图片)
- 一行可以显示多个
- 设置宽高属性生效
- 宽高尺寸也可以由内容撑开
转换标签显示模式
属性:display
属性值:
- block(块级)
- inline-block(行内块)
- inline(行内)
结构伪类选择器
选择器 | 说明 |
---|---|
A选择器:first-cuild{ } | 查找第一个A选择器的元素 |
A选择器:last-cuild{ } | 查找最后一个A选择器的元素 |
A选择器:nth-cuild(N){ } | 查找N个A选择器的元素 |
注意:N可以是公式,如 2n(偶数),5n(5的倍数),公式中的n取值从 0 开始
li:first-child { background-color: green;} |
伪元素选择器
作用:创建虚拟元素(伪元素),用来摆放装饰性的内容
选择器 | 说明 |
---|---|
选择器::before{} | 在选择器最前面添加一个伪元素 |
选择器::fater{} | 在选择器最后面添加一个伪元素 |
注意:
- 必须设置 content: ””属性,用来 设置伪元素的内容,如果没有内容,则引号留空即可
- 伪元素默认是行内显示模式
- 权重和标签选择器相同
div::before { |
盒子模型
- 内容区域 – width & height
- 内边距 – padding(出现在内容与盒子边缘之间)
- 边框线 – border
- 外边距 – margin(出现在盒子外面)
div { |
边框线
四个方向
属性名:border(bd)
属性值:边框线粗细 线条样式 颜色(不区分顺序)
属性值 | 线条样式 |
---|---|
soild | 实线 |
dashed | 虚线 |
dotted | 点线 |
div { |
单方向边框线
属性名:border-方位名词(bd+方位名词首字母,例如,bdl)
属性值:边框线粗细 线条样式 颜色(不区分顺序)
div { |
内边距
作用:设置 内容 与 盒子边缘 之间的距离。
- 属性名:padding / padding-方位名词
div { |
提示:添加 padding 会撑大盒子
padding 多值写法:
padding: 30px 20xp 30xp 40xp; 上 右 下 左 |
技巧:从上开始顺时针赋值,当前方向没有数值则与对面取值相同
尺寸计算
默认情况:盒子尺寸 = 内容尺寸 + 边框线尺寸 + 内边距尺寸
结论:给盒子加边框线尺寸和内边距尺寸会撑大盒子
解决:
- 手动做减法,盒子的宽高减掉边框线尺寸和内边距尺寸
- 內减模式:添加属性 box-sizing: border-box
外边距
作用:拉开两个盒子之间的距离
属性名:margin
提示:与 padding 属性值写法、含义相同
版心居中
左右 margin 值 为 auto(盒子要有宽度)
左右 margin 值 为 auto(盒子要有宽度) |
清除默认样式
清除标签默认的样式,比如:默认的内外边距
/* 清除默认内外边距 */ |
元素溢出(内容超出盒子大小)
作用:控制溢出元素的内容的显示方式。
属性名:overflow
属性值:
属性值 | 效果 |
---|---|
hidden | 隐藏超出的内容 |
scroll | 右边显示滚动条(无论是否超出) |
auto | 右边显示滚动条,(超出才有) |
外边距问题
合并现象
场景:垂直排列的兄弟盒子,上下 margin 会合并
现象:取两个 margin 中的较大值生效
.one { |
外边距塌陷
场景:父子级的标签,子级的添加 上外边距 会产生塌陷问题
现象:导致父级一起向下移动,不是在父级的基础上形成外边距
解决方法:
- 取消外边距子级,父级设置内边距
- 父级设置 overflow: hidden,元素溢出,会查找盒子的位置尺寸,修正
- 父级设置 border-top,设置上边框线,会查找盒子的位置尺寸,修正
行内元素 – 内外边距问题
场景:行内元素添加 margin 和 padding,无法改变元素垂直位置
解决方法:给行内元素添加 line-height(行高) 可以改变垂直位置
span { |
外边框为圆角
属性名:border-radius
属性值:数字+px / 百分比
提示:属性值是圆角半径
多值写法:从左上角开始顺时针赋值,当前方向没有数值则与对面取值相同
正圆形状(头像):给正方形盒子设置圆角属性值为 宽高的一半 / 50%
img { |
胶囊形状(按钮):给长方形盒子设置圆角属性值为 盒子高度的一半
div { |
盒子阴影(拓展)
作用:给元素设置阴影效果
属性名:box-shadow
属性值:X 轴偏移量 Y 轴偏移量 模糊半径 扩散半径 颜色 内外阴影
注意:
- X 轴偏移量 和 Y 轴偏移量 必须书写
- 默认是外阴影,内阴影需要添加 inset
div { |
浮动
基本使用
作用:让块元素水平排列。
属性名:float
属性值
- left:左对齐
- right:右对齐
<style> |
特点:
- 浮动后的盒子顶对齐
- 浮动后的盒子具备行内块特点
- 浮动后的盒子脱标,**不占用标准流的位置
清除浮动
场景:浮动元素会脱标,如果父级没有高度,子级实体无法撑开父级高度,下面的块会上来(可能导致页面布局错乱)
解决方法:清除浮动(清除浮动带来的影响)
<style> |
额外标签法
在父元素内容的最后添加一个块级元素,设置 CSS 属性 clear: both
<style> |
单伪元素法
- 准备 after 伪元素
.clearfix::after { |
2.父级使用 clearfix 类
<div class="father clearfix"></div> |
双伪元素法
- 准备 after 和 before 伪元素
/* before 解决外边距塌陷问题 */ |
- 父级使用 clearfix 类
<div class="father clearfix"></div> |
overfow法
在父级的css添加 overflow: hidden;
.father { |
Flex布局
Flex 布局也叫弹性布局,是浏览器提倡的布局模型,非常适合结构化布局,提供了强大的空间分布和对齐能力。
Flex 模型不会产生浮动布局中脱标现象,布局网页更简单、更灵活。
设置方式:给父元素设置 display: flex,子元素可以自动挤压或拉伸
组成部分:
- 弹性容器
- 弹性盒子
- 主轴:默认在水平方向
- 侧轴 / 交叉轴:默认在垂直方向
主轴对齐方式
属性名:justify-content
属性值 | 效果效果(主轴为X时起点为上) |
---|---|
flex-start | 默认值,从左到右排序 |
flex-end | 从右到左排序 |
center | 居中 |
space-between | 左右无空间,中间隔开 ,A1A1A |
space-around | 空间在盒子两边,1A11A11A1 |
space-evenly | 空间在盒子两边,盒子间隔相同,1A1A1 |
侧轴对齐方式
属性名:
- align-items:当前弹性容器内所有弹性盒子的侧轴对齐方式(给弹性容器设置)
- align-self:单独控制某个弹性盒子的侧轴对齐方式(给弹性盒子设置)
属性值 | 效果 |
---|---|
stretch | 盒子拉伸铺满容器,(如果盒子设置了高、宽则无效) |
center | 盒子在侧轴中间居中排序 |
flex-start | 盒子在容器起点开始排序 |
flex-end | 盒子在容器终点开始排序 |
注意:不是盒子竖着排,是横排在容器Y轴的位置
修改主轴方向(盒子竖排)
主轴默认在水平方向,侧轴默认在垂直方向
属性名:flex-direction
属性值 | 效果 |
---|---|
row | 水平方向,从左到右 |
clolumn | 垂直方向,从上到下 |
row-reverse | 水平方向,从右到左 |
clolumn–reverse | 垂直方向,从下到上 |
弹性伸缩比
作用:控制弹性盒子的主轴方向的尺寸。
属性名:flex
属性值:整数数字,表示占用父级剩余尺寸的份数
(如果只设置了一份,则占用全部,如果A为1,B为2,则B为全部的2/3)
弹性盒子换行
弹性盒子可以自动挤压或拉伸,默认情况下,所有弹性盒子都在一行显示。
属性名:flex-wrap
属性值
- wrap:换行
- nowrap:不换行(默认)
行内对齐方式
属性名:align-content
属性值 | 效果(主轴为X时起点为上) |
---|---|
flex-start | 默认值,从上到下排序 |
flex-end | 从从下到上排序 |
center | 居中 |
space-between | 上下无空间,中间隔开 ,A1A1A |
space-around | 空间在盒子两边,1A11A11A1 |
space-evenly | 空间在盒子两边,盒子间隔相同,1A1A1 |
定位
作用:灵活的改变盒子在网页中的位置
属性名:position
属性值:
position(相对定位):
- 不脱标,占用自己原来位置
- 显示模式特点保持不变
- 设置边偏移则相对自己原来位置移动
absolute(绝对定位):
使用场景:子级绝对定位,父级相对定位(子绝父相)父级移动,子级跟着移动
- 脱标,不占位
- 显示模式具备行内块特点
- 设置边偏移则相对最近的已经定位的祖先元素改变位置
- 如果祖先元素都未定位,则相对浏览器可视区改变位置
边偏移:设置盒子的位置
- left
- right
- top
- bottom
.father { |
定位水平垂直都居中(弹窗)
实现步骤:
- 绝对定位
- 水平、垂直边偏移为 50%
- 子级向左、上移动自身尺寸的一半
- 左、上的外边距为 –尺寸的一半
- transform: translate(-50%, -50%)
img { |
固定定位(导航)
position: fixed
场景:元素的位置在网页滚动时不会改变
特点:
- 脱标,不占位
- 显示模式具备行内块特点
- 设置边偏移相对浏览器窗口改变位置
div { |
堆叠层级z-index
默认效果:按照标签书写顺序,后来者居上
作用:设置定位元素的层级顺序,改变定位元素的显示顺序
属性名:z-index
属性值:整数数字(默认值为0,取值越大,层级越高)
.box1 { |
CSS精灵
CSS 精灵,也叫 CSS Sprites,是一种网页图片应用处理方式。把网页中一些背景图片整合到一张图片文件中,再background-position 精确的定位出背景图片的位置。
优点:减少服务器被请求次数,减轻服务器的压力,提高页面加载速度
实现步骤:
- 创建盒子,盒子尺寸与小图尺寸相同
- 设置盒子背景图为精灵图
- 添加 background-position 属性,改变背景图位置
3.1 使用 PxCook 测量小图片左上角坐标
3.2 取负数坐标为 background-position 属性值(向左上移动图片位置)
字体图标
字体图标:展示的是图标,本质是字体
作用:在网页中添加简单的、颜色单一的小图标
优点
- 灵活性:灵活地修改样式,例如:尺寸、颜色等
- 轻量级:体积小、渲染快、降低服务器请求次数
- 兼容性:几乎兼容所有主流浏览器
- 使用方便:先下载再使用
iconfont 图标库:https://www.iconfont.cn/
登录 → 素材库 → 官方图标库 → 进入图标库 → 选图标,加入购物车 → 购物车,添加至项目,确定 → 下载至本地
使用字体
- 引入字体样式表(iconfont.css)
<link rel="stylesheet" href=".css">
标签使用字体图标类名
- iconfont:字体图标基本样式(字体名,字体大小等等)
- icon-xxx:图标对应的类名(可在css编辑)
<span class="iconfont icon-xxx"></span> |
垂直对齐方式
在父级块内,图片和文字的对齐会出错,需要设置
属性名:vertical-align
属性值 | 效果 |
---|---|
baseline | 基准线对齐(默认) |
top | 顶部对齐 |
middle | 居中对齐 |
bottom | 底部对齐 |
或者
把照片设置为块
display:block |
过渡
作用:可以为一个元素在不同状态之间切换的时候添加过渡效果
属性名:transition(复合属性)
属性值:过渡的属性 花费时间 (s)
提示:
- 过渡的属性可以是具体的 CSS 属性
- 也可以为 all(两个状态属性值不同的所有属性,都产生过渡效果)
- transition 设置给元素的css本身
img { |
透明度opacity
作用:设置整个元素的透明度(包含背景和内容)
属性名:opacity
属性值:0 – 1
- 0:完全透明(元素不可见)
- 1:不透明
- 0-1之间小数:半透明
光标类型cursor
作用:鼠标悬停在元素上时指针显示样式
属性名:cursor
属性值 | 效果 |
---|---|
default | 默认值,箭头 |
pointer | 小手,提示可以点击 |
text | 工字形,提示可以选择文字 |
move | +,提示可以移动 |
项目流程
项目目录
xtx-pc文件夹
- images 文件夹:存放固定使用的图片素材,例如:logo、样式修饰图等等
- uploads 文件夹:存放非固定使用的图片素材,例如:商品图、宣传图需要上传的图片
- iconfont 文件夹:字体图标素材
- css 文件夹:存放 CSS 文件(link 标签引入)
- base.css:基础公共样式 ,例如:清除默认样式,设置网页基本样式
- common.css:各个网页相同模块的重复样式,例如:头部、底部
- index.css:首页 CSS 样式
- index.html:首页 HTML 文件
清除默认样式
/* 基础公共样式:清除默认样式 + 设置通用样式 */ |
引入样式表
<link rel="stylesheet" href="./iconfont/iconfont.css"> /*导入字体图标 */ |
网页头部SEO三大标签
SEO:搜索引擎优化,提升网站百度搜索排名
提升SEO的常见方法:
- 花钱排名
- 将网页制作成html后缀
- 标签语义化(在合适的地方使用合适的标签)
- ……
网页头部 SEO 标签:
- title:网页标题标签
- description:网页描述
- keywords:网页关键词
<!-- meta:desc --> |
Favicon图标
Favicon 图标:网页图标,出现在浏览器标题栏,增加网站辨识度。
图标:favicon.ico,一般存放到网站的根目录里面
<!-- link:favicon 回车自动生成 --> |
版心
写在common.css
/* 版心 */ |
快捷导航
-布局
<!-- 快捷导航 --> |
/* 快捷导航 */ |
-内容
<ul> |
.shortcut ul { |
头部-布局
HTML结构
<!-- 头部 --> |
CSS样式
/* 头部 */ |
头部-logo
HTML结构
<!-- logo --> |
CSS样式
/* logo */ |
头部-导航
HTML结构
<ul> |
CSS样式
/* 导航 */ |
搜索
HTML结构
<!-- 搜索 --> |
CSS样式
/* 搜索 */ |
购物车
HTML结构
<!-- 购物车 --> |
CSS样式
/* 购物车 */ |
底部-布局
HTML结构
<!-- 底部 --> |
CSS样式
/* 底部 */ |
底部-服务区域
HTML结构
<ul> |
CSS结构
.service ul { |
底部-帮助中心-左侧
HTML结构
<div class="left"> |
CSS样式
/* left */ |
底部-帮助中心-右侧
HTML结构
<div class="right"> |
CSS样式
/* right */ |
底部-版权
HTML结构
<p> |
CSS样式
/* 版权 */ |