这篇文章为我跟随pink老师重新系统学习前端时做的一些笔记。
【HTML5与CSS3篇】
D1:HTML基础:简介+常用标签
D2:CSS入门:简介+基础选择器+字体&文本属性+引入方式
D2:CSS基础:复合选择器+元素显示模式+背景
D3:CSS进阶:层叠&继承&优先级+盒子模型+圆角边框+盒子&文本阴影+浮动
D4:CSS进阶:定位+元素的显示与隐藏
D5:CSS进阶:字体图标+CSS三角+光标样式+vertical-align属性+布局技巧
D5:CSS提高:HTML5&CSS3的新特性
【JavaScript篇】
D1:JavaScript入门:计算机基础+变量+数据类型
D2:JavaScript基础:运算符+运算流程分支控制+命名规范与语法格式
D3:JavaScript进阶
HTML5的新增特性主要是针对以前的不足,添加了一些新的标签、表单和表单属性等。这些新特性都有兼容性问题,基本是IE9+以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。
以前的布局基本都使用
HTML5新增语义化标签 头部标签 某个区域
新增的多媒体标签主要包含以下两个:
使用以上标签可以很方便地在页面中嵌入音频和视频,而不再使用flash和其他浏览器插件。
当前
浏览器 | MP4 | WebM | Ogg |
---|---|---|---|
IE | √ | ||
Chrome | √ | √ | √ |
Firefox | √,从Firefox 21版本开始,Linux系统从Firefox 30开始 | √ | √ |
Safari | √ | ||
Opera | √,从Opera 25版本开始 | √ | √ |
考虑兼容性时的写法:
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 视频就绪自动播放(谷歌浏览器需要添加muted来解决自动播放问题) |
controls | controls | 向用户显示播放控件 |
width | pixels(像素) | 设置播放器宽度 |
height | pixels(像素) | 设置播放器高度 |
loop | loop | 播放完是否继续播放该视频,循环播放 |
preload | auto(预先加载视频),none(不预先加载视频) | 规定是否预加载视频(如果有了autoplay,就忽略该属性) |
src | url | 视频url地址 |
poster | imgUrl | 加载等待的画面图片 |
muted | muted | 静音播放 |
HTML5在不使用插件的情况下,也可以原生支持音频格式文件的播放。
当前
浏览器 | MP3 | Wav | Ogg |
---|---|---|---|
IE | √ | ||
Chrome | √ | √ | √ |
Firefox | √ | √ | √ |
Safari | √ | √ | |
Opera | √ | √ | √ |
考虑兼容性时的写法:
属性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 音频就绪自动播放(谷歌浏览器禁止音频自动播放,后期可以通过JavaScript解决) |
controls | controls | 向用户显示播放控件 |
loop | loop | 播放完是否继续播放该音频,循环播放 |
src | url | 音频url地址 |
属性值 | 说明 |
---|---|
type=“email” | 限制用户输入必须为Email类型 |
type=“url” | 限制用户输入必须为URL类型 |
type=“date” | 限制用户输入必须为日期类型 |
type=“time” | 限制用户输入必须为时间类型 |
type=“month” | 限制用户输入必须为月类型 |
type=“week” | 限制用户输入必须为周类型 |
type=“number” | 限制用户输入必须为数字类型 |
type=“tel” | 手机号码 |
type=“search” | 搜索框 |
type=“color” | 生成一个颜色选择表单 |
Document
属性 | 值 | 说明 |
---|---|---|
required | required | 表单拥有该属性,表示其他内容不能为空,必填 |
placeholder | 提示文本 | 表单的提示信息,存在默认值将不显示 |
autofocus | autofocus | 自动聚焦属性,页面加载完成自动聚焦到制定表单 |
autocomplete | off / on | 当用户在字段开始键入时,浏览器基于之前键入过的值,应该显示出在字段中填写的选项。默认已经打开。需要放在表单内,同时加上name属性,同时成功提交 |
multiple | multiple | 可以多选文件提交 |
修改提示文本的颜色:
input::placeholder {color: blue;
}
属性选择器可以根据元素特定属性来选择元素,这样就可以不用借助于类选择器或id选择器。
选择符 | 简介 |
---|---|
E[att] | 选择具有att属性的E元素 |
E[att=“val”] | 选择具有att属性且属性值等于val的E元素 |
E[att^=“val”] | 匹配具有att属性且值以val开头的E元素 |
E[att$=“val”] | 匹配具有att属性且值以val结尾的E元素 |
E[att*=“val”] | 匹配具有att属性且值中含有val的E元素 |
CSS3新增属性选择器 小图标1小图标2小图标3小图标4测试测试文本1 测试文本2 测试文本3
类选择器、属性选择器、伪类选择器,权重都为10。
结构为类选择器主要根据文档结构来选择元素,常用于根据父级选择里面的子元素。
选择符 | 简介 |
---|---|
E:first-child | 匹配父元素中的第一个子元素E |
E:last-child | 匹配父元素中的最后一个子元素E |
E:nth-child(n) | 匹配父元素中的第n个子元素E |
E:first-of-type | 指定类型E的第一个 |
E:last-of-type | 指定类型E的最后一个 |
E:nth-of-type(n) | 指定类型E的第n个 |
nth-child(n)选择以某个父元素的一个或多个特定的子元素
公式 | 取值 |
---|---|
2n | 偶数 |
2n+1 | 奇数 |
5n | 5,10,15 |
n+5 | 从第5个开始(包含第5个)到最后 |
-n+5 | 前5个(包含第5个) |
CSS3新增结构伪类选择器-nth-child - 第1个
- 第2个
- 第3个
- 第4个
- 第5个
- 第6个
- 第7个
- 第8个
- 第1个
- 第2个
- 第3个
- 第4个
- 第5个
- 第6个
- 第7个
- 第8个
E:nth-child(n)与E:nth-of-type(n)的区别:
CSS3新增选择器nth-type-of - 我是第1个孩子
- 我是第2个孩子
- 我是第3个孩子
- 我是第4个孩子
- 我是第5个孩子
- 我是第6个孩子
- 我是第7个孩子
- 我是第8个孩子
p标签
div标签1div标签2
伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构。
选择符 | 简介 |
---|---|
::before | 在元素内部的前面插入内容 |
::after | 在元素内部的后面插入内容 |
div::before{}
的权重是2)。使用场景:
@font-face {font-family: 'icomoon';src: url('fonts/icomoon.eot?1lv3na');src: url('fonts/icomoon.eot?1lv3na#iefix') format('embedded-opentype'),url('fonts/icomoon.ttf?1lv3na') format('truetype'),url('fonts/icomoon.woff?1lv3na') format('woff'),url('fonts/icomoon.svg?1lv3na#icomoon') format('svg');font-weight: normal;font-style: normal;font-display: block;
}
div {position: relative;width: 200px;height: 35px;border: 1px solid red;
}
div::after {position: absolute;top: 10px;right: 10px;font-family: 'icomoon';/* content: ''; */content: '\e91e';color: red;font-size: 18px;
}
伪元素选择器使用场景2-仿土豆网显示隐藏遮罩案例 ![]()
![]()
![]()
伪元素清除浮动
清除浮动的方法:
后两种伪元素清除浮动算是额外标签法的升级和优化。
.clearfix:after {content: ""; /* 伪元素必须写的属性 */display: block; /* 插入的元素必须是块级 */height: 0; /* 不要看见这个元素 */clear: both; /* 清除浮动的核心代码 */visibility: hidden; /* 不要看见这个元素 */
}
CSS3中可以通过box-sizing来指定盒模型,有两个值,即可指定为content-box或border-box,这样计算盒子大小的方式就发生了改变。
box-sizing: content-box;
:盒子大小为width+padding+border(以前默认的)box-sizing: border-box;
:盒子大小为width,那么padding和border就不会撑大盒子了(前提是padding和border之和不会超过width)filter属性将模糊或颜色偏移等图形效果应用于元素。
filter: 函数();
例如:
img {/* blur模糊处理,数值越大,图片越模糊 */filter: blur(15px);
}
img:hover {/* 鼠标悬停时获得清晰图片 */filter: blur(0);
}
calc()实现在声明CSS属性值时执行一些计算。括号里面可以使用+,-,*,/来进行计算。
width: calc(100% - 80px);
过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用Flash动画或JavaScript的情况下,在元素从一种样式变换为另一种样式时为元素添加效果。
过渡动画:是一个从状态渐渐地过渡到领一个状态,可以让页面更好看。虽然低版本浏览器(IE9以下版本)不支持,但不影响页面布局。现在常和:hover一起搭配使用。
transition: 要过渡的属性 花费时间 运动曲线 何时开始;
div {width: 200px;height: 100px;background-color: pink;/* transition: 变化的属性 花费时间 运动曲线 何时开始; *//* 如果要写多个属性,利用逗号进行分割 *//* transition: width .5s ease 0s, height .5s ease 1s; */transition: all 0.5s;
}
div:hover {width: 400px;height: 200px;background-color: skyblue;
}
案例:进度条
CSS3过渡练习-进度条
鼠标悬停时:
练习:动态切换的小米官网的logo
HTML5+CSS3 Pink老师课后作业——小米logo过渡切换的实现
小白初上手HTML+CSS 仿写小米官网logo动画
狭义的HTML5与CSS3:HTML5结构标签本身与CSS3的相关样式。
广义的HTML5:HTML5本身+CSS3+JavaScript。这个集合有时称为HTML5和朋友,通常缩写为HTML5。虽然HTML5的一些特性仍然不被某些浏览器支持,但它是一种发展趋势。
HTML5 MDN介绍