H5 CSS3 新特性

H5 新特性

1.语义化标签:article、nav、header、section、aside、footer
2.增强性表单:input的多个type
3.新增表单元素:detalist、keygen、output
4.新增表单属性:placehoder、require、mix和min
5.音频视频:video和audio
6.canvas绘画的
7.地理定位
8拖拽
9.本地存储localStorage和sessionStorage

语义化标签:

header 定义文档的头部区域
footer 定义文档的尾部区域
section 定义文档中的节(section、区段)
nav 定义文档的导航
aside 定义页面的侧边栏内容
article 定义页面独立的内容区域
(这些都是块元素)

增强型表单:

input type 的描述:
  • color 主要用于选取颜色
  • date 从一个日期选择器选择一个日期
  • datetime 选择一个日期(UTC 时间)
  • email 包含 e-mail 地址的输入域
  • month 选择一个月份
  • number 数值的输入域
  • range 一定范围内数字值的输入域
  • search 用于搜索域
  • tel 定义输入电话号码字段
  • time 选择一个时间
  • url URL 地址的输入域
  • week 选择周和年
    新增表单元素:

html5 也新增以下表单元素

表单元素的描述
  • datalist 元素规定输入域的选项列表,使用 input 元素的 list 属性与 datalist 元素的 id 绑定
    <datalist> 元素为 <input> 元素规定预定义选项列表。
    用户会在他们输入数据时看到预定义选项的下拉列表。
    <input> 元素的 list 属性必须引用 <datalist> 元素的 id 属性。
    option 元素永远都要设置 value 属性。
<form action="action_page.php">
<input list="browsers">
<datalist id="browsers">
   <option value="Internet Explorer">
   <option value="Firefox">
   <option value="Chrome">
   <option value="Opera">
   <option value="Safari">
</datalist> 
</form>
image.png
  • keygen 提供一种验证用户的可靠方法,标签规定用于表单的密钥对生成器字段
  • output 用于不同类型的输出,比如计算或脚本输出

html新增的表单属性:

html5 新增的表单属性

表单属性 描述

  • placehoder 输入框内的提示字符
<input type="text" name="" id="" placeholder="输入内容不能为空">
  • required 是一个 boolean 属性。要求填写的输入域不能为空
  • pattern 用于验证 input 元素的值
  • min 和 max 设置元素最小值与最大值
  • step 为输入域规定合法的数字间隔
  • height 和 width 用于 image 类型的 input 标签的图像高度和宽度
  • autofocus 是一个 boolean 属性。规定在页面加载时,域自动地获得焦点
  • multiple 是一个 boolean 属性。规定 input 元素中可选择多个值

地理定位

拖拽

html5 新事件:

事件描述
  • onresize 当调整窗口大小时运行脚本
  • ondrag 当拖动元素时运行脚本
  • onscroll 当滚动元素滚动元素的滚动条时运行脚本
  • onmousewheel 当转动鼠标滚轮时运行脚本
  • onerror 当错误发生时运行脚本
  • onplay 当媒介数据将要开始播放时运行脚本
  • onpause 当媒介数据暂停时运行脚本

块级元素:

div、p、h1~h6、ul、ol、dl、li、dd、table、hr、blockquote、address、table、menu、pre,HTML5 新增的 header、section、aside、footer 等

行内元素:

img、a、lable、input、em、big、i、textarea、select、small、sub、sup,strong、button

CSS3 新特性:

选择器:

  • :last-child 选择元素最后一个孩子
  • :first-child 选择元素第一个孩子
  • :nth-child(1) 按照第几个孩子给它设置样式
  • :nth-child(even) 按照偶数
  • :nth-child(odd) 按照奇数
  • :disabled 选择每个禁用的E元素
  • :checked 选择每个被选中的E元素
  • :not(selector) 选择非 selector 元素的每个元素
  • ::selection 选择被用户选取的元素部分
伪类元素:
  • ::before {} 选择器在被选元素的前面插入内容和定义css,使用 content 属性来指定要插入的内容。
  • ::after {} 选择器在被选元素的后面插入内容和定义css,使用 content 属性来指定要插入的内容。
  • :first-letter 选择该元素内容的首字母
  • :first-line 选择该元素内容的首行
  • ::selection 选择被用户选取的元素部分

边框和背景

边框:
  • border-radius:边框圆角
  • box-shadow :盒子阴影
  • text-shadow:文字阴影
  • border-image:边框图片
背景:
  • background-size:规定背景图片的大小

文本效果

属性
  • text-shadow 向文本添加阴影
  • text-justify 规定当 text-align 设置为 “justify” 时所使用的对齐方法
    text
  • text-emphasis 向元素的文本应用重点标记以及重点标记的前景色
  • text-outline 规定文本的轮廓
  • text-overflow规定当文本溢出包含元素时发生的事情overflow:hidden(溢出隐藏)、overflow:auto(溢出自适应)、overflow:scrol(溢出滚动条)
  • text-wrap 规定文本的换行规则
  • word-break 规定非中日韩文本的换行规则
  • word-wrap 允许对长的不可分割的单词进行分割并换行到下一行
  • text-decoration 文本修饰符:overline、line-through、underline 分别是上划线、中划线、下划线
弹性布局的优点:

1 适应性强,在做不同屏幕分辨率的界面时非常实用

2 可以随意按照宽度、比例划分元素的宽高

3 可以轻松改变元素的显示顺序

4 弹性布局实现快捷,易维护

<!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>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .parent-div{
            display: flex;
            width: 100%;
            height: 300px;
        }
        .left-div{
            height: 100%;
            flex: 1;
            background:green;
        }
        .center-div{
            height: 100%;
            width: 200px;
            background: blue;
        }
        .right-div{
            flex: 1;
            height: 100%;
            background: pink;
        }
    </style>
</head>
<body>
    <div class="parent-div">
        <div class="left-div"></div>
        <div class="center-div"></div>
        <div class="right-div"></div>
    </div>
</body>
</html>

中间盒子宽度固定,左右盒子自适应

 <style>
        *{
            margin: 0;
            padding: 0;
        }
        .parent-div{
            display: flex;  /*给父级添加弹性盒*/
            width: 100%;
            height: 300px;
        }
        .left-div{
            height: 100%;
            flex: 1;        /*左侧盒子占一份*/
            background:green;
        }
        .center-div{
            height: 100%;
            width: 200px;  /*中间盒子设置宽200px*/
            background: blue;
        }
        .right-div{
            flex: 1; /*左侧盒子占一份*/
            height: 100%;
            background: pink;
        }
    </style>

弹性盒子属性:

父级属性:

  • flex-wrap: nowrap; /换行/
  • flex-wrap: wrap; /不换行/
  • justify-content: space-between; /左右靠边 中间盒子之间距离相等/
  • justify-content: space-around; /每个两侧盒的间隔相等。所以,盒子之间的间隔比盒子与边框的间隔大一倍。/
  • justify-content: space-evenly; /每个盒子之间的距离都相等/
  • justify-content: flex-start; /左对齐/
  • justify-content: flex-end; /右对齐/
子级属性:
  • align-items: center; /居中/
  • align-content: space-around;/每个两侧盒的间隔相等。所以,盒子之间的间隔比盒子与边框的间隔大一倍。/
  • align-content: space-between;/上下靠边 中间盒子之间距离相等/
  • align-items: flex-end; /底部对齐/
  • align-items: flex-start; /顶部对齐/
 <style>
        *{
            margin: 0;
            padding: 0;
        }
       .parent-div{
            display: flex;  /*给父级添加弹性盒*/
            flex-direction: row; /*弹性盒方向:主轴方向X轴  */
            flex-direction: column;  /* 弹性盒方向:主轴Y轴方向 */
            flex-direction: row-reverse;/* 弹性盒方向:主轴方向X轴 倒叙 */
            flex-direction: column-reverse;
            justify-content: space-between;  /*左右靠边  中间盒子之间距离相等*/
            justify-content: space-around;   /*每个两侧盒的间隔相等。所以,盒子之间的间隔比盒子与边框的间隔大一倍。*/
            justify-content: space-evenly;    /*每个盒子之间的距离都相等*/
            justify-content: flex-start;   /*左对齐*/
            justify-content: flex-end;      /*右对齐*/
            width: 100%;
            height: 200px;
        }
        .left-div{
            height: 100%;
            /* flex: 1;        左侧盒子占一份 */
            background:green;
            width: 200px;
            align-items: center;        /*居中*/
            align-content: space-around;/*每个两侧盒的间隔相等。所以,盒子之间的间隔比盒子与边框的间隔大一倍。*/
            align-content: space-between;/*上下靠边  中间盒子之间距离相等*/
            align-items: flex-end;      /*底部对齐*/
            align-items: flex-start;    /*顶部对齐*/
        }
        .center-div{
            height: 100%;
            width: 200px;  /*中间盒子设置宽200px*/
            background: blue;
        }
        .right-div{
            flex: 1; /*左侧盒子占一份*/
            height: 100%;
            background: pink;
        }
    </style>

2D/3D 转换

2D 转换(transform)
  • translate():元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数。 transform: translate(50px, 100px);

  • rotate():元素顺时针旋转给定的角度。若为负值,元素将逆时针旋转。transform: rotate(30deg);

  • scale():元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数,也可以一个值(宽高)。transform: scale(2,4);

  • skew():元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数。transform: skew(30deg, 20deg);

  • matrix(): 把所有 2D 转换方法组合在一起,需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。transform:matrix(0.866,0.5,-0.5,0.866,0,0);

3D 转换
  • rotateX():元素围绕其 X 轴以给定的度数进行旋转。transform: rotateX(120deg);
  • rotateY():元素围绕其 Y 轴以给定的度数进行旋转。transform: rotateY(130deg);
  • perspective:规定 3D 元素的透视效果
动画、过渡
  • 过渡效果(transition),使页面变化更平滑,以下参数可直接写在 transition 后面
  • transition-property :执行动画对应的属性,例如 color,background 等,可以使用 all 来指定所有的属性。
  • transition-duration:过渡动画的一个持续时间。
  • transition-timing-function:在延续时间段,动画变化的速率,常见的有: - ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier
  • transition-delay:延迟多久后开始动画
动画(animation)

先定义 @keyframes 规则(0%,100% | from,to)
然后定义 animation,以下参数可直接写在 animation 后面

  • animation-name: 定义动画名称
  • animation-duration: 指定元素播放动画所持续的时间长
  • animation-timing-function: ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(, , , ): 指元素根据时间的推进来改变属性值的变换速率,即动画的播放方式
  • animation-delay: 指定元素动画开始时间
  • animation-iteration-count: infinite | number:指定元素播放动画的循环次数
  • animation-direction: normal | alternate: 指定元素动画播放的方向,其只有两个值,默认值为normal,如果设置为 normal 时,动画的每次循环都是向前播放;另一个值是 alternate,规定动画在下一周期逆向地播放(来去播放)
  • animation-play-state: running | paused :控制元素动画的播放状态

canvas使用:

1、需要有一个ID ,画布的尺寸;

<canvas id='myCanvas' width='500' height='500'></canvas>

2、通过ID获取canvas的Dom对象,获取context;

var canvasDom=document.getElementById('myCanvas')
var ctx=canvasDom.getContext('2d')

操作context两种默认方式:1,绘制线(stroke)2,填充(fill);

<script>
    var canvasDom=document.getElementById('canvas')
    var context=canvasDom.getContext('2d')
    ctx.moveTO(x,y)//移动x,y
    ctx.lineTo(x,y)//连线至x ,y
    ctx.stroke();//描边;
    ctx.lineWidth='10' //绘制出的线粗细;
    ctx.fillRect(x,y,width,height)//填充矩形;
    ctx.clearRect(x,y,width,height)//清除画布区域;清除重复绘制的现象
    ctx.beginPath()//----)开辟新路径;
    ctx.closePath()//----闭合路径;
    ctx.stroke()//----描边;
    ctx.fill();//----填充;
    ctx.lineWidth='10'//----线宽;
    ctx.lineJoin//----连接点样式;
    ctx.lineCap//----线头样式;
    ctx.strokeStyle='red'//----描边颜色;
    ctx.fillStyle='blue'//----填充颜色;
</script>

视频

<video src='文件路径' controls='controls'(控制器,可简写为controls) autoplay='autoplay'(自动播放,可简写为autoplay) loop='loop'(重复次数) poster='封面图路径 'width='' height=''></video>

音频

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

推荐阅读更多精彩内容