html5默认气泡修改的代码详解


Posted in HTML / CSS onMarch 13, 2020

html5默认气泡修改

默认的浏览器气泡样式:

谷歌浏览器

html5默认气泡修改的代码详解 
 

火狐浏览器

html5默认气泡修改的代码详解 
 

IE浏览器

html5默认气泡修改的代码详解 
 

在谷歌29版本之前可以使用伪元素进行修改:

::-webkit-validation-bubble 不过已被废弃!!!

新的解决方案:

效果图:

html5默认气泡修改的代码详解 
 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>form</title>
    <style>
        .container{margin:100px;font-size:14px;position: relative;}
        .item{position: relative;width:250px;height:40px;margin-bottom: 10px;}
        input{width:250px;height:20px;line-height:20px;border-radius: 4px;border:1px solid #999;color:#999;margin-bottom:10px;padding:5px;position: absolute;left:66px;}
        input:focus{border:2px solid rgb(90,152,210);}
        .item label{position: absolute;left:0;top:5px;}
        input[type=submit]{height:30px;line-height:20px;position:absolute;left:0;background-color: rgb(90,152,210);color:#fff;width:60px;}
        .error-msg{
            color: red;
            font-size: 12px;
            position: absolute;
            bottom: -8px;
            left: 65px;
            width: 329px;
        }
    </style>
</head>
<body>
    <div class="container">
        <form action="#" id="form">
            <div class="item">
                <label for="username">用户名</label>
                <input type="text" id="username" required pattern="^1[0-9]{10}$">
            </div>
            <div class="item">
                <label for="password">邮箱</label>
                <input type="email" id="email" required>
            </div>
            <input type="submit" value="提交" id="submit">
        </form>
    </div>
    <script>
        function myui(form){
            //阻止默认气泡
            form.addEventListener("invalid",function(e){
                e.preventDefault();
            },true)
            //注意要设置为true
            //当Event对象的cancelable为false时,表示没有默认行为,这时即使有默认行为,调用 preventDefault也是不会起作用的

            //验证不通过,则阻止表单提交
            form.addEventListener("submit",function(e){
                if(!this.checkValidity()){
                    e.preventDefault();
                }
                
            },true)

            //点击提交触发的事件
            submit.addEventListener("click",function(e){
                var invalids=form.querySelectorAll(":invalid"),
                    errMsgs=form.querySelectorAll(".error-msg"),
                    parent;

                //循环,清除掉上一次添加的所有错误信息
                for(var i=0;i<errMsgs.length;i++){
                    errMsgs[i].parentNode.removeChild(errMsgs[i]);
                }

                //循环,添加新的错误信息
                for(var i=0;i<invalids.length;i++){
                    parent=invalids[i].parentNode;
                    /*
                    element.insertAdjacentHTML(position, text);
                    beforebegin: 元素自身的前面。
                    afterbegin: 插入元素内部的第一个子节点之前。
                    beforeend: 插入元素内部的最后一个子节点之后。
                    afterend: 元素自身的后面。
                    text是要被解析为HTML或XML,并插入到DOM树中的字符串

                     */
                    parent.insertAdjacentHTML("beforeend","<div class='error-msg'>"+invalids[i].validationMessage+"</div>");
                }

                //如果存在错误信息,则给第一个错误信息一个focus
                if(invalids.length>0){
                    invalids[0].focus();
                }
            })
        }
        myui(form);
    </script>
</body>
</html>

 总结

到此这篇关于html5默认气泡修改的代码详解的文章就介绍到这了,更多相关html5默认气泡修改内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3轻松实现清新 Loading 效果的简单实例
Jun 06 HTML / CSS
让IE可以变相支持CSS3选择器
Jan 21 HTML / CSS
用纯css3和html制作泡沫对话框实现代码
Mar 21 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
Mar 16 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
Apr 07 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
HTML5的革新 结构之美
Jun 20 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
HTML5之消息通知的使用(Web Notification)
Oct 30 HTML / CSS
使用Html5 Stream开发实时监控系统
Jun 02 HTML / CSS
HTML5播放实现rtmp流直播
Jun 16 HTML / CSS
CSS文本阴影 text-shadow 悬停效果详解
May 25 HTML / CSS
canvas如何实现多张图片编辑的图片编辑器
Mar 10 #HTML / CSS
HTML5表单验证特性(知识点小结)
Mar 10 #HTML / CSS
html5 datalist 选中option选项后的触发事件
Mar 05 #HTML / CSS
关于解决iframe标签嵌套问题的解决方法
Mar 04 #HTML / CSS
Html5 video标签视频的最佳实践
Feb 26 #HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
Feb 25 #HTML / CSS
HTML实现代码雨源码及效果示例
Feb 25 #HTML / CSS
You might like
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
python中int与str互转方法
2018/07/02 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
个人简历的自荐信
2013/10/23 职场文书
工程管理英文求职信
2014/03/18 职场文书
六一节目主持词
2014/04/01 职场文书
政府四风问题整改措施
2014/10/04 职场文书
医院病假条范文
2015/08/17 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
请假条应该怎么写?
2019/06/24 职场文书