從零開始學 Web 之 移動Web(七)Bootstrap


大家好,這里是「 從零開始學 Web 系列教程 」,並在下列地址同步更新......

在這里我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的項目。現在就讓我們一起進入 Web 前端學習的探索之旅吧!

一、常見的響應式框架

隨着Web應用變的越來越復雜,在大量的開發過程中我們發現有許多功能模塊非常相似,比如輪播圖、分頁、選項卡、導航欄等,開發中往往會把這些具有通用性的功能模塊進行一系列封裝,使之成為一個個組件應用到項目中,可以極大的節約開發成本,將這些通用的組件縮合到一起就形成了前端框架。

常見的響應式框架有:

1、Bootstrap

官網:http://www.bootcss.com/

簡潔、直觀、強悍的前端開發框架,讓web開發更迅速、簡單。

來自 Twitter,粉絲眾多,是目前最受歡迎的前端框架。

2、Amaze UI

官網:http://amazeui.org/

中國首個開源 HTML5 跨屏前端框架。

Amaze ~ 妹子UI,國人開發,后起之秀!

3、Framework7

官網:http://www.framework7.cn/

Framework7 是一款免費、開源的移動HTML框架,主要用於開發混合手機App或者網頁App,某些應用場景的體驗幾乎與原生開發的 iOS 和 Android 應用一模一樣,同時也是一款不可獲取的應用原型快速開發及展示工具。

Framework7 主要的作用就是讓你有機會能夠使用 HTML,CSS 和 JavaScript 簡單明了地開發 iOS 和 Android 應用。Framework7 是完全開放的,它完全沒有限制你進行打開腦洞的創造,同時還提供了一些解決方案。

Framework7 並不支持所有平台。為了給你帶來最好的體驗感受,它只專注於 iOS 和 Google Material 設計風格。

二、bootstrap

Bootstrap是當前最流行的前端UI框架(有預制界面組件)

Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用於開發響應式布局、移動設備優先的 WEB 項目。

Bootstrap是基於HTML5和CSS3開發的,它在jQuery的基礎上進行了更為個性化和人性化的完善,形成一套自己獨有的網站風格,並兼容大部分jQuery插件。

Bootstrap 的所有 JavaScript 插件都依賴 jQuery。

1、BootStrap的版本了解

  • 2.x.x:兼容性好 / 代碼不夠簡潔,功能不夠完善
  • 3.x.x:穩定性好,放棄了IE6-IE7,對IE8的支持一般 /偏向於響應式布局開發,移動設備優先的web項目開發
  • 4.x.x:測試階段,偏向於響應式,移動設備

2、bootstrap 基本模板

<!--說明頁面是html5頁面-->
<!DOCTYPE html>
<!--頁面使用的語言環境-->
<html lang="zh-CN">
<head>
    <!--指定當前頁面的字符編碼-->
    <meta charset="utf-8">
    <!--如果是IE,會使用最新的渲染引擎進行渲染-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!--標准的視口設置-->
    <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0">
    <!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! -->
    <title>Bootstrap 101 Template</title>
    <!-- Bootstrap核心樣式文件 -->
    <link href="../lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries: 這兩個文件的引入是為了支持IE8下面的html5元素和媒體查詢:因為在IE8下面默認不支持HTML5和媒體查詢,所以需要引入兩個插件-->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// 如果通過file://來查看文件,那么respond.js文件不能正常工作,說明必須在http://形式下訪問才有用-->
    <!--html5shiv.min.js:為了在IE8下面支持HTML標簽
    respond.min.js:為了在IE8下面支持媒體查詢-->
    <!--[if lt IE 9]> <!--只有IE9之前才會加載這兩個文件  lt:less than-->
    <script src="../lib/html5shiv/html5shiv.min.js"></script>
    <script src="../lib/respond.js/respond.js"></script>
    <![endif]-->
</head>
<body>
<h1>你好,世界!</h1>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) bootstrap是依賴jquery的-->
<script src="../lib/jquery/jquery.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed  bootstarp核心js文件-->
<script src="../lib/bootstrap/js/bootstrap.min.js"></script>
</body>
</html>

3、bootstrap 布局容器

bootstrap 的 css 樣式中,有一個起着支撐整個頁面框架的容器,也叫布局容器,它類似於我們的版心結構。

1、.container 實現固定寬度並支持響應式布局的容器。

當屏幕寬度 > 1200,則頁面寬度固定為 1170px
當屏幕寬度 992~1200,則頁面寬度固定為 970px
當屏幕寬度 768~992,則頁面寬度固定為 750px
當屏幕寬度 < 768,則頁面寬度固定為 100%.

2、.container-fluid :實現寬度為全屏 100% 的容器。

4、bootstrap 柵格系統

概念:Bootstrap 提供了一套響應式、移動設備優先的流式柵格系統,隨着屏幕或視口(viewport)尺寸的增加,系統會默認分為12列

柵格系統用於通過一系列的行(row)與列(column)的組合來創建頁面布局,你的內容就可以放入這些創建好的布局中。

“行(row)”必須包含在 .container (固定寬度)或 .container-fluid (100% 寬度)中,以便為其賦予合適的排列(aligment)和內補(padding)。

你的內容應當放置於“列(column)”內,並且,只有“列(column)”可以作為行(row)”的直接子元素。你可以使用類似 .row 和 .col-xs-4 這種預定義的類,可以用來快速創建柵格布局。Bootstrap 源碼中定義的 mixin 也可以用來創建語義化的布局。

通過為“列(column)”設置 padding 屬性,從而創建列與列之間的間隔(gutter)。通過為 .row 元素設置負值 margin 從而抵消掉為 .container 元素設置的 padding,也就間接為“行(row)”所包含的“列(column)”抵消掉了padding。

柵格系統中的列是通過指定1到12的值來表示其跨越的范圍。例如,三個等寬的列可以使用三個 .col-xs-4 來創建。

如果一“行(row)”中包含了的“列(column)”大於 12,多余的“列(column)”所在的元素將被作為一個整體另起一行排列。

示例:

<div class="row">
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"></div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"></div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"></div>
    <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3"></div>
</div>

解釋:上面四個div,如果在超小屏幕上就 100%顯示(占12柵格);在小屏幕上,每個div占50%顯示;在中等屏幕上,每個div占25%顯示;在大屏幕上,每個div占33.33%顯示。

柵格參數:

.col-xs- :超小屏幕 手機 (<768px)

.col-sm- : 小屏幕 平板 (≥768px)

.col-md- : 中等屏幕 桌面顯示器 (≥992px)

.col-lg- : 大屏幕 大桌面顯示器 (≥1200px)

注意:

1.柵格系統是往上兼容的:意味着小屏幕上的效果在大屏幕上也是可以正常顯示的人,但是大屏幕上的設置在小屏幕上卻無法正常顯示。

2.Row可以再次嵌套在列中。如果不能填滿整列,則默認從左排列,如果超出,則換行展示。

5、列排序

  • col-xs-offset-n:往右偏移 n 個柵格,但是會影響后面所有元素也偏移 n 個柵格。(內部通過 margin-left 實現的)
  • col-xs-push/pull-n:push 往右推,pull 往左拉。往右偏移 n 個柵格,可能會與后面的元素重疊。(內部實現原理通過定位實現)

6、列嵌套

列嵌套就是列中還可以嵌套行,注意不能嵌套版心 container 和 container-fluid。

因為:

如果在外層沒有再包含container,那么嵌套列的寬度就是參參照當前所在的柵格;

如果外層添加了container,那么參照就是核心樣式文件所設置的容器寬度

<div class="container">
    <div class="row">
        <div class="col-xs-1">1</div>
        <div class="col-xs-1">2</div>
        <div class="col-xs-6">
            <!--
            1.如果在外層沒有再包含container,那么嵌套列的寬度就是參參照當前所在的柵格
            2.如果外層添加了container,那么參照就是核心樣式文件所設置的容器寬度-->
            <!--<div class="container">-->
                <div class="row">
                    <div class="col-xs-6">3</div> <!--這里的6占的是直接父div的一半,而不是container的一半-->
                    <div class="col-xs-6">4</div>
                </div>
            <!--</div>-->
        </div>
        <div class="col-xs-1">4</div>
        <div class="col-xs-1">5</div>
        <div class="col-xs-1">6</div>
        <div class="col-xs-1">7</div>
    </div>
</div>

7、響應式工具

(無向上兼容,內部實現是一個具體的范圍,沒有波及到其他區域)

.hidden-xs :在超小屏幕下不可見

.hidden-sm :在小屏幕下不可見

.hidden-md :在中等屏幕下不可見

.hidden-lg :在大屏幕下不可見

示例:

<div class="container">
    <div class="row">
        <div class="col-xs-1 hidden-sm">1</div> <!--在小屏幕下不可見-->
        <div class="col-xs-1 hidden-xs">2</div> <!--在超小屏幕下不可見-->
        <div class="col-xs-6 hidden-lg">        <!--在大屏幕下不可見-->
        <div class="col-xs-1">4</div>
        <div class="col-xs-1">5</div>
        <div class="col-xs-1">6</div>
        <div class="col-xs-1">7</div>
    </div>
</div>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM