面试题:HTML5新增的内容有哪些

774 阅读2分钟

HTML5新增内容

  • 语义化标签
  • 表单类型
  • 表单元素
  • 表单属性
  • 表单事件
  • 多媒体标签

语义化标签

语义化标签的优点

  1. 提升可访问性,即使在没有CSS的支持下,浏览器依然能呈现出良好的内容结构
  2. 有利于搜索引擎优化(SEO)
  3. 结构清晰,利于维护
  • header——页面头部
  • main——页面主要内容
  • footer——页面底部
  • nav——页面导航
  • section——Web页面中的一块区域,相当于div
  • article——独立的文章内容
  • aside——侧边栏
  • video、audio——视频、音频标签

表单类型

input新增的类型 image.png

表单元素

在我们之前的html中,表单元素必须放在form元素所包含的里面,在html5中,可以把他们写在页面上的任何一个地方,然后给该元素增加一个form属性,form属性的值为form表单的id

<form method="get" id="test">
      <input type="text" name="name"/>
      <input type="password" name="password"/>
      <input type="submit" value="提交">
 </form>
<input type="text" name="confirm" form="test">

表单属性

image.png

<!doctype html>
<html>
    <head></head>
    <body>
        <form action="http://localhost/test.php" method="post" id="register"></form>
        <input type="text" name="user" value="" form="register" />
        <input type="password" name="pwd" value="" form="register" />
        <select name="year" form="register">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
        <input type="submit" value="注册" form="register" />
        <hr />
        <!--
            form: html5表单将form和它所提交的内容分开,这样有利于排版,但是需要在给提交的内容标签添加form属性。
                       例如:<input type="text" name="user" value="" form="register" />
        -->
        默认值:<input type="text" name="test" value="" pattern="\d{3}" placeholder="我是新的HTML5的默认值" 
          form="register" /><br />
        邮箱:<input type="email" name="youxiang" value="" form="register" required="required" /><br />
        URL:<input type="url" name="url" value="" form="register" /><br />
        DATE:<input type="date" name="riqi" value="" form="register" /><br />
        TIME:<input type="time" name="shijian" value="" form="register" /><br />
        Month:<input type="month" name="yue" value="" form="register" /><br />
        WEEK:<input type="week" name="zhou" value="" form="register" /><br />
        数字:<input type="number" name="shuzi" value="" form="register" autofocus="autofocus" /><br />
        滑动条:<input type="range" name="huadong" value="" form="register" max="10" step="2" /><br />
        搜索:<input type="search" name="sousuo" value="" form="register" results="n"  /><br />
        颜色:<input type="color" name="yanse" value="" form="register" /><br />
        <hr />
        自动填充表单<br />
        <input type="text" name="auto" value="" list="movie" />
        <datalist id="movie">
            <option>四海</option>
            <option>奇迹</option>
            <option>水门桥</option>
        </datalist>
        <hr />
        输出表单output<br />
        <form action="" method="post" oninput="result.value=parseInt(no1.value)+parseInt(no2.value)">
            <input type="number" name="no1" value="" />
            <input type="number" name="no2" value="" />
            <output name="result"></output>
        </form>
    </body>
</html>

表单事件

  • oninput:监听当前指定元素内容的改变
  • onkeyup:键盘弹起的时候触发
  • oninvalid:当验证不通过时触发
<form action="">
    用户名:<input type="text" name="userName" id="userName"><br>
    电话:<input type="tel" name="userPhone" id="userPhone" pattern="^1\d{10}$"> <br>
    <input type="submit">
</form>
<script>
    /*1.oninput:监听当前指定元素内容的改变:只要内容改变(添加内容,删除内容),就会触发这个事件*/
    document.getElementById("userName").oninput=function(){
        console.log("oninput:"+this.value);
    }

    /*onkeyup:键盘弹起的时候触发:每一个键的弹起都会触发一次*/
    document.getElementById("userName").onkeyup=function(){
        console.log("onkeyup:"+this.value);
    }

    /*oninvalid:当验证不通过时触发*/
    document.getElementById("userPhone").oninvalid=function(){  /*自定义时可以操作*/
        /*设置默认的提示信息*/
        this.setCustomValidity("请输入合法的11位手机号");
    }
</script>

多媒体标签

<!-- 视频 -->
<video src="文件地址"></video>

<!-- 音频: 两种写法 -->
<audio src="文件地址" controls="controls"></audio>
<audio controls="controls">
  <source src="happy.mp3" type="audio/mpeg">
</audio>
  • autoplay:设置视频自动播放(谷歌浏览器需要添加muted才能自动播放)
  • controls:可以向用户显示播放控件(播放按钮,进度条,全屏等)
  • width,height:设置播放器宽度,高度
  • loop:设置视频循环播放
  • muted:设置静音播放
  • preload:auto;(预先加载视频)/none(不预先加载) 与autoplay相冲突,设置了autoplay属性,preload属性会失效
  • poster:imgurl :设置没有播放之前显示的占位图片 音频没有宽高及poster属性