这篇笔记主要讲了HTML5和CSS3的新特性
HTML5新增了语义化标签,多媒体标签,input表单
CSS3新增了属性选择器,结构伪类选择器(child类型,of-type选择器),伪元素选择器,不受padding和margin影响的盒子模型,类似动画的过渡属性,模糊属性,和执行计算函数
这篇笔记是初学者写下的笔记,如有错误,欢迎前来指正
标签 | 描述 |
---|---|
头部标签 | |
导航标签 | |
内容标签 | |
定义文档某个区域 | |
侧边栏标签 | |
尾部标签 |
<video src="文件地址" controls="controls">video>
标签 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 视频自动播放 (google浏览器禁用了这个属性) |
controls | controls | 向用户展示播放控件 |
width | px(像素) | 设置播放器宽度 |
height | px(像素) | 设置播放器高度 |
loop | loop | 播放完成后是否循环播放 |
preload | auto(预加载视频) none(不预加载视频) | 是否预加载视频 |
src | url地址 | 视频url地址 |
poster | image(图片) | 加载等待画面图片 |
muted | muted | 静音播放 |
<audio src="文件地址" controls="controls">audio>
标签 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 音频自动播放 (google浏览器也禁用了这个属性) |
controls | controls | 向用户展示播放控件 |
loop | loop | 循环播放 |
src | url | 播放音频的位置 |
type属性值 | 描述 |
---|---|
输入为email类型 | |
url | url类型 |
date | 日期 |
time | 时间 |
month | 月 |
week | 周 |
number | 数字 |
tel | 手机号码 |
search | 搜索框 |
color | 颜色选择表单 |
<input type="email">
<input required="required">
属性 | 值 | 描述 |
---|---|---|
required | required | 表单拥有属性后不能为空,必填 |
placeholder | 提示文本 | 表单提示信息,存在默认值将不显示 |
autofocus | autofocus | 自动聚焦属性,页面加载完成后自动聚焦到指定表单 |
autocomplete | off / on | 在当用户成功提交过,下次搜索就可以自动填充,默认为on,开发时改为off |
multiple | multiple | 可以多选文件提交(经常和type="file"使用) |
required同样在提交时报错
更改placeholder里文字的颜色:
input::placeholder {
color: skyblue;
}
<style>
/* 选择input标签里有value属性的标签 */
input[value] {
color: skyblue;
}
/* 选择input标签value属性为select的标签 */
input[value="select"] {
color: red;
}
style>
<body>
<input type="text" value="请输入用户名">
<input type="text">
<input type="text" value="select">
body>
/* 选择那些div盒子里有class属性,且属性值以icon开头的元素 */
div[class^=icon] {
color: blue;
}
div[class$=icon] {
color: grey;
}
/* 只要是class属性里有icon值的都选出来 */
div[class*=icon] {
color: green;
}
<style>
ul li:first-child {
/* 选择ul下面第一个叫li元素 */
/* 相同的类型还有last-child,nth-child(n);第n个元素,n可以是数字,关键字和公式 */
background-color: skyblue;
}
style>
<body>
<ul>
<li><li>
<li><li>
<li><li>
<li><li>
<li><li>
ul>
body>
ul li:nth-child(odd) {
background-color: grey;
}
ul li:nth-child(n) {
background-color: grey;
}
ul li:first-of-type {
}
ul li:last-of-type {
}
ul li:nth-of-type(n) {
}
child类:
of-type类:
值 | 描述 |
---|---|
::before | 在父元素内容的前面插入内容 |
::after | 在元素内容的后面插入内容 |
div::before {
color: skyblue;
/* 必须书写的属性 */
content: '';
}
<style>
.fake {
width: 200px;
height: 35px;
border: 1px solid red;
position: relative;
}
.fake::after {
content: "^";
/* 用定位来做,防止影响其他元素 */
position: absolute;
top: 10px;
right: 0px;
}
style>
<body>
<div class="fake">div>
body>
<style>
.box::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,.3);
}
/* 中间不能有空格 */
.box:hover::before {
display: block;
}
style>
<body>
<div class="box">div>
body>
div {
box-sizing: content-box | border-box;
}
div {
filter: 函数();
/* 例:filter: blur(5px); blur模糊处理 ,数值越大越模糊 */
}
div {
width: calc(100%-80px);
}
div {
transition: 要过渡的属性 花费时间 运动曲线 何时开始;
}
属性值 | 描述 |
---|---|
要过渡的属性 | 想要变化的CSS属性,高度宽度内外边距颜色都可以,所有属性都过渡写 all |
花费时间 | 单位秒(必须写单位) |
运动曲线 | 默认ease (逐渐慢下来) |
何时开始 | 单位秒,设置延迟触发时间(必须有单位) 默认0s |
注意:transition属性一定要写到开始变化的元素上
后面两个属性可以省略
同时修改两个属性(修改效果不同)时:
div {
transition: width .5s ease 1s, height .5s ease 1s;
}
<style>
.bar {
width: 150px;
height: 15px;
border: 1px solid red;
border-radius: 7px;
padding: 1px 0;
}
.bar_in {
width: 50%;
height: 15px;
background-color: red;
border-radius: 7px;
transition: all 1.5s;
}
.bar:hover .bar_in {
width: 100%;
}
style>
<body>
<div class="bar">
<div class="bar_in">div>
div>
body>
<style>
.mi_box {
width: 50px;
height: 50px;
background-color: #ff6700;
margin: 100px auto;
position: relative;
}
.mi_logo {
position: absolute;
top: 0;
right: 0;
transition: all .5s;
}
.mi_home {
position: absolute;
top: 0;
right: -50px;
transition: all .5s;
}
.mi_box:hover .mi_logo {
right: 50px;
}
.mi_box:hover .mi_home {
right: 0;
}
style>
<body>
<div class="mi_box">
<div class="mi_logo"><img src="image/mi-logo.png" alt="mi-logo">div>
<div class="mi_home"><img src="image/mi-home.png" alt="mi-home">div>
div>
body>