H5C3的新特性

H5的新特性

标签语义化

html5新增了许多语义化标签 比如:

    <header>头部标签</header>
    <nav>导航标签</nav>
    <section>块标签</section>
    <article>文章标签</article>
    <aside>侧边栏</aside>
    <footer>尾部标签</footer>

1.html语义化让页面的内容结构化,结构更清晰 便于队浏览器 搜索引擎解析 即使在没有css样式的情况下也以一种文档格式显示,容易阅读
2.搜索引擎的爬虫也依赖于html标记来确定上下文和各个关键字的权重,利于SEO;
3.使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解

拖拽(设置元素可拖拽)

<div draggable="true">拖拽</div>
1.gif

音频、视频API(audio,video)

音频
    <!-- 
        audio           音频标签
        src             路径
        controls="controls"         播放控件(不能显示播放)
        autoplay="autoplay"         自动播放(除去IE都禁用了)
        loop="loop"                 播放完成后自动循环播放
     -->
     <audio controls>
         <source src="" type="audio/mpeg">

         对不起,您的浏览器不支持加载音频
     </audio>
视频
    <video src="" controls width="" autoplay muted="muted" loop poster=""></video>
    <!-- 
        video                       视频标签
        src                         路径
        controls                    播放控件
        width/height                宽高
        muted                       静音播放+autoplay(可静音播放)
        loop                        循环播放
        poster                      加载等待图片画面
        preload                     预加载auto(自动)none(不加载)
     -->
表单控件
    <form action="">
        <ul>
            <li>
                <label for="">邮箱 </label>
                <input type="email" name="" id=""  placeholder="传说的占位符"> 
            </li>
            <li>
                <label for="">数字 </label>
                <input type="number" name="" id="" placeholder="传说的占位符">
            </li>
            <li>
                <label for="">手机 </label>
                <input type="tel" name="" id="" maxlength="11" placeholder="传说的占位符">
            </li>
            <li>
                <label for="">url </label>
                <input type="url" name="" id=""  placeholder="传说的占位符">
            </li>
            <li>
                <label for="">日期 </label>
                <input type="date" name="" id=""  placeholder="传说的占位符">
            </li>
            <li>
                <label for="">时间 </label>
                <input type="time" name="" id=""  placeholder="传说的占位符">
            </li>
            <li>
                <label for="">月 </label>
                <input type="month" name="" id=""  placeholder="传说的占位符">
            </li>
            <li>
                <label for="">周 </label>
                <input type="week" name="" id=""  placeholder="传说的占位符">
            </li>
            <li>
                <label for="">搜索 </label>
                <input type="search" name="" id=""  placeholder="传说的占位符" >
            </li>
            <li>
                <label for="">颜色 </label>
                <input type="color" name="" id=""  placeholder="传说的占位符" >
            </li>
            <li>
                <input type="submit" value="提交">
            </li>
        </ul>
    </form>
数据存储 localStorage、sessionStorage

localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。
sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

    // 储存数据语法:
    localStorage.setItem("key", "value");
    // 读取数据语法:
    var lastname = localStorage.getItem("key");
    console.log(lastname);
    // 删除数据语法:
    localStorage.removeItem("key");
  //sessionStorage语法与localStorage相同
画布(Canvas) API

canvas:在页面上规划出一块空间,canvas标签,通过JavaScript控制画布完成绘制

地理(Geolocation) API

HTML5 Geolocation() 用于获得用户的地理位置。
鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。
Internet Explorer 9、Firefox、Chrome、Safari 以及 Opera 支持地理定位。

H5 Web Workers

Javascript是运行在单线程环境中,也就是说无法同时运行多个脚本。假设用户点击一个按钮,触发了一段用于计算的Javascript代码,那么在这段代码执行完毕之前,页面是无法响应用户操作的。但是,如果将这段代码交给Web Worker去运行的话,那么情况就不一样了:浏览器会在后台启动一个独立的worker线程来专门负责这段代码的运行,因此,页面在这段Javascript代码运行期间依然可以响应用户的其他操作。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div></div>
    <input type="button" value="开始">
</body>
<script>
    var worker=new Worker('./js/count.js')
    document.querySelector('input').onclick=function(){
        console.time('a')
        //将数据传给线程
        worker.postMessage(1000000000)
        worker.onmessage=function(event){
            //消息文本放置到div中
            document.querySelector('div').innerHTML=event.data
        }
        console.timeEnd('a');
    }
</script>
</html>
onmessage=function(event){
    console.log(event);
    var num=event.data
    var a=0
    for(var i=0;i<num;i++){
        a+=i
    }
    //向线程的创建源(worker)送回信息
    postMessage(a)
}

C3的新特性

1.选择器:属性选择器E[attr],伪类选择器E:nth-child(n),空伪类E:empty ,排除伪类E:not(selector)
:last-child /* 选择元素最后一个孩子 /
:first-child /
选择元素第一个孩子 /
:nth-child(1) /
按照第几个孩子给它设置样式 /
:nth-child(even) /
按照偶数 /
:nth-child(odd) /
按照奇数 /
:disabled /
选择每个禁用的E元素 /
:checked /
选择每个被选中的E元素 /
:not(selector) /
选择非 selector 元素的每个元素 /
::selection /
选择被用户选取的元素部分 /
伪类选择器:
:last-child /
选择元素最后一个孩子 /
:first-child /
选择元素第一个孩子 /
:nth-child(1) /
按照第几个孩子给它设置样式 /
a:link {color: #FF0000}/
未访问的链接 /
a:visited {color: #00FF00}/
已访问的链接 /
a:hover {color: #FF00FF}/
鼠标移动到链接上 /
a:active {color: #0000FF}/
选定的链接 /
伪元素:创建了 html 中不存在的元素,用于将特殊的效果添加到某些选择器
::before {}/
选择器在被选元素的前面插入内容和定义css,使用 content 属性来指定要插入的内容。 /
::after {}/
选择器在被选元素的后面插入内容和定义css,使用 content 属性来指定要插入的内容。 /
:first-letter /
选择该元素内容的首字母 *
/:first-line /* 选择该元素内容的首行 /
::selection /
选择被用户选取的元素部分 */
2.文字阴影
text-shadow: 5px 5px 5px #FF0000;
text-shadow: h-shadow v-shadow blur color;
h-shadow必需。水平阴影的位置。允许负值。
v-shadow必需。垂直阴影的位置。允许负值。
blur可选。模糊的距离。
color可选。阴影的颜色。
3.盒模型
概念:页面就是由一个个盒模型堆砌起来的,每个HTML元素都可以叫做盒模型,盒模型由外而内包括:边距(margin)、边框(border)、填充(padding)、内容(content)。
盒模型又分为标准盒模型和怪异盒模型
标准盒模型 box-sizing: content-box:
盒子宽度=内容宽(设置的宽度)+左右内间距+左右边框
怪异盒模型 box-sizing: border-box;
盒子宽度=设置的宽度(包含了内容宽+左右内间距+左右边框)
4.边框
圆角border-radius
阴影box-shadow
5.背景:
通过 background-size 设置背景图片的尺寸。
通过 background-origin 可以设置背景图片定位(background-position)的参照原点。
通过background-clip,可以设置对背景区域进行裁切,即改变背景区域的大小。
6.渐变
线性渐变
background: linear-gradient(pink,aqua);
background: linear-gradient(to left, pink,aqua);
background: linear-gradient(to left top, pink,aqua);
background: linear-gradient(45deg,pink,aqua);
background: linear-gradient(to right,pink 50%,aqua);
<angle>:用角度值指定渐变的方向(或角度)。
  to left:设置渐变为从右到左。相当于:270deg
  to right:设置渐变从左到右。相当于:90deg
  to top:设置渐变从下到上。相当于:0deg
  to bottom:设置渐变从上到下。相当于:180deg。这是默认值,等同于留空不写。
  <color-stop>:用于指定渐变的起止颜色:
  <color>:指定颜色。
  <length>:用长度值指定起止色位置。不允许负值
  <percentage>:用百分比指定起止色位置。
径向渐变
background: radial-gradient(red,pink,aqua);
7.字体图标
8.弹性盒

             /* 给父级设置弹性盒属性:显示为弹性盒 */
            display: flex;
            /* 设置弹性盒主轴方向:x轴 (默认的) */
            flex-direction: row;
            /* 设置弹性盒主轴方向:y轴 */
            flex-direction:column;
            /* 设置弹性盒主轴方向:x轴倒叙 */
            flex-direction: row-reverse;
            /* 设置弹性盒主轴方向:y轴倒叙 */
            flex-direction: column-reverse;
            /* 弹性盒换行:不换行(默认的) */
            flex-wrap: nowrap;
            /* 弹性盒换行:换行 */
            flex-wrap: wrap;
            /* 设置主轴上的子元素排列方式:x轴从左到右(默认) */
            justify-content: flex-start;
            /* 设置主轴上的子元素排列方式:x轴从尾部开始排列,不影响默认排序 */
            justify-content: flex-end;
            /* 设置主轴居中对齐 */
            justify-content: center;
            /* 平分主轴剩余空间 */
            justify-content: space-around;
            /* 两边对齐,中间平分剩余空间 */
            justify-content: space-between;
           /* 设置侧轴上的子元素排列方式:从头部开始 */
            align-items: flex-start;
            /* 设置侧轴上的子元素排列方式:从尾部开始 */
            align-items: flex-end;
            /* 设置侧轴上的子元素排列方式:居中显示 */
            align-items: center;
            /* 设置侧轴上的子元素排列方式:拉伸 */
            align-items: stretch;

9.2D转换:
translate 设置元素的位置(x/y坐标)

    /* 转换:转变为(x轴移动-100px y轴移动100px) */
            transform: translate(-100px,100px);
            transform: translateX(-100px);
            transform: translateY(100px);

scale 设置元素的缩放比例(x/y两个方向)

            /* 缩放(比例) */
            transform: scale(1.2);

rotate 设置元素旋转(正值为顺时针,负值为逆时针)
transform-origin 设置转换元素的原点

            /* 转换:旋转(90度) */
            transform: rotate(90deg);
            /* 转换-原点: 右 下 (方向) */
            transform-origin: right bottom;
            /* 过渡: 全部 1s 均匀 */
            transition: all 1s linear;

10.3D转换:
透视(perspective)值为1000px~1200px
将2D元素转换为3D立体(给父元素设置)transform-style: perserve-3d;
设置元素背面是否可见 backface-visibility: hidden;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            perspective: 500px;
            /* 透视:可以加给父级及父级以上 */
        }
        main{
            transform-style: preserve-3d;
            /* 转换-样式:保留3d效果(子元素) */
            position: relative;
            width: 200px;
            height: 300px;
            transition: all 1s linear;
            margin: 100px auto;
        }
        main:hover{
            transform: rotate3d(1,1,1,270deg);
        }
        div{
            position: absolute;
            width: 100%;
            height: 100%;
        }
        .d1{
            background: aqua;
        }
        .d2{
            background: yellow;
            transform: rotateX(60deg);
        }
    </style>
</head>
<body>
    <main>
        <div class="d1"></div>
        <div class="d2"></div>
    </main>
</body>
</html>
2.gif

11.动画:
定义关键帧 @keyframes
通过百分编写帧
在各帧中分别定义各属性
通过animation将动画应用于相应元素

        div{
            width: 100px;
            height: 100px;
            background: aqua;
            /* 调用动画 */
            /* animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 起始与结束状态 */
            /* animation: name duration timing-function delay iteration-count direction fill-mode */
            animation: w 2s linear 1s infinite alternate forwards;
            /* 调用动画: 名称:w 持续时间:2s 运动曲线:匀速 何时开始:1s后 播放次数:无限循环 反方向播放  */
        }
        div:hover{
            animation-play-state: paused;
            /* 动画-播放-状态:暂停 */
        }
        /* 定义动画 */
        @keyframes w{
            0%{

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

推荐阅读更多精彩内容