分享

bootstrap charisma 入门学习笔记

 aaie_ 2016-11-04

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。 它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。而Charisma是一套全功能的,免费,会员质量的响应式HTML5管理员界面模板,基于"Bootstrap",拥有了9套不同的主题颜色内容,可以满足你的不同需要!Bootstrap主题风格可在http:///免费下载,同时它也是charisma主题来源。上面有部分主题charisma未收录

注:charisma在开发中最大的作用还是起到参考作用,里面有很多bootstrap与jquery例子,所以我这里并没引入js/charisma.js,有需要者自行添加引用代码

本篇主要说说charisma的简单应用。首先,官网。我对官网的东西做了一定的精简。在这里下载。有些东西不属于charisma的,为了方便,我将其放在一个目录下。其次是我精简的里面除了皮肤css外,其他所有css和js都需要引用。另外我对皮肤css做了一定修改,具体修改为,在每个css最后加了几个类,比如设置背景色、边框等。

注:这框架不兼容IE6(官方不打算支持的),在IE8、9下显示有少量问题,IE-Edge与chrome、ff等可以达到最佳显示效果。视情况使用。

另外简单说说响应式编程与非响应式编程的区别。响应式意思就是根据屏幕的宽度来动态调整元素的位置,一般用于兼容多种屏幕与手机浏览器。非响应式就是各种屏幕看到的效果一样(小屏幕容易导致文字溢出等问题)。使用响应式编程,使用响应式编程,使用响应式编程,重要的事情说三遍。在宽屏浏览器中响应式编程完全不会影响显示效果,在窄屏浏览器中也可以达到最佳显示效果。并且两者难度相当。所以,你懂得。

进入正题。首先我给出一个响应式charisma框架代码,页面可以直接在框架代码基础上开发。

  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">  
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0" />  
  7.     <link id="bs_css" rel="stylesheet" href="charisma/css/bootstrap-slate.min.css" />  
  8.     <link rel="stylesheet" href="charisma/css/charisma-app.css" />  
  9.     <link rel="stylesheet" href="charisma/css/animate.min.css" />  
  10.     <title>响应式Charisma框架</title>  
  11.     <style type="text/css">  
  12.         a { text-decoration: none !important; }  
  13.         @-webkit-viewport { width: device-width; }  
  14.         @-moz-viewport { width: device-width; }  
  15.         @-ms-viewport { width: device-width; }  
  16.         @-o-viewport { width: device-width; }  
  17.         @viewport { width: device-width; }  
  18.     </style>  
  19. </head>  
  20. <body>  
  21.     <form></form>  
  22.     <!--[if lt IE 9]>  
  23.         <script type="text/javascript" src="charisma/js/html5shiv.js"></script>  
  24.         <script type="text/javascript" src="charisma/js/respond.min.js"></script>  
  25.     <![endif]-->  
  26.     <script type="text/javascript" src="charisma/js/jquery.js"></script>  
  27.     <script type="text/javascript" src="charisma/js/bootstrap.min.js"></script>  
  28. </body>  
  29. </html>  

简单解释下。第一行。由于Bootstrap基于HTML5,所以这行不能变。

head标签内部:除了关键的声明、自定义风格外,还有必要的css文件。其中id为bs_css的这个为皮肤,目录下有8个类似名称的css文件。直接jquery改href属性即可实现动态换肤。自定义风格第一个为去掉a标签的下划线,其他的为响应式编程必须用的,估计是设置显示宽度。

由于IE8不兼容HTML5标签,所以需要在低版本IE中引入这两个js文件。最后两个js文件必须引用。

框架说完了,说说使用。使用上直接参照官网的例子,Chrome下审查元素,想实现啥就直接复制那一堆代码,就ok了。

例子看完之后,我说说我对bootstrap皮肤的改动:

class="bg-normal"    这个表示设置背景色(用于层叠元素时非常有用)

class="bg-border"    这个用于设置边框(当源框架无法实现需求时)

class="text"    这个用来设置前景色(除了文字外还可以用来设置其他的)

class="frame"    chass="framechild"    这两个用来设计自定义表格(比如LIST表格,可以用这个实现)

class="border-xxx"    这个用来设置显示哪个边框(有时候只想显示一个边框,可以试试这个)

上面几个css支持全部8种皮肤风格(网上说的9种,不知道最后一种是啥),可以直接使用。

另外 charisma的input输入框与select选择框不太给力。设置黑色风格后还是白色背景。这时可以这样:

  1. <input type="text" class="text bg-normal bg-border form-control" />  

【前三个类为我加的自定义】。然后,颜色风格就与整体统一了。整体风格为slate的效果图:


下面列出几个常见布局的案例:

首先是最常用的弹出式窗口,配合 jquery.simplemodal.js 使用,当然也可以像官网上面的那种布局。示例代码如下:

  1. <div id="test_dlg" class="box bg-normal" style="display: none; position: relative; width: 500px;">  
  2.     <div class="box-inner">  
  3.         <div class="box-header well">  
  4.             <h2><i class="glyphicon glyphicon-info-sign"></i><span> 测试弹出框</span></h2>  
  5.             <div class="box-icon">  
  6.                 <a href="javascript:void(0)" class="btn btn-round btn-default" onclick="$.modal.close();" title="关闭">  
  7.                     <i class="glyphicon glyphicon-remove"></i>  
  8.                 </a>  
  9.             </div>  
  10.         </div>  
  11.         <div class="box-content" style="height: 200px;">  
  12.         </div>  
  13.     </div>  
  14. </div>  

调用代码: $('#test_dlg').modal();

效果如下:


内部显示些啥可自定义编辑,根据源码差不多就能看出来这个是如何实现的。

除了使用simplemodal外,bootstrap还提供一种弹窗模式,用于类似alert或confirm的消息弹窗,不过经过测试与simplemodal不兼容。效果如下:


具体实现如下:

  1. <div id="test_dlg2" class="modal fade" aria-hidden="true">  
  2.     <div class="modal-dialog" style="width: 300px;">  
  3.         <div class="modal-content">  
  4.             <div class="modal-header">  
  5.                 <h4>时间选择</h4>  
  6.             </div>  
  7.             <div class="modal-body">  
  8.                 <span>aaaaaaaaaaaaaaa</span><br />  
  9.                 <span>aaaaaaaaaaaaaaa</span><br />  
  10.                 <span>aaaaaaaaaaaaaaa</span><br />  
  11.                 <span>aaaaaaaaaaaaaaa</span><br />  
  12.                 <span>aaaaaaaaaaaaaaa</span>  
  13.             </div>  
  14.             <div class="modal-footer">  
  15.                 <button type="button" class="btn btn-default" onclick="$('#test_dlg2').modal('hide')">确定</button>  
  16.                 <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>  
  17.             </div>  
  18.         </div>  
  19.     </div>  
  20. </div>  

然后,需要一个按钮里面加入data-toggle与data-target,示例:

  1. <button type="button" class="btn btn-default" data-toggle="modal" data-target="#test_dlg2">弹出对话框</button>  

即可实现弹出对话框。在对话框中的按钮加上data-dismiss="modal"表示关闭对话框,如果需要处理后再决定是否关闭对话框,那么需要如下调用方式:

  1. $('#test_dlg2').modal('hide');  

这个与simplemodal的modal函数重复,导致bootstrap或simplemodal的modal函数总有一个用不上。看需要再决定如何使用


然后,说一个右下角消息提示的实现。

第一步:引入头文件、js文件

  1. <link rel="stylesheet" href="charisma/css/noty_theme_default.css" />  
  2. <script type="text/javascript" src="charisma/js/jquery.noty.js"></script>  

第二步:body内加入一行代码,用于确定显示方位

  1. <ul class="noty noty_cont noty_layout_bottomRight"></ul>  

第三步:由于这个定位有点问题,不知道是不是我的错……于是加入定位代码:

  1. /*noty提示相关*/  
  2. .noty { positionfixed; right: 10px; bottom: 10pxwidth400pxlist-stylenoneoverflowhidden; }  
  3. .noty > li, .noty .noty_close { margin-top5px; }  

第四步:这个提示的调用相对来说还是比较麻烦,这儿封装一个

[javascript] view plain copy
在CODE上查看代码片派生到我的代码片
  1. var _notyContent = {  
  2.     'text''',  
  3.     'type''',  
  4.     'timeout': 10000,  
  5.     'layout''bottomRight',  
  6.     'animateOpen': { "opacity""show" },  
  7.     'closeButton''true'  
  8. };  
  9. //显示提示消息  
  10. //通常只需要前面2个参数就足够  
  11. //type参数:success information warning error  
  12. function notyAlert(title, desc, type, timeout, icon) {  
  13.     title = title || '';  
  14.     desc = desc || '';  
  15.     type = type || 'warning';  
  16.     var text = '<strong><i class="glyphicon ';  
  17.     if (icon != undefined) {  
  18.         text += icon;  
  19.     } else if (type == 'success') {  
  20.         text += 'glyphicon-ok-sign';  
  21.     } else if (type == 'information') {  
  22.         text += 'glyphicon-info-sign';  
  23.     } else if (type == 'warning') {  
  24.         text += 'glyphicon-exclamation-sign';  
  25.     } else if (type == 'error') {  
  26.         text += 'glyphicon-remove-sign';  
  27.     }  
  28.     //获取提示HTML  
  29.     _notyContent.text = text + '"></i> ' + title + '</strong><br /><p>' + desc + '</p>';  
  30.     //获取提示类型  
  31.     _notyContent.type = type;  
  32.     //获取响应时间  
  33.     _notyContent.timeout = timeout || 10000;  
  34.     noty(_notyContent);  
  35. }  

第五步:调用之

[javascript] view plain copy
在CODE上查看代码片派生到我的代码片
  1. notyAlert('成功''这是一条提示成功信息''success');  
  2. notyAlert('提示''这是一条消息提示信息''information');  
  3. notyAlert('警告''这是一条警告信息''warning');  
  4. notyAlert('失败''这是一条提示失败信息''error');  

下面分别是效果图:





效果挺高大上的。关于消息显示时间延迟,可修改我封装的那个js代码。noty框架给出的接口是传入html代码,意味着在消息提示框中插入图片也未尝不可。实际上那个关闭的符号就是图片的实现。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约