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 @font-face属性使用指南
Dec 12 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
May 31 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
Jul 03 HTML / CSS
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
Jun 04 HTML / CSS
html5新增的属性和废除的属性简要概述
Feb 20 HTML / CSS
Web时代变迁及html5与html4的区别
Jan 06 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
Mar 08 HTML / CSS
HTML5新增加标签和功能概述
Sep 05 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
May 07 HTML / CSS
Html分层的box-shadow效果的示例代码
Mar 30 HTML / CSS
css3手动实现pc端横向滚动
Jun 21 HTML / CSS
浅谈为什么我的 z-index 又不生效了
Jul 15 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制作静态网站的模板框架(四)
2006/10/09 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
搭建vue开发环境
2018/07/19 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python读写Redis数据库操作示例
2014/03/18 Python
Python常用随机数与随机字符串方法实例
2015/04/09 Python
详解Django中的form库的使用
2015/07/18 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
django+mysql的使用示例
2018/11/23 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
程序员跳槽必看面试题总结
2013/06/28 面试题
生物化工工艺专业应届生求职信
2013/10/08 职场文书
跟单文员的岗位职责
2013/11/14 职场文书
大学生求职自我评价
2014/01/16 职场文书
标准毕业生自荐信
2014/06/24 职场文书
领导班子四风表现材料
2014/08/23 职场文书
休学证明范本
2015/06/19 职场文书
高三物理教学反思
2016/02/20 职场文书
Python基础之进程详解
2021/05/21 Python