CSS3 @font-face规则和多列

CSS3 @font-face规则

使用CSS3 @font-face规则,网页设计师再也不必使用计算机安装的字体;网页设计师可以使用任何喜欢的字体。

当你发现需要使用的字体文件时,只需简单的将字体文件包含在网站中,它会自动下载给需要的用户。

你想要的字体就是在CCS3 @font-face规则中定义的。

示例如下:

    <style>
        @font-face{
            font-family:你的自定义字体名称;
            src:url("字体路径");
        }
        /*引用*/
        p{
            font-family:你的自定义字体名称;
        }
    </style>
    <p>我是文字</p>

CSS3多列

通过CSS3,可以创建多个列来对文本进行布局(例如报纸),主要属性如下:

  1. column-count定义分栏的数目;

  2. column-gap定义列与列之间的间隔;

  3. column-rule定义列与列的宽度、样式和颜色规则。

    <style>
        div.column{
            column-count:3;
            column-gap: 50px;
            column-rule: 10px dotted gold;
        }
    </style>
    <div class="column">
        人生就是从烦恼中走过,去寻找人生的智慧,去寻找人生的真谛。假如人身没有烦恼,非常完美,那么那是一场童话;假如人生没有失落,没有失落也就没有希望,人生总是在失落中遥望,遥望有一天能走出苦恼。生活是从误解中收获宽恕,从伤害中收获饶恕,从烦恼中收获智慧,从痛苦中收获善良。
    </div>
    <div class="column">
        人生就是从烦恼中走过,去寻找人生的智慧,去寻找人生的真谛。假如人身没有烦恼,非常完美,那么那是一场童话;假如人生没有失落,没有失落也就没有希望,人生总是在失落中遥望,遥望有一天能走出苦恼。生活是从误解中收获宽恕,从伤害中收获饶恕,从烦恼中收获智慧,从痛苦中收获善良。
    </div>

图片如下:

column多列

CSS3动画

Animation动画

简写方式为animation:liu 5s infinite linear 2s normal;

animation:animation-name animation-duration animation-timing-function animation-iteration-count animation-delay animation-direction;

animation-name动画属性名

animation-name属性为@keyframes动画规定名称。

@keframes动画关键帧

通过@keyframes规则,能够创建动画。创建动画的原理是将一套CSS样式逐渐变化为另一套样式。在动画过程中,能够多次改变这套样式。

百分比来规定改变发生的时间,或者通过关键词from和to,等价于0%和100%

示例如下:

    @keyframes name{
            from{

            }
            to{

            }
    }

animation-duration动画持续时间

animation-duration属性定义动画完成一个周期所需要的时间,以秒计。默认为0,没有动画效果。

animation-timing-function动画效果

animation-timing-function规定动画的速度曲线。主要有:

  1. linear 匀速
  2. ease 先快后慢(默认属性)
  3. ease-in 由慢到快
  4. ease-out 由快到慢
  5. ease-in-out 先慢后快再慢
  6. cubic-bezier(n,n,n,n)自定义函数,可能的值为0~1。

animation-iteration-count动画循环次数

animation-iteration-count指定元素播放动画循环次数。默认值1,播放一次。

animation-iteration-count:n | infinite;n指动画播放次数的数值;infinite指动画无限次播放。

animation-delay延迟

animation-delay指定元素动画开始时间,单位为s秒。默认值0。

animation-direction播放方向

animation-direction指定元素动画播放的方向。

animation-direction:normal | alternate;normal默认值,动画的每次循环都是向前播放;alternate动画播放第奇数次正常播放,第偶数次反方向播放。

animation-fill-mode

animation-fill-mode属性规定动画在播放之前或之后,其动画效果是否可见。

animation-fill-mode:none | forwardsnone不改变默认行为;forwards当动画完成后,保持最后一个属性值。

示例如下:

    <style>
        div.animationdiv{
            width:600px;
            height:600px;
            position:relative;
            left:150px;
        }
        div.animationdemo{
            width:100px;
            height:100px;
            position:absolute;
            background-color:fuchsia;
            animation:animationmove infinite 8s linear 2s normal;
        }
        @keyframes animationmove{
            0%{
                left:0;
                top:0;
                transform:scale(1,1);
            }
            12.5%{
                left:200px;
                top:0;
                background-color:red;
                transform:scale(1,1);
            }
            25%{
                left:400px;
                top:0;
                background-color:teal;
                transform:scale(2,2);
            }
            37.5%{
                left:400px;
                top:200px;
                background-color:aqua;
                transform:scale(2,2);
                border-radius:25%;
            }
            50%{
                left:400px;
                top:400px;
                border-radius:50%;
            }
            62.5%{
                left:200px;
                top:400px;
                background-color:olive;
                transform:scale(2,2);
            }
            75%{
                left:0;
                top:400px;
                background-color:lime;
                transform:scale(1,1);
            }
            87.5%{
                left:0;
                top:200px;
                background-color:green;
                transform:scale(2,2);
                border-radius:50%;
            }
            100%{
                left:0;
                top:0;
                background-color:fuchsia;
                transform:scale(1,1);
            }
        }
    </style>
    <div class="animationdiv">
        <div class="animationdemo"></div>
    </div>
    
    

CSS3变形

CSS3变形主要指transform属性,分为2D和3D

transform2D

transform:rotate(deg) scale(x,y) skew(x,y) translate(x,y);

transform:rotate()旋转

通过指定的角度参数对原元素制定一个2D旋转,deg(角度,单位)可为负数

transform:scale(x,y)缩放

  1. scale(x,y)元素水平方向和垂直方向同时缩放
  2. scaleX(x)元素仅水平方向缩放
  3. scaleY(y)元素仅垂直方向缩放
  4. x,y可以为整数 小数

transform:skew(x,y)扭曲

  1. skew(x,y)元素水平和垂直方向同时扭曲变形
  2. skewX(x)元素仅水平方向扭曲变形
  3. skewY(y)元素仅垂直方向扭曲变形
  4. x,y单位为deg(角度)

transform:translate(x,y)偏移

  1. translate(x,y)元素水平方向和垂直方向同时移动
  2. translateX(x)元素仅水平方向移动
  3. translateY(y)元素仅垂直方向移动
  4. x,y可以为负数

示例如下:

    <style>
        .translate2d{
            display:block;
            width:200px;
            height:200px;
            background-color:aqua;
            transition:all 4s;
            transform:rotate(0) scale(1,1) skew(0deg,0deg) translate(0px);
        }
        .translate2d:hover{
            background:lime url("http://tupian.sucaitianxia.com/images/008/pic7884.jpg") 0 0 no-repeat;
            background-size:100%;
            transform:rotate(710deg) scale(2,2) skew(10deg,10deg) translate(200px,0px);
        }
    </style>
    <a class="translate2d" href="https://liuxiaomengzy.github.io/"></a>

鼠标滑过观察效果:

    
    

transform3D

transform-style:flat(默认)/preserve-3d

flat默认属性,所有子元素在2D平面呈现

preserve-3d,所有子元素在3D平面呈现,设置这个属性之后,就不能设置overflow:hidden(可以认为是舞台)。

transform-origin(X,Y,Z)

元素的基点位置,默认基点是元素中心位置。

transform-origin(X,Y,Z),其中X和Y的值可以是百分比、em、px等,Z必须为px、em等具体值,因其默认空间无限大,不可百分比为单位。

transform:rotateZ()

  1. rotateX()元素围绕X轴以给定的度数进行旋转
  2. rotateY()元素围绕Y轴以给定的度数进行旋转
  3. rotateZ()元素围绕Z轴以给定的度数进行旋转
  4. 默认沿着逆时针方向旋转

perspective视距/视角

设置查看者的位置,单位为px。指元素距离视图的距离(可想象为电影院座位)。

当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。

ex: transform:perspective(600px) rotateY(45deg);

perspective-origin视角中心

perspective-origin:X Y Z;X,Y可以设置px、百分比,Z不可设置百分比。

主要与perspective一同使用,用来改变 3D 元素的底部位置。

transform:translateZ()偏移

translateZ(z)元素沿Z轴方向移动,z可以为负数

backface-visibility

backface-visibility:visible||hidden,元素旋转背面是否可见。

visible可见 || hidden隐藏

示例如下(因设置需要对div设置了hover效果,正常代码不建议使用):

    <style>
        div.p3d{
            perspective:500px;
            perspective-origin:50% 50% 100px;
        }
        div.space{
            width:200px;
            height:200px;
            margin:0 auto;
            position:relative;
            transform-style:preserve-3d;
            transition:all 3s;
            transform-origin:50% 50% 100px;
            transform:rotate3d(0,0,0,0deg);
        }
        div.space:hover{
            transform:rotate3d(1,1,1,360deg);
        }
        div.cube{
            position:absolute;
            width:200px;
            height:200px;
            text-align:center;
            line-height:200px;
            font-size:50px;
            color:white;
            top:0;
            left:0;
            opacity:0.6;
            backface-visibility:visible;
        }
        div.square1{
            transform-origin:0 50%;
            transform:rotateY(-90deg);
            background:maroon;
        }
        div.square2{
            transform-origin:50% 0;
            transform:rotateX(90deg);
            background:green;
        }
        div.square3{
            transform-origin:100% 50%;
            transform:rotateY(90deg);
            background:lime;
        }
        div.square4{
            transform-origin:50% 100%;
            transform:rotateX(-90deg);
            background:fuchsia;
        }
        div.square5{
            transform:translateZ(200px);
            background:blue;
        }
        div.square6{
            background:aqua;
        }
    </style>
    <div class="p3d">
        <div class="space">
            <div class="cube square1">一</div>
            <div class="cube square2">二</div>
            <div class="cube square3">三</div>
            <div class="cube square4">四</div>
            <div class="cube square5">五</div>
            <div class="cube square6">六</div>
        </div>
    </div>
    
    

CSS3过渡

CSS3过渡主要指transition属性,具体如下:

transition:all 2s ease-in-out 3s;

transition:property duration transition-timing-function delay;

transition-property

transition-property属性指执行过渡变换的属性,这些属性必须有直接的改变,如all || width || height || left || right || top || bottom || opacity || font-size || color 等。

transition-duration

transition-duration过渡变换延续的时间,单位s(秒),可以为小数。

transition-timing-function

transition-timing-function过渡的动画类型,主要有:

  1. linear 匀速
  2. ease 先快后慢
  3. ease-in 由慢到快
  4. ease-out 由快到慢
  5. ease-in-out 先慢后快再慢
  6. cubic-bezier(n,n,n,n)自定义函数,可能的值为0~1。

transition-delay

transition-delay执行过渡开始的时间(延时)

设置过渡记得设置初始值!伪元素不能hover。

示例如下:

    <style>
        a.transition{
            display:block;
            width:300px;
            height:300px;
            background-color:pink;
            margin:0 auto;            
        }
        a.transition:hover{
            transition:all 2s ease-in 1s;    
            width:500px;
            height:500px;
            background-color:fuchsia;
            border:20px solid gold;
            border-radius:50% / 50%;
        }
    </style>
    <a class="transition" href="https://liuxiaomengzy.github.io/"></a>
    
    

CSS3背景

CSS3背景主要指CSS3 background属性

background-origin属性

background-origin指背景图出现方式,主要有以下值:

  1. background-origin:content-box背景图像相对于内容框来定位。

  2. background-origin:padding-box背景图像相对于内边距框来定位(默认属性)。

  3. background-origin:border-box背景图像相对于边框盒来定位。

    <style>
        .div1{
            width:200px;
            height:300px;
            padding-left:100px;
            margin:100px auto 0;
            background:url("http://b.hiphotos.baidu.com/zhidao/pic/item/14ce36d3d539b6000b671ee4ef50352ac65cb733.jpg") no-repeat;
            background-size:contain;
            border:10px dashed gold;
            background-origin:;
        }
    </style>
    <div class="div1">
        我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字
    </div>

当设置background-origin:content-box,效果如下:

b-origin-content-box

当设置background-origin:padding-box,效果如下:

b-origin-padding-box

当设置background-origin:border-box,效果如下:

b-origin-border-box

background-cilp属性

background-cilp指背景图裁减方式,主要有以下值:

  1. background-cilp:content-box背景被裁剪到内容框。

  2. background-cilp:padding-box背景被裁剪到内边距框。

  3. background-cilp:border-box背景被裁剪到边框盒(不支持)。

    <style>
        .div1{
            width:200px;
            height:300px;
            padding-left:100px;
            margin:100px auto 0;
            background:url("http://b.hiphotos.baidu.com/zhidao/pic/item/14ce36d3d539b6000b671ee4ef50352ac65cb733.jpg") no-repeat;
            background-size:contain;
            border:10px dashed gold;
            background-clip:;
        }
    </style>
    <div class="div1">
        我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字我是文字
    </div>

当设置background-clip:content-box,效果如下:

b-clip-content-box

当设置background-clip:padding-box,效果如下:

b-clip-padding-box

background-image属性

主要用来设置渐变背景,包含linear-gradient(线性渐变)和radial-gradient(径向渐变)。

linear-gradient(to top,red,blue)指颜色朝着一条直线轴变化,共有三个参数:

  1. 第一个参数表示线性渐变的方向,top从上到下、left从左到右(在chrome浏览器下需要前面加to),或者设置角度(deg)

  2. 第二个和第三个参数分别是起点颜色、终点颜色。还可以在中间插入多种颜色,表示多种颜色的渐变。

  3. 一个background-image可以设置多个linear-gradient,为了防止全部覆盖,可以设置transparent来观察。

4.可以对第二个第三个参数设置px/%,但是要保证后面颜色大于前面才会引起渐变,等于或小于时是没有渐变的全为实体色,而且整体加起来不得超过100%或border的宽高属性。

    <style>
        .div2{
            width:300px;
            height:300px;
            margin:0 auto;
            border:10px solid gold;
            background-image:linear-gradient(90deg,blue,transparent),linear-gradient(to top,red,green);
            background-size:50px;
        }
    </style>
    <div class="div2"></div>
    
    

radial-gradient(at top,red,blue)是径向渐变,颜色从一个起点朝所有方向混合,共有三个参数:

  1. 第一个参数表示径向渐变的方向,top从上中心开始渐变(在chrome浏览器下需要前面加at),或者设置px,通过top、right、bottom、left来定位渐变的起点

  2. 第二个和第三个参数分别是起点颜色、终点颜色。还可以在中间插入多种颜色,表示多种颜色的渐变。

  3. 一个background-image只可以设置一个radial-gradient

  4. 可以对第二个第三个参数设置px/%,但是要保证后面颜色大于前面才会引起渐变,等于或小于时是没有渐变的全为实体色,而且整体加起来不得超过100%或border的宽高属性。

    <style>
        .div3{
            width:300px;
            height:300px;
            margin:0 auto;
            border:10px solid gold;
            background-image:radial-gradient(at top,blue,green);
            background-size:50px;
        }
    </style>
    <div class="div3"></div>
    
    

CSS3圆角

border-radius属性

border-radius属性是一个简写属性,用于设置border-top-left-radius border-top-right-radius border-bottom-right-radius border-bottom-left-radius,其顺序也是如此。

也可以设置border-radius: 1-4 length|% / 1-4 length|%;border-radius:length|%

    <style>
        .div1{
            width:300px;
            height:300px;
            background-color:red;
            margin:0 auto;
            border-radius:50% 50% 50% 50% / 65% 65% 35% 35%;
        }
        .div2{
            width:300px;
            height:300px;
            background-color:red;
            margin:0 auto;
            border-radius:50% / 35%;
        }
    </style>
    <div class="div1"></div>
    <div class="div2"></div>
    
    

box-shadow属性

box-shadow: h-shadow v-shadow blur color inset;

  1. 第一个参数 x-offset偏移(允许负值)

  2. 第二个参数 y-offset偏移(允许负值)

  3. 第三个参数 模糊度

  4. 第四个参数 颜色

  5. 第五个参数 内阴影 inset(不设置时默认为outset外阴影)

text-shadow属性

text-shadow: h-shadow v-shadow blur color;

  1. 第一个参数 x-offset偏移(允许负值)

  2. 第二个参数 y-offset偏移(允许负值)

  3. 第三个参数 模糊度

  4. 第四个参数 颜色

    <style>
        div{
            width:300px;
            height:300px;
            background-color:green;
            margin:0 auto;
            box-shadow:3px 3px 4px black;
            font-size:50px;
            color:black;
            text-shadow:2px 2px 2px gold;
        }
    </style>
    <div>我是div,我是文字</div>

效果如下:

阴影

CSS3盒模型

CSS3盒模型也就是指 box-sizing 属性

box-sizing主要有三个值,分别为content-box(默认值)|| border-box || padding-box。

box-sizing:content-box,border和padding不计算在width内

box-sizing:padding-box,padding计算在width内,border不计算在width内(暂时只有火狐支持,前缀加入-moz-

box-sizing:border-box,border和padding都计算在width内

outline外轮廓

在此顺便提一下outline属性,outline是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。

轮廓线不会占据空间,也不一定是矩形

outline简写属性在一个声明中设置所有的轮廓属性,包括outline-color outline-style outline-width,与border一样,顺序可以任性调换。

outline不包含在box-sizing内。

    <style>
        .div1{
            width:200px;
            height:200px;
            background-color:pink;
            box-sizing:content-box;
            padding:50px;
            border:20px solid gold;
            color:white;
            margin:0 auto;
            outline:5px solid black;
        }
        .div2{
            width:200px;
            height:200px;
            background-color:red;
            -moz-box-sizing:padding-box;
            box-sizing:padding-box;
            padding:50px;
            border:20px solid gold;
            color:white;
            margin:0 auto;
            outline:5px solid black;
        }
        .div3{
            width:200px;
            height:200px;
            background-color:blue;
            box-sizing:border-box;
            padding:50px;
            border:20px solid gold;
            color:white;
            margin:0 auto;
            outline:5px solid black;
        }
    </style>
    <div class="div1">我是div我是div</div>
    <div class="div2">我是div我是div</div>
    <div class="div3">我是div我是div</div>
    
    
我是div我是div
我是div我是div
我是div我是div

CSS3选择器

CSS3选择器主要包含以下几种

子元素选择器

E > F类型,子元素选择器选中的是子元素F,子子孙孙不会被选

而后代选择器E F类型是选中所有的F,包含F的后代也选中

兄弟选择器

相邻兄弟选择器

E + F类型,必备属性:1.必须同级;2.必须相邻;3.必须在其下方;4.有且只有一个符合。

通用兄弟选择器

E ~ F类型,必备属性:1.必须同级;2.必须在其下方;3.可以有多个符合。

属性选择器

[ ]类型,例如[class]指具有class属性的值

[abc ="value"]类型,属性和值选择器

[abc ~="value"] ~表示几个以空格隔开的属性值中包含了”value”

[abc ^="value"] ^以value开头的值

[abc $="value"] $以value结尾的值

[abc *="value"] *包含value的值

[abc |="value"] |以value或value-开头的值

[abc =value][abc *="value"]较实用。

伪类选择器

锚点伪类(a的伪类)

简称爱恨法则 love & hate

  1. l = link 没有访问过的状态

  2. v = visited 访问过后的状态

  3. h = hover 鼠标悬浮在标签上的状态

  4. a = active 鼠标悬浮在标签上按下没有松开的状态

使用时候顺序不能变,必须从前到后。

UI元素伪类 表单元素

disabled 废弃属性,元素不可用

focus 聚焦属性

checked 选中(并不能完美支持)

enabled 可用状态

    <style>
        input:disabled{
            border:2px solid blue;
            background-color:gold;
        }
        input:focus{
            border:2px solid red;
        }
        input:checked{
            display:block;
            width:50px;
            height:50px;
        }
        input:enabled{
            background-color:pink;
        }
    </style>
    <form>
        <input type="text" disabled />
        <input type="text"/>
        <input type="text"/>
        <input type="checkbox"/>
        <input type="checkbox"/>
    </form>
    
    

否定选择器

:not类型,通常和属性选择器结合使用。

    <style>
        input:not([type="submit"]){
            border:2px solid gold;
        }
    </style>
    <form>
    <input type="text"/>
    <input type="submit"/>
    </form>

效果如下:

not否定选择器

nth选择器

:first-child选择某个元素的第一个子元素

last-child选择某个元素的最后一个子元素

nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算

:nth-of-type()选择指定的元素

:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算

:first-of-type选择一个上级元素下的第一个同类子元素

:last-of-type选择一个上级元素的最后一个同类子元素

:only-child选择的元素是它的父元素的唯一一个子元素

:only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素

:empty选择的元素里面没有任何内容

因属性较多,后面属性设置会覆盖前面,就不在一一展现,仅列举几个

    <style>
        ul li:first-child{
            background-color:black;
        }
        ul li:last-child{
            background-color:pink;
        }
        ul li:nth-of-type(3){
            background-color:blue;
        }
    </style>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>

效果如下:

nth选择器

:nth-child()选择某个元素的一个或多个特定的子元素

:nth-child(length)参数是具体数字

:nth-child(n)参数是n,n从1开始计算

:nth-child(2n)n的倍数选择,n从1开始算(偶数行也可用even)

:nth-child(2n+1)表示隔几选一(奇数行也可用odd)

:nth-child(n+length)选择大于等于length后面的元素

:nth-child(-n+length)选择小于等于length前面的元素

伪元素

::first-letter选择文本块的第一个字母,除非在同一行里面包含一些其它元素,不过这个主要运用于段落排版上多

::first-line选择元素的第一行

::before,::after这两个主要用来给元素的前面或后面插入内容,这两个常用”content”配合使用,见过最多的就是清除浮动还有图片icon

::selection用来改变浏览网页选中文本的默认效果,::selection只能设置两个属性background,color属性,设置其他属性是没有任何效果的

    <style>
        div{
            width:500px;
            height:500px;
            background-color:green;
            margin:0 auto;
            font-size:30px;
            position:relative;
            font-size:30px;
            }
        div::before{
            content:"";
            width:200px;
            height:200px;
            background-color:orange;
            display:block;
            position:absolute;
            top:60px;
            left:0;
        }
        div::after{
            content:"";
            width:200px;
            height:200px;
            background-color:gold;
            display:block;
            position:absolute;
            right:0;
            top:0;
        }
        div::first-letter{
            color:red;
            font-size:60px;
        }
        div::first-line{
            color:purple;
        }
        div::selection{
            color:white;
            background:black;
        }
    </style>
    <div>我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div
    </div>    

效果如下:

伪元素

HTML5新增音视频

HTML5音视频主要包含以下内容

audio音频

<audio></audio>标签定义声音,比如音乐或其他音频流。

其属性有:

  1. autoplay属性,自动播放
  2. controls属性,出现控制面板
  3. loop属性,设置单曲循环
  4. preload属性,提前加载
  5. src属性,要播放的音频的URL

当有多种资源时,就可以用到<source/>属性,一个audio里可以有多个source

    <audio preload autoplay controls>
        <source src="" type="audio/mp3" />
        <source src="" type="audio/ogg" />
        <source src="" type="audio/mpeg" />
    </audio>
    

video视频

<video></video>标签定义视频,比如电影片段或其他视频流。

其属性有:

  1. autoplay属性,自动播放
  2. controls属性,出现控制面板
  3. loop属性,设置单曲循环
  4. preload属性,提前加载
  5. src属性,要播放的音频的URL
  6. width属性,可以设置宽度让其高度自适应

当有多种资源时,就可以用到<source/>属性,一个video里可以有多个source

    <video width="100%" controls>
        <source src="http://www.zhangxinxu.com/study/media/cat.mp4" type="video/mp4">
        <source src="" type="video/mkv" />
        <source src="" type="video/rmvb" />
    </video>
    

source标签

<source/>标签为媒介元素(比如<video><audio>)定义媒介资源。

<source/>标签允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择。

track标签

用在媒体播放器中的文本轨道,如歌词文件/字幕文件。

HTML5新增表单元素

HTML5新增表单元素主要有

input标签

其type类型主要有有以下几种:

  1. type="tel"用于输入电话号码

  2. type="search"用于提示用户输入要搜索的文字。searchtext的区别主要在于样式上

  3. type="url"用于输入单个网址

  4. type="email"用于输入单个电子邮件地址;如果指定multiple属性,可以输入多个电子邮件地址,以逗号分隔

  5. type="datetime"用于输入时区设置为UTC的日期和时间

  6. type="date"用于输入不含时区的日期

  7. type="month"用于输入含年份和月份但不含时区的日期

  8. type="week"用于输入含年份和周数但不含时区的日期

  9. type="time"用于输入含小时、分钟、秒和秒的小数部分但不含时区的时间值

  10. type="datetime-local"用于输入不含时区的日期和时间。

  11. type="number"用于输入数字。

  12. type="range"用于输入数字,但与number的区别在于无需输入具体数字。在大部分支持该类型的浏览器中,范围控件的实施形式为滑块。

  13. type="color"用于通过颜色池控件选择颜色(现在浏览器还不兼容)。

    <form>
        <input type="tel" />
        <input type="search" />
        <input type="url" />
        <input type="email" />
        <input type="datetime" />
        <input type="date" />
        <input type="month" />
        <input type="week" />
        <input type="time" />
        <input type="datetime-local" />
        <input type="number" />
        <input type="range" />
        <input type="color" />
        <input type="submit" required />
    </form>
    

label标签

<label></label>标签为input元素定义标注(标记),必须配合input使用。

<label>标签的for属性应当与相关元素的id属性相同。

    <label for="textinput">账号:</label>
    <input type="text" placeholder="请输入您的账号" id="textinput"/>
    <br/>
    <label for="pas">密码:</label>
    <input type="password" placeholder="请输入您的密码" id="pas"/>
    

datalist标签

<datalist></datelist>标签定义选项列表,option为其选项,必须配合input使用。

<datalist>标签的list属性应当与相关元素的id属性相同。

    <form>
        <input type="text" list="number"/>
        <datalist id="number">
            <option>111</option>
            <option>222</option>
            <option>333</option>
            <option>444</option>
            <option>555</option>
            <option>666</option>
        </datalist>
    </form>
    

keygen标签

<keygen/>标签规定用于表单的密钥对生成器字段。

    <keygen/>
    

ins标签

<ins></ins>标签定义已经被插入文档中的文本。

一般与<del></del>一同使用,来描述文档中的更新和修正。

    <p>这件衣服<del>原价288元</del><ins>现价108元</ins>。</p>
    

这件衣服原价288元现价108元

samp标签

<samp></samp>标签定义计算机程序的样本文本。

fieldset标签和legend标签

<fieldset></fieldset>标签将表单内容的一部分打包,生成一组相关表单的字段(相当于一个框,把你想要的框起来)。

<legend></legend>标签为fieldset元素定义标题(框的标题)。

    <form>
        <fieldset>
            <legend>账号信息</legend>
            <label for="textinput">账号:</label>
            <input type="text" placeholder="请输入您的账号" id="textinput"/>
            <br/>
            <label for="pas">密码:</label>
            <input type="password" placeholder="请输入您的密码" id="pas"/>            
        </fieldset>
    </form>
    
账号信息

HTML5新增form表单属性

autofocus属性

用于在网页加载后对焦到相关元素上的输入。(因怕影响阅读就不加入此属性)

autofocus的目标可以是输入、选择、文本区域和按钮。

placeholder属性

用于提示用户应输入的数据类型。在上面已经用到。

在对焦到相关元素以及用户输入数据之前,系统会以浅色文字显示占位符值。您可以在输入和文本区域中指定该值。

required属性

required属性规定必需在提交之前填写输入字段。相当于最基本的一个验证。在上面已经用到。

pattern属性

pattern属性规定用于验证输入字段的模式。主要结合JavaScript进行验证。

autocomplete属性

autocomplete属性规定表单是否应该启用自动完成功能.