H5基础

您所在的位置:网站首页 far变形 H5基础

H5基础

2023-06-09 05:11| 来源: 网络整理| 查看: 265

灵魂拷问:

浏览器能干什么?

我能让浏览器干什么?

前端开发:

一点点的空间想象力一点点的小学数学知识一点点的艺术鉴赏能力 HTML5和CSS3提高 HTML5新特性 HTML5新增的语义化标签

代替div,一看名字就知道干什么的

之前的布局基本都是div+css来布局,div最大的问题是没有语义,不利于搜索引擎处理

header

nav

article

section

aside

footer

注意:

这些标签是针对搜索引擎的

可以使用多次,用class或者id区分

移动端没有兼容性问题

HTML5新增的多媒体标签 1 音频 audio

支持三种格式 mp3(所有浏览器都支持) wav ogg

src = “” 文件路径

autoplay

2 视频 video

video src=“”

支持三种格式: mp4 (支持所有浏览器)webm ogg

controls=“controls“ 显示控件

muted 是否静音

autoplay 自动播放 (谷歌浏览器必须设置muted才生效)

loop 循环播放

width 宽度

height 高度

总结:

音频标签和视频标签使用方法基本相同

MP3 和mp4格式兼容性比较好

HTML5新增的input类型

search

email

url

date

time

month

week

number

tel

color

点击提交按钮的时候,浏览器会对输入框进行验证。

重点记住number tel search三个

HTML5新增的表单属性

required 必须书写

placeholder 提示文本

autofocus 打开页面自动获得焦点

autocomplete 提交过并且有name值,浏览器会保存,下次系统会提示,一般会关掉

multiple 多选,可以选多个文件提交

input::placeholder {

color:pink

}

CSS3的新特性 新增选择器 **1 属性选择器 **

(属性选择器权重跟类选择器一样,都是10)

根据元素特定属性来选择元素,E 为标签名

E[attr] 具有某个属性E[attr=‘’] 属性=某个值 input[type=text]E[attr^=‘’] 属性值 以什么开头 div[class^=‘icon’]E[attr$=‘’] 属性值 以什么结尾 div[class^=‘icon’]E[attr*=‘’] 属性值含有 div[class*=‘val’] 2 结构伪类选择器

根据父级选择里面的子元素

E:first-child 第一个孩子

E:last-child 最后一个孩子

E:ntp-child(n) 第几个孩子 even偶数 odd奇数 还可以用公式(n从0开始递增)

2n偶数2n+1 奇数5n 5的倍数n+5 从第三个开始后面的元素-n+5 前5个元素

E:nth-of-type(n) 指定元素排上序号,用法和nth-child基本相同。

div:nth-of-type(3 )

区别:

nth_child 给所有的孩子都先排序,先找到第n个孩子,然后看看是否和E匹配

nth-of-type 对父元素里面指定子元素排序选择,先去匹配E然后根据E找第n个孩子

3 伪元素选择器

伪元素用来修饰真元素。

::before

::after

注意:

before和after创建一个元素,属于行内元素新创建的这个元素在文档中是找不到的,所以我们称之为伪元素语法: element::beforebefore和after必须有content属性before在父元素内容的前面创建元素,after在父元素内容的后面插入元素伪元素选择器和标签选择器一样,权重为1

伪元素是父元素的孩子,用于修饰父元素内容,属于行内 元素

.box:hover::before 中间不能有空格。

清除浮动

div:after {

content:“”;

display:block;

clear:both;

}

盒子模型

box-sizing: content-box 默认模式, 盒子大小为content+padding+border

box-sizing:border-box 盒子大小为实际盒子大小,改变border和padding不会改变盒子大小

CSS新特性:

1 图片变模糊

filter:blur(5px), 数值越大,图像越模糊。 0为不模糊

css3滤镜filter

2 calc函数

width:calc(100%-80px)

比如子盒子永远比父盒子小30px。

.son (width:calc(100%-30px)) 括号里面可以进行加减乘除的计算

CSS3过渡(重点)

过渡(transition)是css3中具有颠覆性的特征之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时为元素添加效果

过渡动画: 从一个状态渐渐过渡到另外一个状态

可以让我们页面更好看,更动感十足

我们现在经常和:hover一起搭配使用

transition:要过渡的属性 花费的时间(秒) 运动曲线 何时开始(延时几秒)

前两个必须写。

谁做过渡给谁加。

2D 转换 transform(变形) 2D: 二维坐标系

translate 改变位置

transform:translate(x,y)

transform:translateX(x)

transform:translateY(y)

三种移动位置的办法:

定位

margin

transform:translate (不会影响其他盒子的位置)

可以跟百分比,是自身尺寸的百分比

translate对行内元素无效

rotate(45deg)

transform:rotate(45deg)

正值,顺时针

负值,逆时针

改变中心点:

transform-origin: left bottom; (支持百分比和方位名词)

scale

transform:scale(x,y)

xy 为倍数, 只写一个表示宽高等比例缩放

scale 可以设置缩放的中心点

2D转换的综合写法:

transform: translate(50px,50px) scale(1.2)

注意顺序, 旋转会改变坐标轴方向,同时位移和旋转,把位移放在前面。

动画 /* 定义动画,定义关键帧,可以从0到100%任意对时间进行切片 */ @keyframes move{ 0% { transform: translateX(0px); background-color: purple; } 100% { transform: translateX(1000px); background-color: blue; } } /* 调用动画 */ div { height: 200px; width: 200px; background-color: pink; animation: move 3s; }

/* animation: name duration timing-function delay iteration-count direction fill-mode; */

简写形式不包括 animation-play-state

热点效果 .map{ position: relative; width: 747px; height: 616px; background-color: #ccc; margin: 0 auto; } .city{ position: absolute; top: 227px; right: 193px; } .dotted { width: 8px; height: 8px; background-color: #09f; border-radius: 50%; } .city div[class^='pulse'] { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 8px; height: 8px; box-shadow: 0 0 12px #009dfd; border-radius: 50%; animation: pulse 1.2s linear infinite; } .city div.pulse2 { animation-delay: 0.4s; } .city div.pulse3 { animation-delay: 0.8s; } @keyframes pulse { 0% { } 70% { width: 40px; height: 40px; opacity: 1; } 100% { width: 70px; height: 70px; opacity: 0; } } 打字机效果 .line { padding: 0; width: 0; height: 20px; font-size: 20px; background-color: pink; /* white-space: nowrap; */ /* overflow: hidden; */ animation: daziji 4s steps(10) forwards; } @keyframes daziji { 0% {} 100% { width: 200px; } } 世纪佳缘我在这里等你 奔跑的小熊

实现原理:

动画1: 奔跑的小熊

8张小熊图片在1600*200的png背景图上, 用动画的step(8)函数 快速移动position-left ,实现动画效果

动画2: 小熊从屏幕左侧移动到屏幕中央

用定位和动画来做

动画3: 小熊跑到屏幕中央后,大背景图开始移动。

注意延时。

3D转换 近大远小物体后面看不见 三维坐标系 X轴:水平向右 向右是正值 向左是负值Y轴: 垂直向下 向下是正值 向上是负值Z轴: 垂直屏幕 往外是正值 往里是负值(类似海拔)

主要知识点:

3D移动

transform:translateX(x) 仅仅在Z轴上移动

transform:translateY(y) 仅仅在Z轴上移动

transform:translateZ(z) 仅仅在Z轴上移动**(仅仅用像素为单位)**

综合写法: transform: translate3d(100px,100px,100px); 三个值都不能少,没有可以写0

div { width: 100px; height: 100px; background-color: pink; /* transform: translateX(100px) translateY(100px) translateZ(100px); */ transform: translate3d(100px,100px,100px); }

要添加透视才能看到效果

透视 perspective

透视可以让网页产生3D效果

透视就是眼睛到屏幕的距离,透视越大,物体越小。 透视越小,物体越大。

透视写在被观察元素的父盒子上面。

3D旋转

3d旋转可以在三维平面围绕x,y,z轴或者自定义轴旋转。

语法:

transform:rotateX(45deg) 沿着x轴正方向旋转

transform:rotateY(45deg) 沿着y轴正方向旋转

transform:rotateZ(45deg) 沿着z轴正方向旋转

transform:rotateZ3d(x,y,z,45deg) 沿着自定义的轴正方向旋转,xyz 定义轴

左手准则:

大拇指指向坐标轴方向,弯曲的四指头是顺时针方向(正方向)

3D呈现 transform-style

transform-style: preserve-3d 子盒子开启立体空间

代码写给父级,但是影响的是盒子

这个属性很重要,后面常用

案例: 旋转木马

一个盒子一套坐标系,旋转盒子后,坐标轴方向同时发生变动。

动画开发思路:

先写好盒子,布置好各个图层,然后让box动起来。

注意两点:

1 确定观察视角 perspective: 500px;

2 让盒子保留3D视角

transform-style: preserve-3d;

CSS动画总结:

动画的基础是 transform, 首先定义变形,然后通过transition或者amitation让它动起来。

注意2d和3d的区别,其中也就两个关键字:

perspective

transform-style

浏览器私有前缀

浏览器私有前缀是为了兼容老版本的写法,比较新版本的浏览器无需添加

1 私有前缀

-moz- 代表firefox浏览器私有睡醒

-ms- 代表ie浏览器私有属性

-webkit- 代表 safari chrome私有属性

-o- 代表opera私有属性

广义的HTML5

狭义的HTML5

1993: 1.0

1999:4.01

2008:5

广义的HTML5: HTML5 +CSS3+JS

HTML5 MDN介绍:

https://developer.mozilla.org/zh-CN/docs/Learn/HTML



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3