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 相关文章推荐
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
Aug 15 HTML / CSS
css3动画 小球滚动 js控制动画暂停
Nov 29 HTML / CSS
CSS3 transition 实现通知消息轮播条
Oct 14 HTML / CSS
CSS3实现苹果手机解锁的字体闪亮效果示例
Jan 05 HTML / CSS
Bootstrap 学习分享
Nov 12 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(一)
Jan 21 HTML / CSS
html5摇一摇代码优化包括DeviceMotionEvent等等
Sep 01 HTML / CSS
html5将图片转换成base64的实例代码
Sep 21 HTML / CSS
Html5页面二次分享的实现
Jul 30 HTML / CSS
HTML5实现音频和视频嵌入的方法
Aug 22 HTML / CSS
Css预编语言及区别详解
Apr 25 HTML / CSS
CSS中使用grid布局实现一套模板多种布局
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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
javascript消除window.close()的提示窗口
2015/05/20 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python实现的rsa加密算法详解
2018/01/24 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Python中反射和描述器总结
2018/09/23 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
营销总监岗位职责范本
2014/02/26 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
病危通知单
2015/04/17 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
python中的sys模块和os模块
2022/03/20 Python