HTML5/CSS3

HTML5超文本标记语言

  • 新增语义化标签:header、footer、main、nav等等
  • 新增多媒体功能:视频、音频
  • 新增画布功能canvas功能
  • 新增存储功能(本地存储、会话存储)
  • 新增移动端开发

css3

  • 背景系列样式
  • 选择器
  • 新增动画功能(2D、3D)
  • 圆角、渐变、字体、文本效果、过渡

语义化标签

语义化标签便于浏览器底层解析,有助于网站优化
页面结构清晰,便于代码维护与管理
良好的html架构,利于搜索引擎建立索引和抓取

HTML5 特性

1.标签可省略type属性
2.标签的属性值可省略双引号

布局标签

1.header头部标签
2.footer底部标签
3.main 网页主要部分
4.nav 导航标签
5.aside 侧边栏标签
6.section 段落标签
7.article 文章标签

小语义化标签

1.address 地址 ->标签文本无非倾斜,百度地图名片->
地图名片生成器
2.bdo 设置文本方向
  dir属性:ltr(左到右);rtl(右到左)
3.cite 引用文本 <cite>杜甫</cite>
4.code 引用代码,使用code标签包裹
5.details 标签需要结合summary标签使用
6.pre 预保留格式标签,文本编写,页面怎么显示
7.ruby 文字上加拼音效果,结合rt标签使用
  <ruby>小猪皮<rt>xzp</rt></ruby>
8.template 标签内部嵌套的文本、子元素不可见

新增的表单元素

1.input type-> range 区间选择滑动条
  min-最小值,max最大值
  type-> color 颜色选择器
  type-> date 日历选择框 年/月/日
  type-> week 第几周
  type-> time 时间
  type-> email 邮箱
  type-> url 网址
  type-> search 搜索框
  type-> number 计数器 step 步数大小
  type-> submit 提交按钮
2.placeholder 占位符 - 结合文本框使用,提示文本
  disable 禁用输入框
  autofocus 自动聚焦
  <input type='text' autofocus />
  readonly 只可以读取数据,不能输入
  datalist 
  <input type='text' list='box' />
  <datalist>
    <option>js</option>
    <option>html</option>
  </datalist>

视频【video】

  • video基本属性讲解

    视频支持格式:MP4、ogg、webM
    video 内联双闭合标签,src视频路径,默认宽高300 *150
    video 内联双闭合标签,src视频路径,默认宽高300 * 150;
    controls -> 视频控制,显示默认控制条
    poster -> 视频封面
    autoplay -> 自动播放,IE11可以,Google浏览器需要静音
    muted -> 静音
    loop -> 视频循环播放

  • video-js控制的方法

let video = document.querySelector('video');
video.play(); // 播放
video.pause(); // 停止
// 获取/设置 视频时间
video.currentTime;
video.currentTime = 60;
// 获取视频总时长
video.duration
// 获取/设置视频音量
video.volume;
video.volume = 1; // [0, 0.5, 1]
// 监测视频的事件
video.onplay = function(){
  // 播放视频执行函数
}
video.onpause = function(){
  // 视频停止执行函数
}
video.ontimeupdate = function(){
  // 视频播放时间发生改变,执行函数
}

音频【audio】

支持音频格式:MP3,ogg,wav;
音频无poster封面,其它与视频一致

浏览器的存储功能

1.本地存储 localStorage
  存储数据上限 5MB
// 本地存储新增
localStorage.setItem('name','xzp');
// 本地存储与会话存储->字符串,对象需要使用 JSON.stringify()
localStorage.setItem('goto',JSON.stringify({age:18}));
获取数据
let name = localStorage.getItem('name');
let obj = JSON.parse(localStorage.getItem('goto'));
2.会话存储 sessionStorage
  与本地存储几乎一致
  数据存储为非持久化的,页面关闭即消失

选择器

1.属性选择器
  div[class='xzp']{}
  input[name^='xzp']{}
2.子类选择器
  div:fist-child{}
  div:last-child{}
  匹配父节点的N个索引值
  div:nth-child(n){} // 单数
  div:nth-child(2n){} // 双数
  p:first-of-type{} // 匹配父元素内部P元素的第一个子节点
  p:last-of-type{} // 匹配父元素内部P元素的最后一个字节点
  div:nth-of-type(index){}
3.关系型选择器
  A+B {} a标签同级的相邻的b标签
  a~b {}
4.伪类选择器
  div:hover,div:disabled,input:focus,input:empty
5.伪选择器(双冒号)
  div::first-letter{} // 段落的首字符
  div::first-line{} // 段落的第一行
  div::section{} // 选中文本

伪元素(after,before)

1.双闭合标签->伪元素
2.伪元素拥有content属性
3.伪元素脱离文档流
div::after{}
div::before{}

border-radius 圆角设置

border-radius: [lt]px/% [rt]px/% [rb]px/% [lb]px/%;
圆角->左上,右上,右下,左下

shadow 阴影

1.box-shadow 盒子阴影(外阴影)
  box-shadow: 2px 2px 3px green,
              4px 4px 3px yellow;
右侧阴影x轴,底部阴影y轴,阴影模糊程度(越大越模糊),
阴影颜色;阴影可以写入多个。
  box-shadow: inset 2px 2px 3px green;
  内部阴影
2.text-shadow 文本阴影
  与盒子阴影参数一致(无内部阴影)

background-origin

设置背景图的起始位置
border-box,padding-box,content-box;
默认padding-box

background-clip

背景图裁切
border-box,padding-box,content-box,text;
裁切掉区域以外的部分,text需要考虑兼容问题,
相当于给文字加背景

浏览器前置

Google -webkit-
Firefox -mz-
IE -ms-

transition 过渡动画

过渡动画需要事件触发
样式属性需发生变化
transition: 过渡动画的属性(transition-property),
过渡动画的事件(transition-duration),
过渡动画的速率(transition-timing-function),
过渡动画的延迟时间(transition-delay);
transition-timing-function -> linear:均速
ease-in:慢速开始过渡动画
ease-out:慢速结束过渡动画
ease-in-out:慢速开始,慢速结束
ease:慢速开始,慢速结束
.test{
  margin: 100px auto;
  background-color: lightpink;
  width: 250px;
  height: 250px;
  /* transition: width 3s linear 0s,
              height 4s linear 0s; */
  transition: all 3s linear 0s;
}
.test:hover{
  width: 400px;
  height: 400px;
}

transform 变换

2D动画:比例缩放(scale),平移(translate),旋转(rotate)
/* 
  元素等比缩放,大于1放大,小于1缩小
  参数w,宽放大缩小比例,参数h,高放大缩小比例
  参数无单位,.5=0.5
 */
transform:scale(w,h);
transform:scale(5,5);
/* 旋转中心是元素的几何中心进行旋转,单位deg */
transform:rotate(30deg)
/* 平移:参数x,x轴平移;参数y,y轴平移;单位为px */
transform:translate(x,y);
transform:translate(10px,5px);
3D动画:3D旋转,3D平移
需要嵌套于父元素中,父元素需要设置景深perspective
/* 3D旋转 单位deg */
transform:rotateX();
transform:rotateY();
transform:rotateZ();
transform:translateX();
transform:translateY();
transform:translateZ();

animation动画

给元素添加动画--综合、复合样式
animation: 动画名称 动画总时间 动画速率 动画延迟时间
动画执行次数;
/* 声明动画 */
@-webkit-keyframes try-test{
  from{
    left:0;
  }
  to{
    left:100px;
  }
}
/* 动画调用 */
.div-animation{
  animation: try-test 2s linear 0s 5;
}

flex布局(弹性布局)

容器设置为弹性布局
.container{
  display:flex;
  display:inline-flex; // 行内元素
}
设置flex布局,子元素的float、clear、vertical-align失效

容器的属性

1.flex-direction->主轴方向,row(水平),row-reverse(反向水平);
  竖轴方向,column(竖直),column(竖直反向)
2.flex-wrap->换行,nowrap(默认),wrap,wrap-reverse
3.flex-flow:flex-direction flex-wrap;
4.justify-content->flex-start,flex-end,center,space-between,space-around
  主轴对齐方式
5.align-items->交叉轴对齐方式
  flex-start,flex-end,center,baseline,stretch
6.align-content->多根轴线对齐方式
  flex-start,flex-end,center,space-between,space-around,stretch

项目的属性

1.order 排序顺序
2.flex-grow 放大比例
3.flex-shrink 缩小比例
4.flex-basis 多余空间分配
5.flex: flex-grow flex-shrink flex-basis;
6.align-self 单个项目对齐方式
  flex-start,flex-end,center,baseline,stretch

px、em、rem区别

px->相当于显示器的分辨率而言的
em->相对父元素的字体大小而言的
rem->相对html根元素的字体大小而言的,css3新增元素

回流与重绘

回流->渲染树元素大小、结构或某些属性发生变化,浏览器重新渲染部分或全部页面。
  更改dom元素(插入、删除、更新、移动)、样式添加或删除
  窗口大小改变、字体大小改变、伪类激活、改变样式属性
  更改元素的className、位置计算、修改页面内容
重绘->页面元素样式发生改变且不会影响元素在文档流中的位置
  重绘示例:color、background-color
避免频繁回流与重绘:
1.减少table布局
2.减少css表达式的使用
3.减少dom操作
4.对于复杂的动画元素使用绝对定位,脱离文档流
5.减少使用内联样式

BFC触发方式

  • 设置浮动元素flat
  • overflow不为visible
  • dispaly:inline-block / table
  • position:absolute / fixed

触发bfc作用

防止垂直方向margin重叠(margin塌陷)
不与浮动元素重叠
清除元素内部浮动

绘制三角形

设置边框宽度,其他三个边框设为透明
div{
  height: 0;
  width: 0;
  border: 10px solid;
  border-color: pink transparent transparent transparent;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 1. CSS3 有哪些新特性? CSS3 实现圆角(border-radius),阴影(box-shadow), ...
    可可奈奈learn阅读 647评论 0 1
  • 一、什么是 HTML5 HTML5 的概念与定义定义:HTML5 定义了 HTML 标准的最新版本,是对 HTML...
    jovelin阅读 602评论 0 1
  • 题目1:HTML5是什么?有哪些新特性?有哪些新增标签?如何让低版本的 IE 支持 HTML5新标签 HTML5是...
    饥人谷_Jack阅读 182评论 0 1
  • HTML5是什么?有哪些新特性?有哪些新增标签?如何让低版本的 IE 支持 HTML5新标签 HTML5指的是ht...
    虚玩玩TT阅读 238评论 0 0
  • HTML5是什么?有哪些新特性?有哪些新增标签?如何让低版本的 IE 支持 HTML5新标签? HTML5是HTM...
    LeeoZz阅读 380评论 0 0