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 相关文章推荐
HTML+CSS3 模仿Windows7 桌面效果
Jun 17 HTML / CSS
css3发光搜索表单分享
Apr 11 HTML / CSS
HTML5仿手机微信聊天界面
Mar 18 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
Apr 24 HTML / CSS
html5 的a标签 Href 拨电话的写法
Nov 04 HTML / CSS
详解HTML5中的picture元素响应式处理图片
Jan 03 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
Apr 09 HTML / CSS
Html5在手机端调用相机的方法实现
May 13 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
May 19 HTML / CSS
Html5通过数据流方式播放视频的实现
Apr 27 HTML / CSS
background-position百分比原理详解
May 08 HTML / CSS
CSS 制作波浪效果的思路
May 18 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
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
2012/08/10 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
用Python解决计数原理问题的方法
2016/08/04 Python
python实现爬山算法的思路详解
2019/04/09 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
python爬虫请求头设置代码
2020/07/28 Python
详解python中的异常捕获
2020/12/15 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
小小的船教学反思
2014/02/21 职场文书
初婚初育证明范本
2014/11/24 职场文书
课外活动总结
2015/02/04 职场文书
高二化学教学反思
2016/02/22 职场文书