Bootstrap使用心得

久闻Twitter的Bootstrap框架强大且易用,近日为改版小丸工具箱的官网特地花了一周实践。

这篇文章总结我在使用Bootstarp中的一些关键点。

1.布局

Bootstrap框架的布局采用了栅格系统,默认情况下把页面分为12列。

在使用时只要在div的class属性中赋予适合的类即可。举例如下:

<div class="row">
    <div class="col-sm-4 col-xs-12">
        <h2 class="page-header">简介</h2>
    </div>
<div>

在最外层套一个的<div class="row">作为一行。在里面添加<div class="col-sm-4 col-xs-12" >
col-sm-4 中的sm代表small,在宽度为750px以上时占用4列;
col-xs-12 中的xs在宽度按小于750px时占用12列(即满屏显示)

一般情况下,只需填写两个即可满足响应式网页的需求。
另外可以使用class="col-sm-4 hidden-xs" ,即在小于750px时隐藏元素。

参考资料:http://v3.bootcss.com/css/#grid

2. 导航条
Bootstrap框架预置了一个方便易用的导航栏,没有太多值得记录的,直接看参考资料即可掌握。

    <header class="navbar navbar-inverse navbar-fixed-top" role="banner">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse"
         data-target="#example-navbar-collapse">
                    <span class="sr-only">切换导航</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand"  href="javascript:scroll(0,0)">Maruko Toolbox</a>
            </div>
        <nav class="collapse navbar-collapse" id="example-navbar-collapse"  role="navigation">
            <ul class="nav navbar-nav">
                <li class="active">
                    <a href="#">HOME</a>
                </li>
                                <li>
                    <a href="history.html">HISTORY</a>
                </li>
                <li>
                    <a href="developer.html">DEVELOPER</a>
                </li>
                <li class="dropdown">
                    <a href="tutorial.html" class="dropdown-toggle" data-toggle="dropdown">
                        TUTORIAL <b class="caret"></b>
                    </a>
                    <ul class="dropdown-menu">
                        <li>
                            <a target="_blank" href="http://www.bilibili.com/video/av1242020">VIDEO</a>
                        </li>
                        <li class="divider"></li>
                        <li>
                            <a target="_blank" href="http://cnbeining.com/?p=289">FAQ</a>
                        </li>
                    </ul>
                </li>
            </ul>
        </nav>
    </div>
</header>

参考资料:http://www.w3cschool.cc/bootstrap/bootstrap-navbar.html

3. Bootstrap 滚动监听(Scrollspy)插件以及Bootstrap 附加导航(Affix)插件

结合两者可以实现滚动页面时导航栏变换焦点

范例页面 http://v3.bootcss.com/css/

            <div id="myScrollspy" class="col-sm-4 hidden-xs">
                <ul class="nav nav-pills nav-stacked"  data-spy="affix" data-offset-top="140" role="tablist">                <li class="active"><a href="#r20140601">2014-06-01</a></li>
                <li><a href="#r20140321">2014-03-21</a></li>
                <li><a href="#r20140129">2014-01-29</a></li>
                <li><a href="#r20131125">2013-11-25</a></li>
                <li><a href="#r20130727">2013-07-27</a></li>
                <li><a href="#r20130214">2013-02-14</a></li>
                <li><a href="#r20121017">2012-10-17</a></li>
                <li><a href="#r20120615">2012-06-15</a></li>
                <li><a href="#r20120327">2012-03-27</a></li>
                <li><a href="#r20120129">2012-01-29</a></li>
                <li><a href="#r20110826">2011-08-26</a></li>
                <li><a href="#r20110725">2011-07-25</a></li>
                </ul>
            </div>

1) 通过 data 属性:向您想要监听的元素(通常是 body)添加 data-spy="scroll"。

然后添加带有 Bootstrap .nav 组件的父元素的 ID 或 class 的属性 data-target。

为了它能正常工作,必须确保页面主体中有匹配您所要监听链接的 ID 的元素存在。

<body data-spy="scroll" data-target="#myScrollspy">

2)设置当滚动条下滑140个像素以后切换ul.nav-pills.affix 状态。

<ul class="nav nav-pills nav-stacked"  data-spy="affix" data-offset-top="140" role="tablist">

3)设置当滚动条下滑140个像素以后在页面固定(fixed) 的位置。

ul.nav-pills.affix{
top: 43px; /* Set the top position of pinned element */
}

参考资料:
http://www.w3cschool.cc/bootstrap/bootstrap-scrollspy-plugin.html
http://www.w3cschool.cc/bootstrap/bootstrap-affix-plugin.html

4. 动画
本站用了知名的animate.css来实现动画。

<link href="css/animate.css" rel="stylesheet">

只需要在需要动画的元素的class属性加入"animated zoomIn"即可实现在页面载入时产生动画。
如需要精确控制时间则在元素的css中加入:

animation-delay:2s;
animation-duration:2s;

如果需要在事件中添加动画可以在javascript中使用addClass。
jQuery代码:

$(function(){
  $("#logo").click(function()
  {
    $("#logo").removeClass("animated zoomIn");
    $("#logo").addClass("animated flip");
setTimeout(function(){
    $("#logo").removeClass("animated flip");
},2000);
  });
});

参考资料:
CSS动画简介
http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html

5. 响应式
有时需要实现个别CSS属性的响应式,这时要用 @media 来实现。

@media screen and (max-width: 768px) {
.titleContainer
{
width: 320px;
}
}

screen代表电脑屏幕,and是逻辑运算符, max-width 768px代表在768px以下才实现其中的CSS。
这段代码必须放在CSS的最后以免被覆盖。

参考资料
http://www.w3cplus.com/content/css3-media-queries
http://blog.mineducks.com/archives/22

6. web font
Bootstrap框架自带了一套web font字体glyphicons,可以在网页中直接使用。

<span class="glyphicon glyphicon-user"></span>

本站使用了Font Awesome来显示QQ和新浪微博的Logo。

<link href="css/font-awesome.min.css" rel="stylesheet">

QQ

<i class="fa fa-qq"></i>

新浪微博

<i class="fa fa-weibo"></i>

参考资料:

http://v3.bootcss.com/components/#glyphicons
http://www.w3cschool.cc/bootstrap/bootstrap-glyphicons.html

7. 移动设备浏览时禁止缩放

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" >

8. 首行缩进

p{
text-indent: 2em; /*em是相对单位,2em即现在一个字大小的两倍*/
} 

9. HTML5标签
大家可能都知道HTML5中出现了很多以前没有的标签,例如,header,nav,和footer,在这之前我们如果开发相关的页面布局的时候,往往都是使用CSS来定义相关的头部,导航及其页底部分。
参考资料:http://www.cnblogs.com/TomXu/archive/2011/12/08/2269043.html

时间: 2024-10-20 14:02:19

Bootstrap使用心得的相关文章

mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理

最近和朋友完成了一个大单子架构是mvc5+ef6+Bootstrap,用的是vs2015,数据库是sql server2014.朋友做的架构,项目完成后觉得很多值得我学习,在这里总结下一些心得. 创建项目一开始删掉App_Start目录下的IdentityConfig.cs和Startup.Auth.cs文件;清空Modle文件夹,Controller文件夹和相应的View; 删除目录下的ApplicationInsights.config文件和Startup.cs文件 修改web.config

bootstrap学习心得总结

bootstrap框架 1.以栅栏式布局,分12列,16列,24列和32列,常用12列. 2.整个页面必须在container容器内部 3.移动端以 <meta name="viewport" content="width=device-width,initial-scale=1.0">   来使视图一比一缩放.(响应式布局) 4.载入bootstrap时需要经过七个步骤,才能支持CSS,js,IE,IE8以下等 a.引入bootstrap框架 <

bootstrap使用心得及css模块化的初步尝试

第一次用bootstrap到实战项目,是一个企业门户站,可以说是强行拿bootstrap上来练手,感觉并不适合. 我是用的less编译bootstrap文件,直接改less变量.然后把不可重用的部分,比如页面头部,单独用一个app.css文件来覆盖. 发现bootstrap的字体实在是不行,本身就是给外国佬设计的,前几天看到一个neat.css据说是把normalize根据国情改进过的,拿来用了感觉还不错. 目前的想法是把网站会复用的部分调用bootstrap来实现,或者样式有差别的直接改les

一些好的网址

关于反爬虫,看这一篇就够了 mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理

新工作上班九天心得(附 bootstrap分页写法)

新工作上班第九天了.写写自己的心得. 新工作第三天,分配了一个项目,一个开发组长,三个开发人员,一个月完成.开发人员:1. 苏:工作经验比我还多(10年),2. 曾:工作一年多.3.我. 第四天:讨论开发框架,论坛了苏从网站上自动生成代码的那一套.个人觉得不好用.开发组长周看起来像打酱油的,开发框架自己都没有,还要我们自己拿主意. 第五天:组长周给了一套他自己用过的开发代码,在resin上可以启动,但是只有源代码,没有用Eclipse搭起来的项目.苏和周一致说用任何编辑器写好代码以后,放到res

bootstrap使用时 细节心得

最近国庆7天 还原某丽说 APP PC端网页(作业)时  全程使用bootstrap制作 也遇到了以前很少碰到过的问题 bootstrap 本身修改了某些默认样式  即使在 未给标签class命名某个bootstrap模板时  某些标签也被修改过  这样会容易使某些像我一样的新手误以为自己写的代码哪里出了问题  而浪费很多时间去找一个 没有错误的错误  所以在这里给各位同学做个温馨提示 例如 fieldset 中 lengd标签中的文字 应该是水平居中 位于两侧横线中间 并且垂直居中于横线 但在

Bootstrap table使用心得

序号显示带分页信息的连续编号,在序号列添加以下格式化代码即可. { field: 'number', title: '序号', align:'center', width:45, formatter:function(value,row,index){ var pageSize=$('#logList').bootstrapTable('getOptions').pageSize, pageNum=$('#logList').bootstrapTable('getOptions').pageNu

关于Breeze.js+Angular.js+KendoUI+BootStrap+TypeScript+EF4.5的使用心得记录之一

第一章:数据交互 提醒:博客开篇之作.望指导.不喜随便喷. 什么也不说,先上图. 就kendoui官网有详细的API说明,不做过多累赘,以下图中用到的控件为例: 一.DropDownList,Grid 页面简洁得体,是我个人比较偏爱的.主要来讲讲DropDownList和GridOnLineEdit结合Angular和BreezeJs的应用. 1.Breeze.js ?功能:负责处理前端和后端程序的通讯. 用法:到官网下载Breeze包.在页面引入上图中JS. 添加Breeze.WebApi2.

大规模Elasticsearch集群管理心得

转载:http://elasticsearch.cn/article/110 ElasticSearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据量级一般在千万至数十亿这个级别:其二用于大规模数据的实时OLAP,经典的如ELKStack,数据规模可能达到千亿或更多. 这两种场景的数据索引和应用访问模式上差异较大,在硬件选型和集群优化方面侧重点也会有所不同.一般来说后一种场景属于大数据范畴,数据量级和集群规模更大,在管理方面也更有挑战. 应Me