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中的选择符
Oct 17 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
详解如何在css中引入自定义字体(font-face)
May 17 HTML / CSS
html5服务器推送_动力节点Java学院整理
Jul 12 HTML / CSS
html5绘制时钟动画
Dec 15 HTML / CSS
简单介绍HTML5中的文件导入
May 08 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
Mar 21 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
Jul 13 HTML / CSS
html5 冒号分隔符对齐的实现
Jul 31 HTML / CSS
HTML5 weui使用笔记
Nov 21 HTML / CSS
css实现文章分割线样式的多种方法总结
Apr 21 HTML / CSS
教你做个可爱的css滑动导航条
Jun 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
通过对服务器端特性的配置加强php的安全
2006/10/09 PHP
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
jquery $.each()使用探讨
2013/09/23 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
Python API len函数操作过程解析
2020/03/05 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
幼儿园儿童节主持词
2014/03/21 职场文书
经理聘任证明
2015/03/02 职场文书
创业计划书之校园超市
2019/09/12 职场文书
我收到了德劲DE1107
2022/04/05 无线电