摘要:聲明聲明本篇內(nèi)容摘抄自以下兩個(gè)來源中文網(wǎng)感謝大佬們的分享。版本是全球最受歡迎的前端組件庫,用于開發(fā)響應(yīng)式布局移動(dòng)設(shè)備優(yōu)先的項(xiàng)目。官方示例官方示例版本,官方還沒有中文教程,的中文教程倒是很齊全了。
聲明
本篇內(nèi)容摘抄自以下兩個(gè)來源:
感謝大佬們的分享。
正文-響應(yīng)式布局(BootStrap)
這次想來講講一個(gè)前端開發(fā)框架:BootStrap
BootStrap 目前已經(jīng)出了 4 個(gè)版本,每個(gè)版本都有對應(yīng)的官網(wǎng)教程,先來看看不同版本里的宣傳語:
簡潔、直觀、強(qiáng)悍的前端開發(fā)框架,讓web開發(fā)更迅速、簡單。--- BootStrap 2.x.x 版本
Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架,用于開發(fā)響應(yīng)式布局、移動(dòng)設(shè)備優(yōu)先的 WEB 項(xiàng)目。 --- BootStrap 3.x.x 版本
Bootstrap 是全球最受歡迎的前端組件庫,用于開發(fā)響應(yīng)式布局、移動(dòng)設(shè)備優(yōu)先的 WEB 項(xiàng)目。
Bootstrap 是一套用于 HTML、CSS 和 JS 開發(fā)的開源工具集。利用我們提供的 Sass 變量和大量 mixin、響應(yīng)式柵格系統(tǒng)、可擴(kuò)展的預(yù)制組件、基于 jQuery 的強(qiáng)大的插件系統(tǒng),能夠快速為你的想法開發(fā)出原型或者構(gòu)建整個(gè) app 。 --- BootStrap 4.x.x 版本
那么,什么是響應(yīng)式布局呢?
通俗的理解,就是在不同的屏幕規(guī)格上能夠有不同的布局效果,比如在大尺寸屏幕上呈現(xiàn)多列的布局,在小尺寸屏幕上呈現(xiàn)不了這么多,可能就只剩下一列布局了。
那么,當(dāng)屏幕尺寸發(fā)生變化時(shí),在不同屏幕規(guī)格上,應(yīng)該呈現(xiàn)怎樣的布局,一般是通過媒體查詢 @Media 來實(shí)現(xiàn),但自己在 CSS 中書寫的話,需要處理較多工作。
所以,也可以選擇一些熱門的框架,由它來幫忙處理這些響應(yīng)式布局的工作,就像 BootStrap,但 BootStrap 功能不僅只有響應(yīng)式功能,它還內(nèi)置了很多預(yù)制組件等等,總之,很強(qiáng)大,雖然我還沒用過。
使用
那就來學(xué)學(xué)如何使用,首先第一步肯定是安裝,我直接選擇最新版 4.x.x 系列的來作為入手了,舊版本沒去了解,有機(jī)會(huì)再說。
將 BootStrap 引入項(xiàng)目中使用有兩種方式:
直接使用網(wǎng)上資源
將相關(guān)資源下載至本地使用
使用網(wǎng)上資源
第一種方式最簡單,直接在 HTML 文檔中聲明 css 和 js 文件來源即可,如:
Hello, world!
Hello, world!
使用 BootStrap,上面的 HTML 文檔模板是必須的,帶有注釋的都是在所有使用了 BootStrap 的頁面中需要引入的,需要注意的是,由于 BootStrap 一些組件依賴于 jQuery 和 Popper,所以需要引入這兩份 js,而且順序是 jQuery 先,Popper 后,最后再引入 BootStrap 提供的 bootstrap.min.js。
這是第一種方式,也是最省力的。
將資源下載至本地使用
這種方式就比較折騰了,好處就在于資源文件都可以放在自己服務(wù)器上,無需依賴他人。下載資源到本地也有兩種方式,一是手動(dòng)到官網(wǎng)下載,下面三個(gè)地址:
下載 BootStrap
下載 jQuery
下載 popper
二是利用一些工具來下載,如 node.js 的 npm 命令來下載,打開終端,進(jìn)入項(xiàng)目的根目錄:
npm init -y
npm install bootstrap
npm install jquery
npm install popper.js --save
如果執(zhí)行命令過程中報(bào)錯(cuò)了,自行去搜索解決吧,我是一次性成功,沒出啥問題,都下載結(jié)束后,項(xiàng)目里的結(jié)構(gòu)如下,node_modules 文件夾里會(huì)有下載好的資源:
package.json 配置項(xiàng)如下:
這是我下載使用的版本。
好,不管是手動(dòng)去下載,還是接著 npm 下載,最后都需要將下載的資源放進(jìn)項(xiàng)目中,那么,下載下來的這么多東西,該怎么用,哪些是有用的?
可借鑒上面第一種方式里的 HTML 文檔,總共需要的其實(shí)就四份文件:
bootstrap.min.css
jquery.slim.min.js
popper.min.js
bootstrap.min.js
分別找下四份文件在哪,我的是在這幾個(gè)路徑下:
Hello, world!
Hello, world!
官方教程說了,上面這是使用 BootStrap 的 HTML 模板,當(dāng)然也有進(jìn)行了解釋,下面稍微說說:
這是 h5 的 HTML 文檔的聲明,不加這句的話,可能會(huì)出現(xiàn)一些奇怪的樣式;
這行代碼表示的意思是,讓網(wǎng)頁可以自動(dòng)適應(yīng)當(dāng)前移動(dòng)設(shè)備的屏幕。
所以,使用 BootStrap 除了需要在 HTML 文檔中引入所需的資源文件外,別忘了加上上面兩個(gè)處理。
官方示例
BootStrap 4.x.x 版本,官方還沒有中文教程,3.x.x 的中文教程倒是很齊全了。但 4.x.x 版本和 3.x.x 版本差別還是蠻大的,首先,4.x.x 選用 Sass 來作為預(yù)處理器,選擇 flex 來實(shí)現(xiàn)它的柵格布局系統(tǒng)等等。
反正,BootStrap 本質(zhì)就就是一個(gè)框架,封裝了一系列的屬性樣式、組件給開發(fā)者使用,開發(fā)者只要了解有哪些屬性樣式可以用、有哪些組件可以用、效果怎么樣、怎么用就可以了,至于這些,就只能是一步步在實(shí)際開發(fā)中,一邊寫一邊查文檔來慢慢積累了。
所以,本篇也就不會(huì)去列舉各個(gè)組件效果、屬性樣式效果、還一個(gè)個(gè)去說明怎么用。
接下去的內(nèi)容,就是想著,能夠讀懂官方某個(gè)示例項(xiàng)目的代碼就足夠了。
選擇了官方的這個(gè)示例:Album
一步步來讀懂它的 HTML 代碼吧:
第一步就是 HTML 的模板了,就上一小節(jié)中介紹的,需要進(jìn)行 H5 聲明、meta 聲明、引入四個(gè)資源文件的那份模板;
第二步,來看看 內(nèi)的
Hello, world!
About
Add some information about the album below, the author, or any other background context. Make it a few sentences long so folks can pick up some informative tidbits. Then, link them off to some social networking sites or contact information.
看看效果:
目前的代碼里,我們完全沒有寫過 CSS,只在 HTML 文檔中,添加了 標(biāo)簽內(nèi)容,就能夠達(dá)到這樣的頁面效果了,所以,其實(shí),BootStrap 已經(jīng)封裝好了一大堆屬性樣式,我們只要在標(biāo)簽上通過 class 將這些屬性樣式應(yīng)用起來就可以了。
示例中使用的 class 很多,基本都是 BootStrap 封裝好的,我也沒想把所有用到的都搞清楚具體作用,只是想了解個(gè)大概,后續(xù)在使用中慢慢積累學(xué)習(xí)吧。
對于這個(gè)
展開和折疊是怎么實(shí)現(xiàn)的?
展開時(shí)那些列表是如何實(shí)現(xiàn)的?
回過頭看上面的動(dòng)圖, 部分是作為導(dǎo)航欄,并且存在兩種狀態(tài),折疊和展開,所以兩種狀態(tài)對應(yīng)著兩個(gè) ,
兒子標(biāo)簽里剛好兩個(gè) ;
看第一個(gè)
的 class:
collapse bg-dark
,collapse 是折疊的意思,所以第一個(gè)
就是一開始被折疊的容器,而控制這個(gè)
折疊起來,也就是 BootStrap 提供的 collapse 起的作用了;
同層次的第二個(gè)
的 class:
navbar navbar-dark bg-dark box-shadow
,兩個(gè)
都有同一個(gè) bg-dark,那么這個(gè)其實(shí)就是用來設(shè)置背景的,因?yàn)檎归_后,其實(shí)
區(qū)域是由兩個(gè) 拼接起來的,只是背景色剛好一樣,看不出來而已。
所以,頁面渲染后,其實(shí)有個(gè)
被 collapse 折疊起來了,此時(shí)頁面上只呈現(xiàn)第二個(gè)
內(nèi)容而已,這個(gè)
的高度等樣式由 navbar、navbar-dark、bg-dark 這些決定。
那么,點(diǎn)擊完按鈕后,第一個(gè)
為什么會(huì)被展開了呢?
看一下那個(gè)按鈕:
的子標(biāo)簽 里的那個(gè) navbar-toggler-icon 就是按鈕的 icon,而之所以點(diǎn)擊了后可以展開第一個(gè) 就是由其他屬性來控制。
首先,需要對當(dāng)前這個(gè)按鈕添加 navbar-toggler 的 class,然后需要通過 data-target 指明控制展開的區(qū)域,這也是為什么第一個(gè)
中會(huì)有一個(gè) id 屬性,就是用來給這個(gè)按鈕控制它的。
所以,梳理一下,通過給
添加 collapse 的 class 可以讓這個(gè)區(qū)域折疊隱藏起來,然后給它設(shè)置一個(gè) id;然后給控制這個(gè)折疊區(qū)域的按鈕添加 data-toggle 和 data-target 屬性,通過 id 來控制指定區(qū)域的折疊和展開。
至于其他 class 則是各種樣式效果。
那么,展開之后的區(qū)域里的列表控件上,出現(xiàn)了一些例如:row,col-sm-8 之類的 class,這些又是什么意思呢?
首先,container 來設(shè)定區(qū)域的大小,row 用來設(shè)置這個(gè)容器作為 flex 布局,而彈性布局中,一行會(huì)被劃分成 12 列,看張圖:
所以 col-sm-8 表示當(dāng)顯示區(qū)域 >= 576px 時(shí),該控件占據(jù) 8 列,所以,同一個(gè)控件里會(huì)出現(xiàn)諸如:col-sm-8 col-md-7
其實(shí)就是響應(yīng)式布局處理,在不同顯示區(qū)域大小時(shí),呈現(xiàn)不同的大小。
而 py-4 是 pading-top 的意思,-4 表示不同的大小。
offset 表示在一個(gè) 12 列的一行里,前面需要空出幾列。
總之,官方教程里有對柵格系統(tǒng) Grid 做了詳細(xì)的介紹,雖然是英文的,慢慢啃吧。
只有理清楚了這篇文章中介紹的 Grid,才能夠理解,怎么寫可以達(dá)到響應(yīng)式的效果。
我們再來看導(dǎo)航欄的一個(gè)效果,我再來分析下:
當(dāng)顯示區(qū)域逐漸變小時(shí),布局從一行變成了兩行,這就是響應(yīng)式布局,來解釋下為什么會(huì)有這個(gè)行為:
看看這兩個(gè)區(qū)域的代碼:
...
...
上面說過,BootStrap 里的 Grid 將每一行劃分成 12 列,所以當(dāng)顯示區(qū)域大小在 md 范圍,即 >= 768px 情況下,第一個(gè)
的 col-md-7 生效,它占據(jù) 7 列的寬度,第二個(gè)
的 offset-md-1 和 col-sm-4 都生效,所以它前面空著 1 列的寬度,然后它占據(jù)著 4 列的寬度,這加起來是不是剛好 12 列,所以在 >= 768 時(shí),一行可以放下這兩個(gè)
。
但當(dāng)顯示區(qū)域逐漸縮小,當(dāng)進(jìn)入 sm 范圍,即 >= 576px 時(shí),此時(shí),第一個(gè)
的 col-sm-8 生效,所以它占據(jù) 8 列,而第二個(gè)
仍舊是 offset-md-1 和 col-sm-4 生效,那么此時(shí)加起來一共 13 列,超過了 12 列,一行里已經(jīng)不足夠放這兩個(gè)
了,根據(jù) flex 的彈性布局,此時(shí)超過的會(huì)自動(dòng)換行。
以上,就是我對 Grid 的理解,也許有誤,如果是錯(cuò)的,等后續(xù)用熟悉了再回來改,大伙看的時(shí)候,就當(dāng)個(gè)借鑒看一看就好了。
分析到這里,大概清楚了 Grid 還有導(dǎo)航欄的一些用法了,也大體清楚 BootStrap 的響應(yīng)式原理好像是基于它的柵格系統(tǒng),通過為不同控件設(shè)置諸如 col-(sm/md/ls/xl)-(1/2/3/4/5/6/7/8/9/10/11/12) 來達(dá)到在不同顯示區(qū)域下,不一樣的布局效果,實(shí)現(xiàn)響應(yīng)式布局。
所以,剩余的代碼不想看了,頭有點(diǎn)懵了,我對 BootStrap 唯一的感覺就是,學(xué)習(xí)成本好高,它提供太多東西了,封裝了太多的樣式、控件,反而不知道從哪看。
也許,本來就不需要特意去看,學(xué)習(xí) BootStrap 應(yīng)該是當(dāng)需要時(shí),再來查閱文檔,然后逐步,慢慢積累對 BootStrap 的熟悉程度,而不是一開始就來看細(xì)看文檔,文檔當(dāng)然要看,但快速過一遍,大概清楚提供了哪些東西就好了。
大家好,我是 dasu,歡迎關(guān)注我的公眾號(dasuAndroidTv),公眾號中有我的聯(lián)系方式,歡迎有事沒事來嘮嗑一下,如果你覺得本篇內(nèi)容有幫助到你,可以轉(zhuǎn)載但記得要關(guān)注,要標(biāo)明原文哦,謝謝支持~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/1445.html
摘要:是目前可用框架中無可爭議的領(lǐng)導(dǎo)者。框架大小預(yù)處理器和響應(yīng)式布局是模塊化是啟動(dòng)模板布局是圖標(biāo)集設(shè)置附加附件無捆綁,許多第三方插件可用。是排在第二名的框架。是一個(gè)語義化設(shè)計(jì)的前端開源框架。
如今出現(xiàn)了大量的CSS前端框架,但真正優(yōu)秀的框架只有少數(shù)幾個(gè)。
本文將會(huì)比較其中五個(gè)最佳的框架。每個(gè)框架都有自己的優(yōu)點(diǎn)和缺點(diǎn),以及具體的應(yīng)用領(lǐng)域,你可以根據(jù)自己的具體項(xiàng)目需求進(jìn)行選擇。此外,許多選項(xiàng)都是...
摘要:年月初,中共中央國務(wù)院發(fā)布了關(guān)于構(gòu)建和諧勞動(dòng)關(guān)系的意見,明確提出切實(shí)保障職工休息休假的權(quán)利,完善并落實(shí)國家關(guān)于職工工作時(shí)間全國年節(jié)及紀(jì)念日假期帶薪年休假等規(guī)定。下一步要抓好這項(xiàng)工作的落實(shí)。
一直以來響應(yīng)式布局都是利用的bootstrap來做,但是在手機(jī)上瀏覽的話,bootstrap樣式文件還是有點(diǎn)大 118k,如果再用上一些js庫的話,上個(gè)幾百k是輕輕松松了,這樣一來用移動(dòng)流量的話真的...
摘要:年月初,中共中央國務(wù)院發(fā)布了關(guān)于構(gòu)建和諧勞動(dòng)關(guān)系的意見,明確提出切實(shí)保障職工休息休假的權(quán)利,完善并落實(shí)國家關(guān)于職工工作時(shí)間全國年節(jié)及紀(jì)念日假期帶薪年休假等規(guī)定。下一步要抓好這項(xiàng)工作的落實(shí)。
一直以來響應(yīng)式布局都是利用的bootstrap來做,但是在手機(jī)上瀏覽的話,bootstrap樣式文件還是有點(diǎn)大 118k,如果再用上一些js庫的話,上個(gè)幾百k是輕輕松松了,這樣一來用移動(dòng)流量的話真的...
摘要:類用于寬度,占據(jù)全部視口的容器。通過行在水平方向創(chuàng)建一組列。通過為列設(shè)置屬性,從而創(chuàng)建列與列之間的間隔。
上次課內(nèi)容:什么JQ : write less do more 寫更少的代碼,做更多的事情 javascript函數(shù)庫
基本選擇器:
? ID選擇器: #ID名稱
? 類選擇器: .類名
? 元素選擇器: 元素的名稱
? 通配符選擇器: * 找出頁面上...
摘要:類用于寬度,占據(jù)全部視口的容器。通過行在水平方向創(chuàng)建一組列。通過為列設(shè)置屬性,從而創(chuàng)建列與列之間的間隔。
上次課內(nèi)容:什么JQ : write less do more 寫更少的代碼,做更多的事情 javascript函數(shù)庫
基本選擇器:
? ID選擇器: #ID名稱
? 類選擇器: .類名
? 元素選擇器: 元素的名稱
? 通配符選擇器: * 找出頁面上...
男| 高級講師
閱讀 3736· 2021-11-24 09:39
閱讀 2617· 2019-08-30 15:54
閱讀 1159· 2019-08-30 13:01
閱讀 3436· 2019-08-28 18:30
閱讀 1631· 2019-08-26 17:44
閱讀 3598· 2019-08-26 11:31
閱讀 2422· 2019-08-26 10:40
閱讀 1252· 2019-08-26 10:27
<