Bootstrap警告框

前面的话

  在网站中,网页总是需要和用户一起做沟通与交流。特别是当用户操作上下文为用户提供一些有效的警示框,比如说告诉用户操作成功、操作错误、提示或者警告等。在Bootstrap框架有一个独立的组件,实现类似的效果,这个组件被称为警示框。本文将详细介绍Bootstrap警告框

 

默认用法

  警告框组件通过提供一些灵活的预定义消息,为常见的用户动作提供反馈消息

  将任意文本和一个可选的关闭按钮组合在一起就能组成一个警告框,

.alert
 类是必须要设置的,另外还提供了有特殊意义的4个类(例如,
.alert-success
),代表不同的警告信息

.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}
.alert h4 {
margin-top: 0;
color: inherit;
}
.alert .alert-link {
font-weight: bold;
}
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p   p {
margin-top: 5px;
}

  警告框没有默认类,只有基类和修饰类。默认的灰色警告框并没有多少意义。所以您使用一种有意义的警告类。目前提供了成功、消息、警告和危险

  1、成功警示框:告诉用户操作成功,在“alert”样式基础上追加“alert-success”样式,具体呈现的是背景、边框和文本都是绿色;

  2、信息警示框:给用户提供提示信息,在“alert”样式基础上追加“alert-info”样式,具体呈现的是背景、边框和文本都是浅蓝色;

  3、警告警示框:提示用户小心操作(提供警告信息),在“alert”样式基础上追加“alert-warning”样式,具体呈现的是背景、边框、文本都是浅黄色;

  4、错误警示框:提示用户操作错误,在“alert”样式基础上追加“alert-danger”样式,具体呈现的是背景、边框和文本都是浅红色

<div class="alert" role="alert">基类</div>
<div class="alert alert-success" role="alert">成功</div>
<div class="alert alert-info" role="alert">信息提示</div>
<div class="alert alert-warning" role="alert">警告</div>
<div class="alert alert-danger" role="alert">错误</div> 

style="width: 100%; height: 390px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a1.html" frameborder="0" width="320" height="240">

 

可关闭

  在平时浏览网页的时候,会发现一些警示框带有关闭按钮,用户一点击关闭按钮就能自动关闭显示的警示框(也就是让警示框隐藏不显示)。在Bootstrap框架中的警示框也具有这样的功能

  只需要在默认的警示框里面添加一个关闭按钮。然后进行三个步骤:

  1、需要在基本警示框“alert”的基础上添加“alert-dismissable”样式。

  2、在button标签中加入class="close"类,实现警示框关闭按钮的样式。

  3、要确保关闭按钮元素上设置了自定义属性:data-dismiss="alert"(因为可关闭警示框需要借助于Javascript来检测该属性,从而控制警示框的关闭)

.alert-dismissable {
padding-right: 35px;
}
.alert-dismissable .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
<div class="alert alert-success alert-dismissable" role="alert">
<button class="close" type="button" data-dismiss="alert">×</button>
恭喜您操作成功!
</div>

style="width: 100%; height: 80px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a2.html" frameborder="0" width="320" height="240">

【外部关闭】

  如果把关闭按钮放置在警告框的外部,则需要设置data-target为'# 警告框的id'

  这个用法的弊端是按钮本身无法关闭,因为它已经不在警告框内了

<button type="button" class="btn" data-dismiss="alert" data-target="#test">关闭</button>
<div id="test" class="alert alert-success alert-dismissable" role="alert">操作成功</div>

style="width: 100%; height: 110px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a3.html" frameborder="0" width="320" height="240">

  如果想关闭警告框的同时,把按钮也从DOM中删除,如果按钮的class是'btn',则设置data-target=".btn'则可以把按钮也删除

<button type="button" class="btn" data-dismiss="alert" data-target="#test,.btn">关闭</button>
<div id="test" class="alert alert-success alert-dismissable" role="alert">操作成功</div>

style="width: 100%; height: 110px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a4.html" frameborder="0" width="320" height="240">

 

链接

  有时可能想在警示框中加入链接地址,用来告诉用户跳到某一个地方或新的页面。而这个时候又想让用户能明显的看出来这是链接地址。在Bootstrap框架中对警示框里的链接样式做了一个高亮显示处理。为不同类型的警示框内的链接进行了加粗处理,并且颜色相应加深

  Bootstrap框架是通过给警示框加的链接添加一个名为“alert-link”的类名,通过“alert-link”样式给链接提供高亮显示 

.alert .alert-link {
font-weight: bold;
}
.alert-success .alert-link {
color: #2b542c;
}
.alert-info .alert-link {
color: #245269;
}
.alert-warning .alert-link {
color: #66512c;
}
.alert-danger .alert-link {
color: #843534;
}
<div class="alert alert-success" role="alert">成功 <a href="#" class="alert-link">详情查看</a></div>
<div class="alert alert-info" role="alert">信息提示 <a href="#" class="alert-link">详情查看</a></div>
<div class="alert alert-warning" role="alert">警告 <a href="#" class="alert-link">详情查看</a></div>
<div class="alert alert-danger" role="alert">错误 <a href="#" class="alert-link">详情查看</a></div> 

style="width: 100%; height: 300px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a5.html" frameborder="0" width="320" height="240">

 

JS触发

【方法】

$().alert('close')

  关闭警告框并从 DOM 中将其删除

<div class="alert alert-success alert-dismissable" role="alert">
<button class="close" type="button">×</button>
恭喜您操作成功!
</div>
<script>
$('.close').click(function(){
$('.alert').alert('close');
}); 
</script>

style="width: 100%; height: 72px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a6.html" frameborder="0" width="320" height="240">

【事件】

close.bs.alert    当 close 方法被调用后立即触发此事件。
closed.bs.alert    当警告框被关闭后(也即 CSS 过渡效果完毕之后)立即触发此事件。
<div class="alert alert-success alert-dismissable fade in" data-dismiss="alert" role="alert">
<button class="close" type="button">×</button>
恭喜您操作成功!
</div>
<div id="intro">警告框处于打开状态</div>
<script>
$('.alert').on('closed.bs.alert', function () {
$('#intro').html('警告框被关闭了')
})
</script>

style="width: 100%; height: 112px;" src="https://demo.xiaohuochai.site/bootstrap/alert/a7.html" frameborder="0" width="320" height="240">

   

JS源码

【1】IIFE

  使用立即调用函数,防止插件内代码外泄,从而形成一个闭环,并且只能从jQuery的fn里进行扩展

 function ($) {
//使用es5严格模式
'use strict';
//
}(window.jQuery);

【2】初始设置

  //定义选择器,所有符合该自定义属性的元素都可以触发下面的事件
var dismiss = '[data-dismiss="alert"]'
var Alert   = function (el) {
//传入元素,如果元素内部有dismiss设置的自定义属性,则click事件会触发原型上的close方法
$(el).on('click', dismiss, this.close)
}
//版本号为3.3.7
Alert.VERSION = '3.3.7'
//动画持续时间为150ms
Alert.TRANSITION_DURATION = 150

【3】插件核心代码

  Alert.prototype.close = function (e) {
//被单击元素的jQuery对象,临时赋值,防止this污染
var $this    = $(this)
//获取自定义属性data-target的值
var selector = $this.attr('data-target')
//获取没有data-target属性
if (!selector) {
//则获取href属性的值
selector = $this.attr('href')
//IE7浏览器特殊处理
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') 
}
//获取jQuery对象
var $parent = $(selector === '#' ? [] : selector)
//阻止默认行为
if (e) e.preventDefault()
//如果该元素不存在
if (!$parent.length) {
//存在最近的样式为'.alert'的祖先元素
$parent = $this.closest('.alert')
}
//删除元素前,执行close事件,可以通过自定义绑定来执行定义代码
$parent.trigger(e = $.Event('close.bs.alert'))
//如果回调函数中已经包含阻止默认行为的代码,则直接返回
if (e.isDefaultPrevented()) return
//删除元素上的in样式
$parent.removeClass('in')
function removeElement() {
//触发closed事件后,删除该元素
$parent.detach().trigger('closed.bs.alert').remove()
}
//如果支持动画,并且设置为fade样式
$.support.transition && $parent.hasClass('fade') ?
//在执行动画过渡效果后,再删除元素
      $parent
.one('bsTransitionEnd', removeElement)
.emulateTransitionEnd(Alert.TRANSITION_DURATION) :
//否则直接删除元素
      removeElement()
}

【4】jQuery插件定义

  function Plugin(option) {
//根据选择器,遍历所有符合规则的元素
return this.each(function () {
var $this = $(this)
//获取自定义属性bs.alert的值
var data  = $this.data('bs.alert')
//如果值不存在,则将Alert实例设置为bs.alert值
if (!data) $this.data('bs.alert', (data = new Alert(this)))
//如果option传递了string,则表示要执行某个方法 
if (typeof option == 'string') data[option].call($this)
})
}
var old = $.fn.alert
//保留其他库的$.fn.alert代码(如果定义的话),以便在noConflict之后可以继续使用该老代码
$.fn.alert             = Plugin
//重设插件构造器,可以通过该属性获取插件的真实类函数
$.fn.alert.Constructor = Alert

【5】防冲突处理

  $.fn.alert.noConflict = function () {
//恢复以前的旧代码
$.fn.alert = old
//将$.fn.alert.noConflict()设置为Bootstrap的Tab插件
return this
}

【6】绑定触发事件

  //为声明式的HTML绑定单击事件
//在整个document对象上,检测是否有自定义属性data-dismiss="alert"
//如果有,则设置单击的时候,关闭指定的警告框元素
$(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python doctest测试

title: Python doctest测试 tags: Python --- doctest测试 python 提供了REPL&#xff08;read-eval-print loop&#xff0c;读取、求值、输出的循环&#xff09; 官方地址&#xff1a;https://docs.python.org/3/library/doctest.html """ This is the "e…

异步CDI事件

几天前&#xff0c;在我们的常规代码审查中&#xff0c;我的一位同事提出了一个问题&#xff0c;即如果可能&#xff0c;一次同时调用CDI观察者&#xff08;这样的方法带有参数Observes的方法&#xff09;会发生什么&#xff1f;用于不同的事件实例。 换句话说&#xff0c;在产…

oracle改了包怎么保存,Oracle存储过程、包、方法使用总结(推荐)

/***author&#xff1a;zhengwei*date:2017-04-28*desc:存储过程用法总结*/CREATE OR REPLACE PROCEDURE MYPROCEDURE(P_ID IN VARCHAR,P_STATUS OUT VARCHAR) --P_ID为输入参数 ,P_STATUS为输出参数AS---变量声明T_STATUS VARCHAR2(20);T_ID NUMBER;V_POSTYPE VARCHAR2(20);V_…

【2017级面向对象程序设计】第2次成绩排行

作业地址 https://edu.cnblogs.com/campus/fzu/OOP/homework/1864 评分标准 1&#xff09; C 流程图 or 文字描述程序结构 5分C 类图 or 文字描述程序结构 5分2&#xff09; 代码 共 10 分构造函数 &#xff1a;2 分析构函数 &#xff1a;2 分成员函数 显示当前所处楼层&#x…

css定位position

闲言碎语不多说&#xff0c;直接开写&#xff01; 关于定位 我们可以使用css的position属性来设置元素定位类型&#xff0c;position的设置项如下&#xff1a; a、relative生成相对定位元素&#xff0c;元素所占据的文档流的位置不变&#xff08;即元素不会脱离文档流&#x…

Spring Security登录

1.简介 本文将重点介绍使用Spring Security登录 。 我们将在前面的简单Spring MVC示例的基础上构建&#xff0c;因为这是设置Web应用程序和登录机制的必要部分。 2. Maven依赖 要将Maven依赖项添加到项目中&#xff0c;请参阅Spring Security with Maven文章 。 标准的spring-…

php运城,运城php培训

作用域&#xff1a;全局的request恳求   描绘&#xff1a;经过在Global中完成Application_Error办法&#xff0c;来到达侦听未经处置的异常   详细代码如下&#xff1a;sudo dtrace -qFn pid$target:Finding?Ray:Finding?Ray:r{ printf("%s\n", probefunc); } …

sql语句使用、说明及技巧

一、基础 1、说明&#xff1a;创建数据库CREATE DATABASE database-name 2、说明&#xff1a;删除数据库drop database dbname3、说明&#xff1a;备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat--- …

利用爬虫模拟网页微信wechat

1.登录页面&#xff0c;显示二维码 当我们打开网页微信时&#xff0c;会看到一个用于扫码登录的二维码&#xff0c;所以我们要模拟该页面给我们的页面也弄一个二维码 通过查看网页代码我们发现&#xff0c;这个二维码的标签为 这个src属性的最后一段每次访问都是不同的&#xf…

Bootstrap分页

前面的话 分页导航几乎在每个网站都可见&#xff0c;好的分页能给用户带来好的用户体验。本文将详细介绍Bootstrap分页 概述 在Bootstrap框架中提供了两种分页导航&#xff1a; ☑ 带页码的分页导航 ☑ 带翻页的分页导航 页码分页 带页码的分页导航&#xff0c;可能是最常见…

php 查询and or,php – SQL查询多个AND和OR不起作用

我有一个包含由双管分隔的值的单元格.我试图用以下内容搜索这个单元格的内容,(其中10是要搜索的数字)&#xff1f;,10&#xff05;,&#xff1f;&#xff05;和10我的查询似乎只返回10.没有其他变化.有人可以告诉我为什么它不起作用&#xff1f;提前谢谢了. (您在下面看到的SQL…

[codevs1213]解的个数 二分 + exgcd

题目← 扩欧&#xff0c;求不定方程解的个数 我们已经知道通解x0 x - (b/gcd(a,b))t&#xff0c;那只要知道有多少个t使x在题目给定的范围中就行了 但还有y 怎么办&#xff1f;求交集&#xff01; 分别二分确定在x取值范围内合法的t的范围和在y取值范围内合法的t的范围 然后交…

爬取饿了么商铺信息

分析&#xff1a; 当我们访问https://www.ele.me/home/时&#xff0c;看看我们得到了什么 1.png我们发现所有的城市名称和他的经纬度&#xff0c;还有一个风流的男子 然后随机输入一些东西看看&#xff0c;进入某个地区看一看 在新的界面里我们看到了这样一条url: https://main…

html中的锚点

一、页面内跳转的锚点设置 页面内的跳转需要两步&#xff1a; 方法一&#xff1a; ①&#xff1a;设置一个锚点链接<a href"#miao">去找喵星人</a>&#xff1b;&#xff08;注意&#xff1a;href属性的属性值最前面要加#&#xff09; ②&#xff1a;在页…

linux基本命令du,Linux常用操作命令汇总

你还在为不知道Linux常用操作命令汇总而不知所措么?下面来是学习啦小编为大家收集的Linux常用操作命令汇总&#xff0c;欢迎大家阅读&#xff1a;Linux常用操作命令汇总1.ls 命令ls以默认方式显示当前目录文件列表服务器教程ls -a显示所有文件包括隐藏文件ls -l显示文件属性&a…

Maven部署到Nexus

1.概述 在上一篇文章中 &#xff0c;我讨论了Maven项目如何在本地安装尚未部署在Maven Central&#xff08;或任何其他大型且公共托管的存储库&#xff09;上的第三方jar。 该解决方案仅适用于小型项目&#xff0c;在这些项目中安装&#xff0c;运行和维护完整的Nexus服务器可能…

后处理效果栈

Unity官方的Github实现&#xff1a;Post Processing Stack Post-processing is the process of applying full-screen filters and effects to a camera’s image buffer before it is displayed to screen. It can drastically improve the visuals of your product with litt…

【Java IO流】浅谈io,bio,nio,aio

本文转载自&#xff1a;http://www.cnblogs.com/doit8791/p/4951591.html1、同步异步、阻塞非阻塞概念 同步和异步是针对应用程序和内核的交互而言的。 阻塞和非阻塞是针对于进程在访问数据的时候&#xff0c;根据IO操作的就绪状态来采取的不同方式&#xff0c;说白了是一种读…

linux 安装tcl命令,TCL/TK Linux下安装 | 勤奋的小青蛙

原创文章&#xff0c;转载请注明&#xff1a; 转载自勤奋的小青蛙本文链接地址: TCL/TK Linux下安装在Linux下安装TCL/TK&#xff0c;可以有编译源代码的方式安装&#xff0c;也可以有直接通过二进制压缩包进行解压缩安装&#xff0c;本文采用比较快捷的方式&#xff0c;用二进…

安全性中的Spring AOP –通过方面控制UI组件的创建

以下文章将显示在我参与的一个项目中&#xff0c;我们如何使用Spring的AOP来介绍一些与安全性相关的功能。 这样的概念是为了使用户能够看到一些UI组件&#xff0c;他需要具有一定级别的安全特权。 如果不满足该要求&#xff0c;则不会显示UIComponent。 让我们看一下项目结构&…