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自定义滚动条样式写法
Dec 25 HTML / CSS
CSS3五个技巧给你的网站带来出色的效果
Apr 02 HTML / CSS
分享CSS3中必须要知道的10个顶级命令
Apr 26 HTML / CSS
CSS3新属性transition-property transform box-shadow实例学习
Jun 06 HTML / CSS
使用css3实现超炫的loading加载动画效果
May 07 HTML / CSS
纯css3实现鼠标经过图片显示描述的动画效果
Sep 01 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
Jul 01 HTML / CSS
CSS3 box-sizing属性详解
Nov 15 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
Mar 01 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
Apr 24 HTML / CSS
CSS实现漂亮的时钟动画效果的实例代码
Mar 30 HTML / CSS
浅析CSS在DevTools 中架构演变
Oct 05 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企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
JS重要知识点小结
2011/11/06 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
pandas带有重复索引操作方法
2018/06/08 Python
python matlibplot绘制3D图形
2018/07/02 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
消防战士优秀事迹材料
2014/02/13 职场文书
工程师岗位职责规定
2014/02/26 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
股东协议书
2014/04/14 职场文书
冬季施工防火方案
2014/05/17 职场文书
2014年征兵标语
2014/06/20 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python