• 技术文章 >web前端 >html教程

    html5有新属性吗

    青灯夜游青灯夜游2021-05-20 15:51:26原创652

    html5有新属性,例contextmenu、contentEditable、hidden、draggable、“data-*”、placeholder、required、pattern、autofocus、autocomplete等等。

    本教程操作环境:windows7系统、HTML5版、Dell G3电脑。

    HTML5新增属性

    1.1、contextmenu

    contextmenu的作用是指定右键菜单。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <div id="div1" style="height:900px; background: lightgreen;" contextmenu="menuShare">
            </div>
            <menu id="menuShare" type="context">
                <menuitem label="分享到QQ空间" onclick="alert('QQ');"></menuitem>
                <menuitem label="分享到朋友圈" onclick="alert('朋友圈');"></menuitem>
                <menuitem label="分享到微博" onclick="alert('微博');"></menuitem>
            </menu>
        </body>
    </html>

    运行效果:

    contextmenu 在Html5中,每个元素新增了一个属性:contextmenu, contextmenu 是上下文菜单,即鼠标右击元素会出现一个菜单。
    menu 要实现鼠标右击元素会出现一个菜单,还必须了解HTML5里新增的另一个元素:menu 顾名思义menu是定义菜单的, menu 元素属性: type :菜单类型属。 有三个值 1)context:上下文; 2)toolbar:工具栏;3)list:列表
    <menuitem>
    <menu> </menu>内部可以嵌入一个一个菜单项,即<menuitem></menuitem>。
    menuitem 属性:
    label:菜单项显示的名称
    icon:在菜单项左侧显示的图标
    onclick:点击菜单项触发的事件

    1.2、contentEditable

    规定是否可编辑元素的内容
    属性值:
    true -----可以编辑元素的内容
    false -----无法编辑元素的内容
    inherit -----继承父元素的contenteditable属性
    当为空字符串时,效果和true一致。
    当一个元素的contenteditable状态为true(contenteditable属性为空字符串,或为true,或为inherit且其父元素状态为true)时,意味着该元素是可编辑的。否则,该元素不可编辑。

    document.body.contentEditable=true; 可以修改已发布网站

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>contentEditable属性</title>
        </head>
        <body>
            <h2>contentEditable属性</h2>
            <div contenteditable="true">
                Hello contentEditable
            </div>
        </body>
    </html>

    1.3、hidden

    hidden属性用于隐藏该元素。一旦使用了此属性,则该元素就不会在浏览器中被显示
    2个布尔值
    true 规定元素是可见。
    false 规定元素是不可见。

            <div hidden="hidden">
                Hello Hidden
            </div>

    为了兼容一些不支持该属性的浏览器(IE8),可以在CSS中加如下样式:

    *[hidden]{
       display: none;
    }
    var p1=document.querySelector("body #p1");
    p1.innerHTML+=" +++";

    1.4、draggable

    规定元素是否可拖拽
    3个枚举值
    true 规定元素是可拖动的。
    false 规定元素是不可拖动的。
    auto 使用浏览器的默认特性。

    示例:

    <!DOCTYPE html><html>
    
        <head>
            <meta charset="utf-8">
            <script src="Scripts/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>    
            <title></title>
            <style>
                #p1,
                #p3 {
                    height: 200px;
                    width: 200px;
                    border: 1px solid #00f;
                    margin-bottom: 10px;
                }
                #p2 {
                    height: 100px;
                    width: 100px;
                    background: yellow;
                }
            </style>
            <script>
                var p1, p2, p3, msg;
                window.onload = function() {
                    p1 = document.getElementById("p1");
                    p2 = document.getElementById("p2");
                    p3 = document.getElementById("p3");
                    msg = document.getElementById("msg");
                    
                    p2.ondragstart=function(){
                        msg.innerHTML+="p2开始拖动了<br/>";
                    }
                    p2.ondrag=function(){
                        msg.innerHTML+="拖动中<br/>";
                    }
                    p2.ondragend=function(){
                        msg.innerHTML+="拖动结束<br/>";
                    }
                    
                    p1.ondragover = function(e) {
                        e.preventDefault();
                    }
                    p1.ondrop = function(e) {
                        p1.appendChild(p2);
                    }
                    p3.ondragover = function(e) {
                        e.preventDefault();
                    }
                    p3.ondrop = function(e) {
                        p3.appendChild(p2);
                    }
                    
                    $("#p1").data("name","电池");
                    alert($("#p1").data("name"));
                    
                    p1.setAttribute("data-order-price",998.7);
                    alert(p1.getAttribute("data-order-price"));
                }        </script>
        </head>
    
        <body>
            <p id="p1" data-order-price="98.5" data-name="充电宝"></p>
            <p id="p3"></p>
            <p id="p2" draggable="true"></p>
            <h3 id="msg"></h3>
        </body></html>

    运行结果:

    <!DOCTYPE html><html lang="en"><head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title></head><body>
        <p style="height: 300px; background: lightgoldenrodyellow;"  ondrop="ondropEvent(event)" ondragover="ondragoverEvent(event)"></p>
        <img src="img/x.png" width="200" draggable="true" ondragstart="ondragstartEvent(event)"/>
        <img src="img/tv.png" width="200" draggable="true" ondragstart="ondragstartEvent(event)"/>
        <script>
            var target;        function ondragstartEvent(e){
                target=e.target;            //记住当前被拖动的对象            console.log(e.target);
            }        function ondropEvent(e){
                e.preventDefault();
                e.target.appendChild(target);
    
            }        function ondragoverEvent(e){
                e.preventDefault();
            }    </script></body></html>

    1.5、data-*

    data-*属性能让用户自定义属性的方式来存储数据
    <span data-order-amount=100></span>
    取值:
    getAttribute('data-order-amount')
    dataset.orderAmount
    jQuery中的data()方法同样可以访问

    使用jQuery与javascript添加与获取data属性示例:

    <!DOCTYPE html><html>
        <head>
            <meta charset="UTF-8">
            <title>data-*</title>
            <script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
        </head>
        <body>
            <h2>data-*</h2>
            <p id="p1" data-student-name="Tom" data-stu='{"a":1,"b":2}'></p>
            <button onclick="addData()">添加数据</button>
            <button onclick="getData()">获取数据</button>
            <script type="text/javascript">
                var p1=document.getElementById("p1");            function addData()
                {                //给p1添加属性data-student-name,值为rose                p1.setAttribute("data-student-name","Rose");
                    $("#p1").data("stu-mark","99分");
                }            function getData()
                {                //原生JavaScript
                    //alert(p1.getAttribute("data-student-name"));
                    
                    //jQuery                alert($("#p1").data("student-name"));
                    alert($("#p1").data("stu").a);
                    alert($("#p1").data("stu-mark"));
                }            
                
                var x="{a:1}";
                alert(eval("("+x+")").a);        </script>
        </body></html>

    运行效果:

    1.6、placeholder占位属性

    这是一个很实用的属性,免去了用JS去实现点击清除表单初始值.浏览器支持也还不错,除了Firefox,其他标准浏览器都能很好的支持
    <input placeholder="请输入用户名">

                <p>
                    <label>邮箱:</label>
                    <input type="email" name="mail" id="mail" value="" placeholder="请输入邮箱"/>
                </p>

    1.7、required必填属性

    约束表单元在提交前必须输入值。

                <p>
                    <label>博客:</label>
                    <input type="url" name="blog" id="blog" value="" required="required"/>
                </p>

    1.8、pattern正则属性

    约束用户输入的值必须与正则表达式匹配。

                <p>
                    <label>帐号:</label>
                    <input type="text" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />请输入a-zA-Z0-9且长度6-16位的字符            
                    </p>

    1.9、autofocus自动聚焦属性

                <p>
                    <label>博客:</label>
                    <input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/>
                </p>

    让指定的表单元素获得焦点。

    1.10、autocomplete自动补全属性

    当表单元素设置了自动完成功能后,会记录用户输入过的内容,双击表单元素会显示历史输入。

    <input type="text" name="username" autocomplete="on/off" />

    该属性默认是打开的。

    1.11、novalidate不验证属性

    novalidate 属性规定在提交表单时不应该验证 form 或 input 域。

    <form action="demo_form.asp" method="get" novalidate="true">
    <button formnovalidate="formnovalidate" >提交</button>

    1.12、multiple多选属性

    multiple 属性规定输入域中可选择多个内容,如:email 和 file

    <input type="file" multiple="multiple” />

                <p>
                    <label>相片:</label>
                    <input type="file" multiple="multiple"/>
                </p>

    <!DOCTYPE html><html>
    
        <head>
            <meta charset="UTF-8">
            <title>HTML5新的表单元素</title>
        </head>
    
        <body>
            <h2>HTML5新的表单元素</h2>
            <form>
                <p>
                    <label>姓名:</label>
                    <input type="text" required="required"/>
                </p>
                <p>
                    <label>相片:</label>
                    <input type="file" multiple="multiple"/>
                </p>
                <p>
                    <label>帐号:</label>
                    <input type="text" name="username" autocomplete="on" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />请输入a-zA-Z0-9且长度6-16位的字符            </p>
                <p>
                    <label>邮箱:</label>
                    <input type="email" name="mail" id="mail" value="" placeholder="请输入邮箱"/>
                </p>
                <p>
                    <label>博客:</label>
                    <input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/>
                </p>
                <p>
                    <label>生日:</label>
                    <input type="date">
                </p>
                <p>
                    <label>身高:</label>
                    <input type="number" max="226" min="80" step="10" value="170" />
                </p>
                <p>
                    <label>肤色:</label>
                    <input type="color" onchange="document.bgColor=this.value" />
                </p>
                <p>
                    <label>体重:</label>
                    <input type="range" max="500" min="30" step="5" value="65" onchange="showValue(this.value)"/>
                    <span id="rangeValue"></span>
                </p>
                <button formnovalidate="formnovalidate">提交</button>
                <script type="text/javascript">
                    function showValue(val){
                        document.getElementById("rangeValue").innerHTML=val;
                    }            </script>
            </form>
        </body></html>

    推荐教程:html视频教程

    以上就是html5有新属性吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:html5 新属性
    上一篇:html怎么使按钮不可用 下一篇:html5可以做什么
    线上培训班

    相关文章推荐

    • eclipse html插件怎么安装• html表格行怎么隐藏• html中的标签是什么• html怎么设置链接• html怎么设置表格间距

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网