【前端框架之Bootstrap 02】布局与导航

简介:
前言

距离上次有几天时间了,其实我这段时间也多多少少在看这块,但是效果不好啊!

我就在那里捣鼓捣鼓,搞了半天还是一头雾水,可能是老夫真的老了吧,学习新东西还是不行了!

所以老夫这里就要开始无耻了,我准备一点一点的研究之,有时候抄袭官网大家就多包涵了哦。

我最近也使用了bootstrap来布局,来搞导航。但是效果很不理想,所以我这里先来系统的看看这两块,若是仍然一头雾水的话,那么。。。。我就再学习就完了。

好了,废话结束,我们进入今天的学习吧。

栅格系统

说道栅格系统,我们还是先解释一下他吧,虽然大家都知道:

栅格系统英文为“grid systems”,也有人翻译为“网格系统”,其实是一回事。
不过从定义上说,栅格更为准确些,从维基百科查到栅格的定义为:栅格设计系统(又称网格设计系统、
标准尺寸系统、程序版面设计、瑞士平面设计风格、国际主义平面设计风格),是一种平面设计的方法与风格。运用固定的格子设计版面布局,
其风格工整简洁,在二战后大受欢迎,已成为今日出版物设计的主流风格之一。
以上不是我们关注的重点,所以我们直接看bootstrap的实现吧,我们先来看看他的描述:

对于简单的两列式布局,创建一个 .row 容器,并在容器中加入合适数量的 .span* 列即可。
由于默认是12列的栅格,所有 .span* 列所跨越的栅格数之和最多是12(或者等于其父容器的栅格数)。
最基本的栅格系统

复制代码
 1 <html xmlns="http://www.w3.org/1999/xhtml">
 2 <head>
 3     <title></title>
 4     <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
 5     <link href="css/bootstrap-responsive.css" rel="stylesheet" type="text/css" />
 6     <script src="js/bootstrap.js" type="text/javascript"></script>
 7     <style type="text/css">
 8     .span4 { background-color: #EEEEEE; }
 9     .span8 { background-color: #EEEEEE; }
10     
11     </style>
12 </head>
13 <body>
14     <div class="row">
15         <div class="span4">
16             我在左边<br /><br /><br /></div>
17         <div class="span8">
18             我在右边</div>
19     </div>
20 </body>
21 </html>
复制代码


我学聪明了,我之前就抄了下代码、看了下效果然后就完了,我今天聪明了!!!我绝对不会去看那5000行css代码,于是我们来看页面上的css吧。。。

复制代码
1 .row { margin-left: -20px; }
2 .row:before, .row:after { content: ""; display: table; line-height: 0; }
3 .row:after { clear: both; }
4 .span4 { width: 228px; }
5 .row { margin-left: -20px; }
6 .row:before, .row:after { content: ""; display: table; line-height: 0; }
7 .row:after { clear: both; }
8 [class*="span"] { float: left; margin-left: 20px; min-height: 1px; }
复制代码
这个span是float,按照float不应该用于布局的说法,我其实会小小的抱怨一番的,但是还是先接受之,起分别心不好。

按照他这种做法,每起一行就需要一个row容器,所以我们多搞两列试试。

复制代码
 1 <body>
 2     <div class="row">
 3         <div class="span4">
 4             我在左边<br />
 5             <br />
 6             <br />
 7         </div>
 8         <div class="span8">
 9             我在右边</div>
10     </div>
11     <div class="row">
12         <div class="span8">
13             我在左边<br />
14             <br />
15             <br />
16         </div>
17         <div class="span4">
18             我在右边</div>
19     </div>
20      <div class="row">
21         <div class="span6">
22             我在左边<br />
23             <br />
24             <br />
25         </div>
26         <div class="span6">
27             我在右边</div>
28     </div>
29 </body>
复制代码


我们需要保证每一行里面的“span”相加之和是12即可,而且他支持响应式布局的,其实说响应式布局不合适,我们来看看屏幕变小会怎样:

复制代码
 1 @media (max-width: 767px) {
 2 [class*="span"],
 3   .uneditable-input[class*="span"],
 4   .row-fluid [class*="span"] {
 5     display: block;
 6     float: none;
 7     width: 100%;
 8     margin-left: 0;
 9     -webkit-box-sizing: border-box;
10        -moz-box-sizing: border-box;
11             box-sizing: border-box;
12   }
13 }
复制代码
我们看到在小于一定数值的时候,span的宽度会变为100%,所以我们就不要去惹他了。。



偏移列

bootstrap定义了很多类,他的类搞得很完善了,比如我们要把列向右移动的话就可以使用.offset*。

.offset4 可以将span向右移动4个列的宽度,于是我们来试试:



嵌套列

嵌套的情况总是无处不在,我们来在第一个列里面嵌套一番吧,嵌套也是需要row容器的:

复制代码
 1 <div class="row">
 2     <div class="span2">
 3         我在左边<br />
 4         <br />
 5         <br />
 6     </div>
 7     <div class="span10">
 8     嵌了一个套
 9         <div class="row ">
10             <div class="span4">
11                 我在左边<br />
12                 <br />
13             </div>
14             <div class="span6">
15                 我在右边</div>
16         </div>
17     </div>
18 </div>
复制代码


我这样一嵌套,结果嵌套里面两个又不按套路出牌了。。。这是怎么回事呢???哎,我也不知道,于是来摸索下吧。

他这个span 有个margin-left: 20px 的属性,所以导致换行了,我以为应该会自己处理呢。。。所以这里就用流式布局吧:

复制代码
 1 <div class="row">
 2     <div class="span2">
 3         我在左边<br />
 4         <br />
 5         <br />
 6     </div>
 7     <div class="span10">
 8     嵌了一个套
 9         <div class="row-fluid ">
10             <div class="span4">
11                 我在左边<br />
12                 <br />
13             </div>
14             <div class="span8">
15                 我在右边</div>
16         </div>
17     </div>
18 </div>
复制代码
布局暂时写到这里,我们接下来看看导航。

导航

首先,我们来看看最基本的导航样式:

1 <ul class="nav nav-tabs">
2     <li class="active"><a href="#">首页</a> </li>
3     <li><a href="#">我的博客</a></li>
4     <li><a href="#">联系我们</a></li>
5 </ul>


于是一个导航就出来啦,我们看他看着还不错呢!于是我们看下他的代码,我这里看几个关键点便是:

复制代码
.nav-tabs {
    border-bottom: 1px solid #DDDDDD;
}
.nav-tabs > li {
    margin-bottom: -1px;
}
.nav-tabs > li, .nav-pills > li {
    float: left;
}
.nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus {
    -moz-border-bottom-colors: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    background-color: #FFFFFF;
    border-color: #DDDDDD #DDDDDD transparent;
    border-image: none;
    border-style: solid;
    border-width: 1px;
    color: #555555;
    cursor: default;
}
.nav-tabs > li > a {
    border: 1px solid transparent;
    border-radius: 4px 4px 0 0;
    line-height: 20px;
    padding-bottom: 8px;
    padding-top: 8px;
}
.nav-tabs > li > a, .nav-pills > li > a {
    line-height: 14px;
    margin-right: 2px;
    padding-left: 12px;
    padding-right: 12px;
}
.nav > li > a {
    display: block;
}
a {
    color: #0088CC;
    text-decoration: none;
}
复制代码
这块CSS基本可以完成功能了,但是这种导航不好看,还真不好看呢。所以我们看看其它的样式吧:

<ul class="nav nav-pills">


只是换了个class就改变了我们的导航,真的不错哦,这个导航还是挺好看的。

加一个nav-stacked后又可以水平排列了,这个样式用于手机是很不错的



导航条

导航条是我们真实需要的,一般都会有个颜色很不错的导航条,我们来看看bootstrap的导航呢。

复制代码
 1 <div class="navbar">
 2     <div class="navbar-inner">
 3         <a class="brand" href="#">叶小钗</a>
 4         <ul class="nav">
 5             <li class="active"><a href="#">首页</a></li>
 6             <li><a href="#">我的博客</a></li>
 7             <li><a href="#">关于我们</a></li>
 8         </ul>
 9     </div>
10 </div>
复制代码


这个导航条还是挺好看的,就是感觉他有点暗淡。。。。

品牌

<aclass="brand"href="#">Project name</a>这块地方展示的是品牌名称

PS:他的CSS中用了大量的float: left,我怎么感觉有点不爽呢!

分隔符

<liclass="divider-vertical"></li>

需要分隔符的地方加一个这个家伙就可以了:



结语

今天简单的看了下导航和布局,其实两块地方还是有很多东西的,比如现在的导航其实还是有许多东西要自己做的。

bootstrap提供了一些很不错的东西,能不能用好就是我们自己的事情啦。中文了大家午安。

您可以考虑给小钗发个小额微信红包以资鼓励 



本文转自叶小钗博客园博客,原文链接:http://www.cnblogs.com/yexiaochai/archive/2013/06/08/3125875.html如需转载请自行联系原作者

相关文章
|
2月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
101 9
|
24天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
2月前
|
容器
Bootstrap5 Flex(弹性)布局4
排序:.order 类可设置弹性子元素的排序,范围从 .order-1 至 .order-12,数字越小优先级越高。外边距:.ms-auto 和 .me-auto 分别用于设置子元素的右侧和左侧外边距为 auto。包裹:.flex-nowrap(默认)、.flex-wrap 和 .flex-wrap-reverse 用于控制弹性容器中的子元素是否换行及换行方向。
|
1月前
|
容器
Bootstrap5 Flex(弹性)布局6
使用 `.align-self-*` 类可控制指定子元素的对齐方式,包括 `.align-self-start`, `.align-self-end`, `.align-self-center`, `.align-self-baseline`, 和 `.align-self-stretch`。示例代码展示了如何在一个弹性布局中应用这些类,以实现不同设备上的响应式设计。
Bootstrap5 Flex(弹性)布局5
使用 .align-content-* 控制多行子元素在垂直方向上的堆叠方式,如 .align-content-start、.align-content-center 等。对于单行子元素,使用 .align-items-* 控制对齐,例如 .align-items-start、.align-items-center 等。示例代码展示了不同对齐效果的应用。
Bootstrap5 Flex(弹性)布局2
介绍Flex布局的水平和垂直方向控制。`.flex-row`使子元素水平排列,默认左对齐;`.flex-row-reverse`则右对齐。`.flex-column`让子元素垂直排列;`.flex-column-reverse`则反向排列。示例展示了不同类的效果,通过改变类名实现布局调整。
Bootstrap5 Flex(弹性)布局3
`.justify-content-*` 类用于调整弹性子元素的对齐方式,支持 start、end、center、between、around 等值。`.flex-fill` 类使所有子元素等宽,而 `.flex-grow-1` 则让指定子元素占据剩余空间。这些类在布局设计中非常实用。
Bootstrap5 侧边栏导航(Offcanvas)3
通过设置 `data-bs-scroll` 和 `data-bs-backdrop` 属性,可以控制侧边栏弹出时元素的滚动行为和背景画布的显示。示例中展示了不同配置下的滚动效果和背景画布的使用方法。
|
2月前
|
JavaScript 前端开发
Bootstrap5 侧边栏导航(Offcanvas)1
Bootstrap5 的 Offcanvas 组件提供了一种在小屏幕设备上使用的侧边栏导航方案。通过添加 `.offcanvas` 类并结合 `data-bs-toggle=&quot;offcanvas&quot;` 属性,可实现侧边栏的显示与隐藏。支持通过链接的 `href` 或按钮的 `data-bs-target` 属性进行控制。
Bootstrap5 侧边栏导航(Offcanvas)2
侧边栏可通过`.offcanvas-start`、`.offcanvas-end`、`.offcanvas-top`和`.offcanvas-bottom`类分别设置在页面的左、右、顶、底位置。示例代码展示了如何使用这些类创建不同方向的侧边栏,包括按钮触发和内容区域的定义。

热门文章

最新文章