<kbd id="fugzo"></kbd>
<pre id="fugzo"></pre>
    1. <fieldset id="fugzo"><style id="fugzo"></style></fieldset>
      <center id="fugzo"></center>
    2. 哑剧盖章,电视剧折腰免费观看全集,亮剑3gp下载,秘密访客,泰剧为你着迷,古城童话,食物链无删减,大鱼海棠

      CSS預(yù)處理語言的模塊化實(shí)踐實(shí)例

      時間:2024-11-01 11:49:33 CSS

      CSS預(yù)處理語言的模塊化實(shí)踐實(shí)例

        編寫css是前端工作中,一項(xiàng)普通而又頻繁的勞動,由于css并不是一門語言,所以在程序設(shè)計(jì)上顯得有些簡陋。對于小型項(xiàng)目來說,css的量還不至于龐大,問題沒有凸顯,而如果要開發(fā)和持續(xù)維護(hù)一個較為大型的項(xiàng)目,那就需要對css進(jìn)行管理和規(guī)范了,否則會發(fā)生不可挽回的后果。

        通過規(guī)范的約束,將css的編寫方式進(jìn)行了優(yōu)化和改進(jìn),形成一種可持續(xù)發(fā)展的路線。但還是遺留了一些問題:冗余。雖然我們通過定義公共模塊和私有模塊,來委婉地分擔(dān)common的體積,但common的體積還是太大了,而且從設(shè)計(jì)上考慮,我們應(yīng)該盡量多地提煉公共模塊,以便更好地實(shí)現(xiàn)復(fù)用。最理想的情況是,所有的模塊都寄存在一個公共的庫里,哪里需要用到就從庫中直接調(diào)過來。這個美好的愿望不是不可實(shí)現(xiàn)的,借助預(yù)處理語言,我們可以很輕易地完成這事情。

        預(yù)處理語言是一種類css的語言,我們知道css本身不是語言,而預(yù)處理語言的誕生,就是為填補(bǔ)這一部分語言功能。它實(shí)現(xiàn)了變量、函數(shù)、混合的定義,以及文件的引用、合并、壓縮功能,使得css也能面向?qū)ο螅瑧?yīng)付復(fù)雜龐大的業(yè)務(wù)。

        目前流行的預(yù)處理語言主要有兩種:less和sass。作為學(xué)習(xí),兩者都可以入門一下,而作為工作,盡量熟悉一種。我比較常用sass,所以以下內(nèi)容都是以sass為基本語言做介紹,兩者在特性上有很多相似的地方,所以大家不必?fù)?dān)心實(shí)現(xiàn)上有什么千差萬別。

        sass

        基本語法可以到官方網(wǎng)(英語)或者w3cplus sass guide(中文)查看學(xué)習(xí),我們這里只簡單地過一遍,講一些我們需要用到的內(nèi)容,不會面面俱到。

        sass有兩種后綴名文件:一種后綴名為sass,不使用大括號和分號;另一種就是我們這里使用的scss文件,這種和我們平時寫的css文件格式差不多,使用大括號和分號。而本教程中所說的所有sass文件都指后綴名為scss的文件。在此也建議使用后綴名為scss的文件,以避免sass后綴名的嚴(yán)格格式要求報(bào)錯。 ——摘自w3cplus sass guide

        1、嵌套(非常重要的特性)

        sass的嵌套包括兩種:一種是選擇器的嵌套;另一種是屬性的嵌套。我們一般說起或用到的都是選擇器的嵌套。 ——摘自w3cplus sass guide

        選擇器嵌套 所謂選擇器嵌套指的是在一個選擇器中嵌套另一個選擇器來實(shí)現(xiàn)繼承,從而增強(qiáng)了sass文件的結(jié)構(gòu)性和可讀性。在選擇器嵌套中,可以使用&表示父元素選擇器。 ——摘自w3cplus sass guide

        // index.scss

        .g-index {

        ...

        .g-hd {

        ...

        .m-nav { ... }

        }

        .g-bd {

        ...

        .m-news { ... }

        }

        .g-ft {

        ...

        .m-copy_right { ... }

        }

        .m-dialog {

        display: none;

        &.z-active { // 留意此處&的用法

        display: block;

        }

        }

        }

        編譯后:

        /* index.css */

        .g-index { ... }

        .g-index .g-hd { ... }

        .g-index .g-hd .m-nav { ... }

        .g-index .g-bd { ... }

        .g-index .g-bd .m-news { ... }

        .g-index .g-ft { ... }

        .g-index .g-ft .m-copy_right { ... }

        .g-index .m-dialog {

        display: none;

        }

        .g-index .m-dialog.z-active { // 留意此處&的編譯結(jié)果

        display: block;

        }

        是不是爽歪歪?再也不用一遍一遍地去復(fù)制和修改一大堆的選擇器,也不需要去整理它們之間的關(guān)系,只需要嵌套一下,所有的關(guān)系就如同直接看dom一樣簡單明了了!解放雙手,解放雙眼,同時還提高效率。值得留意的是,我們書寫sass的時候,應(yīng)該盡量保持sass的嵌套順序與dom一致,注意,是嵌套順序一致,而不是層次一致,因?yàn)椴⒉皇莇om里的所有元素都需要寫樣式。

        我們再來提一個場景,說明sass的嵌套寫法利于維護(hù),假設(shè)g-bd下原本有個模塊m-article_box,現(xiàn)在我們要把m-article_box從g-bd遷移到g-hd中(當(dāng)然這個需求有些不合理~),我們來看原始代碼:

        

        

        

        

        titleindex/title

        

        

        


        


        


        


        最新文章

        

        


        


        


        

        


        


        文章標(biāo)題

        

        

      文章簡介

        

        

        

        

        


        


        1

        2

        3

        4

        

        

        

        

        

        

        

        .g-bd { ... }

        .g-bd .m-article_box { ... }

        .g-bd .m-article_box .hd { ... }

        .g-bd .m-article_box .bd { ... }

        .g-bd .m-article_box .bd .list { ... }

        .g-bd .m-article_box .bd .list .item { ... }

        .g-bd .m-article_box .bd .list .item .cover { ... }

        .g-bd .m-article_box .bd .list .item .info { ... }

        .g-bd .m-article_box .bd .list .item .info .title { ... }

        .g-bd .m-article_box .bd .list .item .info .desc { ... }

        .g-bd .m-article_box .ft { ... }

        .g-bd .m-article_box .ft .page { ... }

        .g-bd .m-article_box .ft .page .pg { ... }

        按照css的方式,我們就要把所有跟m-article_box有關(guān)的部分,從g-bd全部復(fù)制到g-hd里去。這還是在模塊的書寫符合規(guī)范的情況下,如果這個模塊書寫不符合規(guī)范,沒有把全部結(jié)構(gòu)都掛在m-article_box類下,那真的就是災(zāi)難了~而現(xiàn)在使用sass的話,我們只需要把m-article_box的區(qū)塊整個從g-bd剪切到g-hd就完事了(這里為了突出修改的工作量大,我特地把整個模塊結(jié)構(gòu)都寫全了——才不是為了湊字?jǐn)?shù)。。。):

        // 修改前

        .g-hd { ... }

        .g-bd {

        .m-article_box {

        .hd { ... }

        .bd {

        .list {

        .item {

        .cover {

        ...

        }

        .info {

        .title {

        ...

        }

        .desc {

        ...

        }

        }

        }

        }

        }

        .ft {

        .page {

        .pg { ... }

        }

        }

        }

        }

        // 修改后

        .g-hd {

        .m-article_box {

        .hd { ... }

        .bd {

        .list {

        .item {

        .cover {

        ...

        }

        .info {

        .title {

        ...

        }

        .desc {

        ...

        }

        }

        }

        }

        }

        .ft {

        .page {

        .pg { ... }

        }

        }

        }

        }

        .g-bd { ... }

        非常方便,而且不容易出錯。

        2、變量(variable)

        咱們直接上代碼:

        // index.scss

        $fontSize: 16px;

        $grey: #ccc;

        .m-nav {

        font-size: $fontSize;

        color: $grey;

        }

        編譯結(jié)果:

        /* index.css */

        .m-nav {

        font-size: 16px;

        color: #ccc;

        }

        寫過代碼的人都熟悉 參數(shù) 的用法吧,太簡單太直白了不想說太多,自己意會吧。

        3、函數(shù)(function)

        // pixels to rems

        @function rem($px) {

        @return $px / 640 * 16rem;

        }

        太簡單了直白了不想說太多,自己意會吧。

        4、混合(mixin)

        混合,顧名思義,就是混合的意思。。。也就是我們可以事先定義一段代碼塊,在需要使用到的地方,直接引用(include),而在引用之前,這段代碼都不會出現(xiàn)在編譯文件中,也就是不會生成任何內(nèi)容。

        這也是非常重要的一個特性!我們知道common的體積非常大,而體積大的根本原因是它存放了許許多多的模塊。我們設(shè)想一下,如果將每一個模塊都打包成mixin,那common不就減肥成功了?!多年的頑疾終于看到希望,沒有比這更讓人驚喜的了!我們這就上車:

        /* common.css */

        .m-nav { ... }

        .m-news { ... }

        .m-copy_right { ... }

        改造后

        // common.scss

        @mixin m-nav {

        .m-nav { ... }

        }

        @mixin m-news {

        .m-news { ... }

        }

        @mixin m-copy_right {

        .m-copy_right { ... }

        }

        // index.scss

        .g-index {

        @include m-nav;

        @include m-news;

        @include m-copy_right;

        }

        5、import

        這個屬性很眼熟?沒錯,事實(shí)上,css本身就有這個屬性實(shí)現(xiàn),我們可以在css文件中直接使用import來引入其他文件。那么css的import和sass的import有什么區(qū)別?從含義和用法上來說,沒有區(qū)別,區(qū)別在于工作原理。css的import是阻塞的,而sass的import在編譯后,其實(shí)是合并文件,最后只產(chǎn)出一個css文件,而css則沒有合并,該多少個文件就還是多少個文件。

        注意:

        只有import一個.sass/.scss文件的時候,才可以省去后綴名,如果是直接import一個.css文件,要補(bǔ)全文件名;

        import之后的分號;不要漏寫,會報(bào)錯;

        sass如果import的是一個.css文件的話,那它的作用就跟css原生的import作用一樣,只有import一個sass文件的時候,才是合并文件。

        如下:

        // index.scss

        @import 'common';

        @import 'a.css';

        編譯結(jié)果:

        /* index.scss */

        .m-nav { ... }

        .m-news { ... }

        .m-copy_right { ... }

        @import url('a.css');

        css的import之所以沒有被普遍使用是有原因的。我們可以大概猜到它的工作原理:a.css import b.css以后,當(dāng)瀏覽器加載到頁面中的a.css的時候,已經(jīng)準(zhǔn)備按照a.css的內(nèi)容來渲染頁面了,剛解析到第一行,發(fā)現(xiàn)a.css居然還import了一個b.css,于是它不得不先放下a.css(既阻塞a.css),去加載b.css,直到b.css加載完,并且優(yōu)先解析它,然后才開始回來解析a.css——鬼知道b.css會不會又import了c.css……這直接導(dǎo)致了渲染工作滯后,引發(fā)性能問題。

        說實(shí)話我還不如直接用兩個link標(biāo)簽去同步加載a.css和b.css,效率會高一些。

        所以css的import基本是被拋棄了的屬性。

        sass的import主要的好處就是把文件合并了,減少了請求。原本需要link好幾個css文件的頁面,現(xiàn)在只需要一個。

        模塊化

        終于要開始干點(diǎn)正事了,首先我們來回顧一下,上一節(jié)我們以規(guī)范為基礎(chǔ)構(gòu)建的模塊化項(xiàng)目,遺留了一些什么問題。

        冗余 體積龐大的common;

        使用cm-模塊區(qū)別m-模塊,使得后期開發(fā)過程中,m-模塊向cm-模塊轉(zhuǎn)變過程比較繁瑣;

        ……

        好像,問題也不是特別多,我們一個一個解決。

        為了方便,在這里我們把每個頁面所對應(yīng)的scss文件叫做 頁面scss;把變量、函數(shù)、混合等(沒有被引用或者執(zhí)行的情況下)編譯后不產(chǎn)生實(shí)際內(nèi)容的代碼叫做 定義類代碼 ,那么相對應(yīng)的其他內(nèi)容就是 實(shí)際內(nèi)容代碼。

        1、mixin.scss

        我們知道,一方面,在common中過多地添加模塊最終會導(dǎo)致common的體積過大,使得資源冗余,另一方面,為了方便維護(hù),我們又希望盡量多地把模塊公有化。

        這是一對矛盾,僅靠css本身是無法解決的,但sass可以!如果我們使用mixin來代替直接書寫模塊,由于mixin并不直接生成代碼,而是通過主動引用,才能生成對應(yīng)內(nèi)容,那么理論上,common就可以無限多地存放模塊而不必占用一點(diǎn)空間!

        (注意,這里說的是理論上,實(shí)際應(yīng)用中,文件太過龐大的話,免不了還是要受到命名沖突的限制的,不過這問題不大。)

        說干就干,我們把common中的模塊全部打包成mixin:

        /* common.css */

        .m-nav { ... }

        .m-news { ... }

        .m-copy_right { ... }

        改造后

        // common.scss

        @mixin m-nav {

        .m-nav { ... }

        }

        @mixin m-news {

        .m-news { ... }

        }

        @mixin m-copy_right {

        .m-copy_right { ... }

        }

        調(diào)用方式如下:

        // index.scss

        @import 'common'; // 記得先引入common

        .g-index {

        @include m-nav;

        @include m-news;

        @include m-copy_right;

        }

        原本我們會在每個需要用到公共模塊的頁面中,先引用common,然后再引用頁面css,而現(xiàn)在,我們只需要在頁面scss中直接@import common;就可以了。

        使用common:

        

        

        

        

        titleindex/title

        link rel="stylesheet" type="text/css" href="./style/common.css"/

        link rel="stylesheet" type="text/css" href="./style/index.css"/

        

        

        ...

        

        

        改造后:

        // index.scss

        @import 'common';

        

        

        

        

        titleindex/title

        link rel="stylesheet" type="text/css" href="./style/index.css"/

        

        

        ...

        

        

        很完美,

        ——至少目前為止是這樣。

        我們思考一個問題,common除了存放模塊之外,還有沒有其他內(nèi)容?答案是肯定的,大家一定知道有個東西叫做css reset(或者normalize.css),這肯定是全局的;另外,如果是做后臺管理系統(tǒng)的話,可能還會有bootstrap。當(dāng)然,還有一些自定義的全局的樣式,比如常見的.clearfix,等等。

        這些東西目前我們也堆積在common當(dāng)中,而且合情合理,因?yàn)樗鼈兌际侨值臉邮健5菍Ρ绕餸ixin來說,這些實(shí)際內(nèi)容代碼顯得很少量,有種被淹沒的感覺,使得整個common看上去就像只有mixin。但是這些實(shí)際內(nèi)容代碼的作用卻又非常重要。為了使common的構(gòu)成更加直觀,我們把mixin全部都抽離出來,單獨(dú)存放一個叫做mixin.scss的文件中,然后在common引用它,這樣,mixin的管理更加的規(guī)范,而且common的結(jié)構(gòu)也更加清晰了。

        抽離mixin還有另外一個重要原因,后面會講到的,我們希望mixin作為一個純粹定義類代碼文件,隨處可以引用而不會生成多余的代碼。

        原本我們會在每個需要用到公共模塊的頁面中,先引用common,然后再引用頁面css,而現(xiàn)在,我們只需要在頁面scss中直接@import mixin;就可以了。

        使用mixin:

        // index.scss

        @import 'common'; // 引入common,如果有需要,common里一樣可以引入mixin

        @import 'mixin'; // 引入mixin

        .g-index {

        ...

        }

        

        

        

        

        titleindex/title

        link rel="stylesheet" type="text/css" href="./style/index.css"/

        

        

        ...

        

        

        2、common.scss

        好,抽離了mixin之后,我們現(xiàn)在來重新看回common,common里應(yīng)該是些什么樣的內(nèi)容。上面的內(nèi)容我們稍稍提到了一點(diǎn),我們來展開一下。

        2.1、css reset(normalize)

        我們知道瀏覽器千差萬別,各瀏覽器的默認(rèn)樣式也是不盡相同,最常見的比如body的默認(rèn)內(nèi)邊距,p標(biāo)簽的默認(rèn)內(nèi)邊距,以及ul/ol等等。這些不統(tǒng)一的默認(rèn)樣式經(jīng)常讓我們感到頭疼,所以就有人提出一開始寫樣式就先把它們消除的想法,于是就催生了后來非常流行的reset.css。

        起初的reset.css很簡單,大概是這樣的:

        html, body, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, p {

        margin: 0;

        padding: 0;

        }

        沒錯,就是把幾乎所有會用到的標(biāo)簽都給去了內(nèi)邊距和外邊距,簡單粗暴,這樣所有的標(biāo)簽就都統(tǒng)一了,而且在不同的瀏覽器下也是統(tǒng)一的。

        其他的部分每個人有各自的補(bǔ)充,比如有人會把h1~h6的所有字號給定義一遍,以保證在不同瀏覽器下他們有統(tǒng)一的大小;有人會給a標(biāo)簽設(shè)置統(tǒng)一的字體顏色和hover效果,諸如此類等等。

        很好,沒毛病。我們把這些統(tǒng)稱為css reset,然后再統(tǒng)一封裝到一個叫做reset.css的文件中,然后每個頁面都引用。

        這種方式一直以來都挺實(shí)用,而且大家也都這么用,沒出過什么問題。只是后來有人提出,這種方式太過粗暴(居然還心疼瀏覽器了)。。。而且會降低頁面渲染的性能,最重要的是,這使得我們原本設(shè)計(jì)出來的表達(dá)各種含義的標(biāo)簽兒們,變得毫無特點(diǎn)了。。。

        說的好有道理,如果你家里所有人名字不一樣但是都長一個樣,還有啥意思。

        于是,就出現(xiàn)了normalize.css,normalize的目的同樣是為了統(tǒng)一各個瀏覽器下各不相同的默認(rèn)樣式,不過它并不是簡單粗暴地全部抹平,而是根據(jù)規(guī)范,來人為地把那些不符合規(guī)范的默認(rèn)樣式“扶正”,從而達(dá)到統(tǒng)一各個瀏覽器默認(rèn)樣式,同時保留各個標(biāo)簽原有特點(diǎn)的目的。

        我們不能說reset與normalize這兩種思想孰好孰壞,只能說各有各的特點(diǎn)和作用,它們的存在都是為了解決同樣的問題。

        2.2、插件

        一般來說,一個ui插件都會至少包括一個css文件,像bootstrap、datepicker等等。假設(shè)我們項(xiàng)目中需要以bootstrap為基礎(chǔ)框架,實(shí)現(xiàn)快速開發(fā),那么這時候我們就需要在項(xiàng)目中全局引入bootstrap.min.css,當(dāng)然,還有bootstrap.min.js。說到全局暴露,我們第一時間想到的是common,沒錯,我們可以在common中引入。

        有人問,插件的.css文件怎么import?額,改一下擴(kuò)展名為.scss就可以了,scss是兼容原生css語法的~

        所以最終,我們的common大概是這樣子的:

        // common.scss

        @import './reset';

        @import './bootstrap.min';

        @import './mixin';

        事實(shí)上,如果我們不需要使用到 mixin.scss 中的變量和mixin的話,我們可以不引用它。

        那么我們的頁面scss應(yīng)該是這樣的:

        // index.scss

        @import './common';

        @import './mixin';

        .g-index {

        ...

        }

        干凈,整潔。

        3、mixin編寫規(guī)范

        每添加一個新角色,我們就要及時給它設(shè)置規(guī)范,好讓它按照我們的期望工作別添亂。我們接下來來歸納一下mixin的書寫規(guī)范。

        場景一:項(xiàng)目里有mixin.scss、a.scss(假設(shè)這是某個功能文件)、index.scss三個文件,mixin中定義了一個變量$fontSize: 16px;,a中定義了一個變量$color: #ccc;,我們在index中同時引用這兩個文件,那么我們在index中是可以直接使用$fontSize和$color這兩個變量的——我的意思是,盡管在index中我們并沒有看到這兩個變量的聲明和定義,但它們就這么存在了。

        這是好事還是壞事呢?直覺告訴我,這可能有問題。沒錯,這是不是跟我們之前討論過的 污染 很像?只不過我們之前是引用了common之后,index什么都還沒寫就已經(jīng)被占用了很多模塊名,而現(xiàn)在是因?yàn)橐昧似渌募加昧薸ndex的很多變量名。另外,就維護(hù)的角度來看,這也是有問題的,如果我不事先告訴你,或者你不事先看過一遍mixin和a,你知道index中的$color是哪里來的嗎?假設(shè)我們需要字體大小,你知道去哪個文件修改嗎?另外,你怎么保證同時引用mixin與a的時候,他們之間有沒有可能存在同名的變量?那誰覆蓋誰呢?這些問題看起來很小,但是當(dāng)你項(xiàng)目規(guī)模大的時候,這可能是無法挽回的災(zāi)難(嚇唬誰呢???)。

        場景二:假設(shè)我們的項(xiàng)目有一個主題色,邊框、tab背景、導(dǎo)航欄背景,以及字體顏色等等,都是這個主題色,為了方便使用,不想總是用取色器去取值,于是我們在mixin中定義了一個全局變量$color: #ff9900,然后就可以愉快地到處使用了!

        整個網(wǎng)站開發(fā)完了,一個月后,設(shè)計(jì)師突然過來跟你說:“老板說,這個主題色要改改,有點(diǎn)土,咱們換個大紅。”,于是你一臉不情愿然而內(nèi)心卻竊喜地打開mixin,把$color的值改成了大紅,然后得瑟地對設(shè)計(jì)師說:“幸好我早有準(zhǔn)備,搞定了,你看看吧。”,保存,打開頁面一看,設(shè)計(jì)師和你的臉都綠了,頁面怎么這么丑,有些字原本是主題色,但背景是紅色,而現(xiàn)在一改,整塊都變成紅的,內(nèi)容都看不清了,有些邊框原本就是紅色的,但是字體是原本的主題色,然而現(xiàn)在一改,邊框跟字體都變成紅的了。

        設(shè)計(jì)師:“不不不,我只是想把背景顏色改一下。”

        你:“你不是說改主題色嗎?那就是所有的地方啊。”

        設(shè)計(jì)師:“不用,改背景就好了。”

        你:“不行啊。。。”

        設(shè)計(jì)師:“為什么不行,不就是改個背景顏色嗎?怎么設(shè)置的就怎么改回來呀。”

        你:“不是你想的那么簡單。。。”

        ……

        好吧我就是嚇唬你的,你要是特能折騰那么這些都不叫事兒。

        所以我們需要對(全局)變量進(jìn)行管理,就像我們當(dāng)初管理mixin那樣,不能想在哪里定義就在哪里定義,也不能動不動就修改一個全局變量:

        全局變量只在mixin中定義,其他scss文件定義的變量(無論是暴露到全局還是局部)都只看作局部變量,不在當(dāng)前文件以外的地方使用(即便是在能引用到的情況下,也避免使用);

        需要使用全局變量的地方直接import mixin;

        一般來說,定義全局變量應(yīng)該慎重,全局變量的數(shù)量應(yīng)該盡量少;

        盡可能不改動,如果需求變動,除非是對用途十分確定的情況,否則請新增一個全局變量來逐步替換需要修改的地方;

        不要使用太過籠統(tǒng)的名詞來作為全局變量,比如color,建議直接是用色值的描述,比如$orange: #ff9900,這使得我們在維護(hù)上更方便擴(kuò)展,如果色值需要修改,但是又不是所有的地方都需要修改,那么我們可以新定義一個變量來擴(kuò)展它,比如$red: red。

        這些點(diǎn)說起來都有點(diǎn)飄忽,事實(shí)上也確實(shí)很難說明白為什么要這么做,畢竟都是經(jīng)驗(yàn)總結(jié),所以大家不妨先熟悉使用sass一段時間之后,再來細(xì)細(xì)思考這些問題。

        注意,以上講的這些都不是死規(guī)定,在某些時候,這個規(guī)范是需要根據(jù)實(shí)際項(xiàng)目而做調(diào)整的,就比如我們之后要講到的SPA。十全十美的項(xiàng)目是不存在的,也不存在能適用所有項(xiàng)目的開發(fā)模式,因地制宜才能更好地解決問題。而且我們目前提到的問題都不是致命的,致命的問題在上一節(jié)我們制定規(guī)范的時候已經(jīng)避開了。

        調(diào)用模塊

        問題,在哪里調(diào)用模塊?

        答,頁面scss。

        在頁面scss中調(diào)用模塊是一個好習(xí)慣,它使得我們在每個頁面所用到的模塊既是一致的又是互相隔離的,不像在common中直接引用模塊那樣,使得一個頁面scss還沒有內(nèi)容的時候就已經(jīng)被很多模塊名污染了。

        再提個問題,在頁面scss的哪里調(diào)用模塊?

        例一,根類外:

        // index.scss

        @import './common';

        @import './mixin';

        @include m-nav;

        @include m-news;

        @include m-copy_right;

        .g-index {

        ...

        }

        例二,根類內(nèi):

        // index.scss

        @import './common';

        @import './mixin';

        .g-index {

        @include m-nav;

        @include m-news;

        @include m-copy_right;

        ...

        }

        目前為止,這兩種方式都是可以的,至于我為什么用“目前為止”這個詞,那是因?yàn)槲覀兒竺鎸⒁v到的SPA,如果用例一的方式是有問題的。所以我比較鼓勵使用例二的方式。當(dāng)然,我說了,目前為止例一也是沒問題的。

        性能優(yōu)化

        目前為止,我們的模塊化工作已經(jīng)算是完成了,其實(shí)已經(jīng)可以收工了。不過我們還是可以稍微做一下優(yōu)化。

        1、緩存

        我們需要考慮一個問題:緩存。

        緩存是我們web開發(fā)中最常見的情況之一,很多時候我們都需要跟緩存打交道,特別是在做性能優(yōu)化的時候。

        一般來說,靜態(tài)資源在被加載到瀏覽器之后,瀏覽器會把它本地緩存下來,以便下次請求同個資源的時候可以快速響應(yīng),不需要再去遠(yuǎn)程服務(wù)器加載。

        我們就css來說,假設(shè)我們按照原來的方式,使用多個link去加載reset、bootstrap、common、index這幾個文件的話,這幾個文件都會被緩存下來,以使得下次再訪問這個頁面,這個頁面的加載速度會快很多。

        如果是從index頁面跳轉(zhuǎn)到about頁面呢?你會發(fā)現(xiàn)也很快,因?yàn)閍bout頁面的全局css(reset、bootstrap、common)和index頁面是一樣的,而它們在你訪問index的時候,已經(jīng)加載過了,得益于緩存的作用,之后的頁面打開都快。

        我們現(xiàn)在的方式是,一個頁面所用到的所有css文件都被合并成一個,也就不存在相同的文件可以利用緩存這樣的優(yōu)勢了。

        那我們有辦法改進(jìn)嗎?有的!我們只需要把common獨(dú)立出來,那么common就可以做為被緩存的公共文件了。最終我們從一個頁面只引用一個文件變成了一個頁面引用兩個文件,即common和頁面css:

        // common.scss

        @import './reset';

        @import './bootstrap.min';

        @import './mixin';

        // index.scss

        @import './mixin';

        .g-index {

        ...

        }

        注意,不同于之前,我們這里的index.scss不再引入common.scss,所以我們最終是得到了兩個css文件,而common.css是在所有頁面中通過link標(biāo)簽引入的。

        如此一來,我們就實(shí)現(xiàn)了既能夠合并文件,減少請求數(shù),又可以利用緩存,提高加載速度。

        2、壓縮

        代碼壓縮是優(yōu)化工作中最基本的一步,css的壓縮空間是很大的,尤其是我們這種 垂直的書寫方式 ,壓縮起來是相當(dāng)高效的。

        在sass中這很簡單,sass在編譯的時候提供了幾種模式,其中的compressed模式是最高效的壓縮模式,記得在編譯打包的時候選擇compressed模式就行了。

        總結(jié)

        總的來說,預(yù)處理語言在使我們編程更加美好的同時,也使得規(guī)范更加的完善。在css本身無法實(shí)現(xiàn)的情況下,我們通過工具來完成了模塊化開發(fā)。

      【CSS預(yù)處理語言的模塊化實(shí)踐實(shí)例】相關(guān)文章:

      jquery獲取css中的選擇器用法實(shí)例講解10-05

      CSS實(shí)用教程:CSS命名10-05

      div+css必看的css重則06-27

      css 書寫技巧 CSS 技巧教程簡介07-02

      jQuery css方法動態(tài)修改CSS屬性07-06

      css的基本語法07-16

      css基礎(chǔ)教程之CSS基礎(chǔ)語法欣賞08-22

      CSS制作教程08-11

      css屬性定位教程07-23

      CSS入門教程09-05

      主站蜘蛛池模板: 售楼小姐的销售秘密在线观看| 《迷宫1997版》在线观看| 电视剧理发师全集| 模特参赛宣言| 电视剧六姊妹剧情| 《渔夫的老婆》赛仑版| 追踪者第二季电视剧| 赵氏孤儿 电影简介| 爱我几何《莫妮卡》免费看| 成化十四年电视剧免费观看 | 搞笑一家人国语版1| 预言者 电影| 金瓶莲手机免费看| 肉肉的小黄车| 黑白配国语版免费观看中文版| 墓道电视剧| 食物链2大尺寸片段| 黑龙江280分上本科说明什么| 无尽情爱 电视剧| 一线生机 电影| 情满雪阳花电视剧全集| 蒋玲玲| 贤妻电视剧全集下载| 动画片美猴王| 《需要爸爸播种》英文名怎么写| 我知道我爱你电视剧| 神战权力之眼在线高清免费观看| 《需要爸爸播种子》免费观看在线播放_HD/未删减_1080P高清电影完整版 - 天堂 | 维修人员的培训中字版免费| 车内疯狂打扑克了一夜| 清风阁我爱干视频| 好男儿之情感护理电视剧| 当穿越变成重生| 京香主演电影完整版免费在线观看 | 叶罗丽精灵梦第二季全集| 电影《官人我要》免费观看国语| 比悲伤更悲伤的故事| 女忍大桥未久无删减版电影| 黏糊糊的你| 美丽的小蜜桃4中国版演唱者是谁| 高雅监狱| 我是谁电视剧36集完整版 | 消失的十一层 电视剧| 漫长的季节电视剧免费观看完整版| 韩剧朋友的母亲 双字id| 少年包青天2部| 美国86农场主女儿| 人面兽心在线播放| 哆啦a梦电影国语| 麦乐迪女超人的屈辱无删减版 | 遇见花香的那一刻| 遥远的距离大结局| 坎贝奇的《无憾》电影| 看了下面会流水的视频| 公与媳2中字HD中字| 齐天大圣孙悟空陈浩民全集| 海贼王中文版| 意大利《八尺夫人》| 郑成月去世| 谍影电视剧全集免费播放| 村妓妻子校友二| 人猿泰山 hr| 贝多芬小姐的启濛| 老同学6普通话免费版| 姚乐怡 三级| 正在播放:最棒的小三沼泽 与不干涉工作和家庭、只有做爱理想关系的三上悠... | 大岛由加利电影全集| 新女人我最大| 杨敏思版电视剧第二回| 美国版4娃娃脸免费观看| 《玛克辛》电影| 高清盐沼之下| 战狼6高清国语免费观看影视大全下载什么借钱平台好的 | 戏台电影陈佩斯抢先版免费看| 《特殊的治疗1》| 光荣大地电视剧全集在线观看| 唐探1900电影免费播放| 保姆的特别待遇2电影| 精忠岳飞电视剧全集40| 巜交换上司的秘书2中文电影 | 唐伯虎vlog免费观看全集1446| 扫黑风暴11集| 粉色大白菜法国原版| 忍者龟1| 最近韩国电影高清免费观看HD| 《法国空8》完整版| 斗罗大陆119集免费观看 | 河南四平调小包公| 三国机密之潜龙在渊免费观看| 坎贝奇无憾免费无删减在线观看| 盲井王宝强| 酋长之女2:狂飙2| 炸天小姐在线完整版| 毒战完整版免费观看| 无双短剧完整版免费播放| 仙逆在线| 功夫熊猫盖世传奇第二季| 消失的她完整版高清免费观看| 小鬼子走着瞧全集百度影音| 韩国《色诱女教师》| 金装四大才子粤语版| 二十四史前四史| 坎贝尔《无憾》在线观看| 画满一张纸| 《3对1:两个人一次性体检》免费观看 | 暴劫倾情下载| 女海盗16高清免费观看| 聊斋之辛十四娘| 熊出没过年| 爱我几何网址| 老严有女不愁嫁片尾曲| 免费观看老妇人的电视剧大全| 电视剧周生如故全集免费观看| 皇朝博美犬舍| 爱上大佬360第四季| 海关战线 电影| 我是特种兵第二部全集 | 希望你不要太介意| 大宋少年志1| 需要爸爸的种子伦理片在线播放| 金惠秀老千| 抵债的朋友麦子| 高清如果不是本命就好了未删减| 大神与七个伙伴| 91制造厂在线免费观看| 红楼残梦电影完整版免费观看| 最后的华雨滋动漫在线观看| 五月深爱网| 木地板保养| 美国禁忌睫毛膏在线观看| 《便利店兼职生》| 目中无人2一口气看完| 东陵大盗| 年代秀20130315| 墨攻电影| 方清平单口相声下载| 活佛济公 第三部| 秀身材在线播放免费观看电视剧| 我知道我爱你免费观看| jizz美国| 赌侠2电影| 女神蒙上眼| 陪部长去出差喝醉| 四平青年之喋血曼谷免费观看完整| 犬夜叉168| 黑暗荣耀第二集3分08秒| 半夜被口醒是一种什么样的感受| 艾莉拉特满天星七个男子汉| 妹妹的朋友视频| 女超人麦乐迪无删减版百度网盘资源| 为你着了迷| 我 机器人| 坎贝奇在线观看| 折纸百科| 呱呱呱视频高清观看| 打扑克免费观看| 性生交大片免费看女人按摩| 台湾新婚之喜| 精绝古城免费完整版| 爱就宅一起优酷| 3d柔铺团之极宝乐鉴宝鉴电影中文在线观看演 | 鹰隼大队电视剧| 俘虏之村| 刷子李课件| 麻辣变形计2| 志在出位| 我怕来不及剧情介绍| 电影村姑完整版| 《狙击手-斯莫希军官》| 世间道电视剧全集播放免费| 隔壁邻居很美味电影在线观看免费高清| 东北小年| 卷土重来电影| 国产在线观看免费全集电视剧网站有| 李德印42式太极剑| 孤独的美食家2024| 李嘉诚次子出席重要论坛| 年轻人在线播放| 《代替满足妻子》电影| 济宁二手车市场| 你好 李焕英在线观看| 哇嘎高清电影在线播放| 新娘十八岁韩剧| 恐怖浴室| 《金牌销售秘密1| 斗罗大陆第134集免费| 朝鲜总统金胖子名字叫什么| 高清《胆小鬼》电视剧| 龙者罗拉| 麦乐迪《女超人》在线播放| 恶搞之家拍脏片八季是哪一集| 欧洲股市开盘暴跌| 《妈妈爱上儿子同学》结局全集| 怀念战友原唱歌词| 牙医姊妹电影完整版| 斗士电影完整版观看| 窈窕淑女免费观看完整版| 雪地黄金犬| 亲爱的小孩免费看电视剧| 中国梦之声第一季| 哇嘎电影在线播放免费版 | 龙卷风优化| 男性按摩师| 出师一表真名世| 昆仑神宫 电视剧| 牙医郝板栗完整版电视剧在线观看| 摩登家庭第二季在线| 请成为我的家人在线观看| 女性3对1:三人一次性体检电影| 《华胥引》| 狼狈百度影音| 《停不了的爱》床戏| 马斯克笑称不用去劳改营了| HR版女版壮志凌云2010| 一人之下免费看| 平凡之路多少集| 离山野人之谜| 山村姑娘| 《激战丛林》意大利版| 天上人间高清| 登陆之日电影| 逃学外传| 嫣语赋在线观看| 美国坎贝奇《品味人生无憾》| 年轻的母亲韩剧电视剧全集| 满天星在线电影免费高清观看| 战狼四| 风尘女画家| 银魂电影| 酒店全集1-5| 月亮女王| 电影十二生肖在线观看| 农民伯伯乡下妹二国语版电影高清免费| 国王在冬眠在线观看全集电影| 怒火重案| ⅩL司令真人| 徐若瑄 av| 舒淇电影| 电影《女心理师》| 东北往事之黑道风云全集| 年轻瘦了4| 搏击之王之反击电影完整版免费观看 | 老鹰都开始抓鲨鱼了| 好男人手机在线观看免费| 风满女管家| 寒舍不寒小品| 地心历险记2:神秘岛| 加勒比海盗成人版无删减免费观看 | 飞刀问情高清| 终极快递国语| 售楼小姐的销售秘密在线观看| 向涟苍生献上纯洁动漫完整版| 麦乐迪家庭矛盾完整版| 轩辕剑之天之痕26| 中文字Dl幕岳 和女| 爱情有烟火全集免费观看| 日本金银1-5普通话版| 敢死队 qvod| 不能错过的只有你40集| 《房屋销售的秘密》日本| 善良的她在线观看| 都市猎人| 间之楔旧版| 爱不爱都是错| 宿迁市| 留存的爱全集观看| 玛丽和乔治英剧在线观看| 石屏县| 公子不可求| 解语花电影完整版在线| 《美容院的特殊待遇》| 久久偷看各类WC女厕嘘嘘偷窃| 绝爱电视剧35集免费观看全集播放| 战狼6高清完整免费观看国语下载 聊斋奇谭3之妖女谭2免费观看 | 战狼6免费完整高清版在线观看高清| 张震巩俐| 腾飞担保公司| 女律师的堕落电影在线观看| 你们一个一个来我好痛| 爱的阶梯国语版| 火山口两个人没有打马赛电影 | 战狼9免费高清版999| 湖南卫视平民英雄| 她在丈夫身边被耍了| 法国炸天小姐1983| 电影《误杀3》免费观看| 电视剧麦香| 牙医姐妹电影在线观看| 诡劫 电影| 大地10中文在线观看免费版高清| 白衣女超人满天星版| 英格兰VS伊朗直播| 花非花雾非雾完整版| 新金银屏1-5美国普通话| 跪下吃他胯下的体育生H| 古惑仔2高清| 法国空乘11大结局| 逆局全24集在线播放| 老和尚与小姑娘的人物性格| 长泽つぐみ| 曝福建四所野鸡大学| 嘉科米妮| 菜刀班尖刀连| 日本A片巜出轨上司的人妻| 大奉打更人免费观看全集微博| 日本大妈| 桃花免费高清在线观看| 郝板栗黑丝袜诱惑人的电影| 台剧《过界爱》在线观看全集| 怡红院官网| 真假学园第一季| 法国电影《梦幻军事基地》在线播放| 日本男星梶田冬磨去世| 南洋十大邪术 电影| 小早川怜子丰满的继牳| 系统激活短剧全集| 美国达人秀第六季| 色魔工厂| 八星报喜杨幂| 小羊没烦恼3000一晚| 罗丽星克莱尔在线观看免费全集| 死亡账号电视剧| 电视剧闪耀的她免费观看全集高清| 机动战士z高达剧场版1| 日本妈妈和儿子A级片| 韩国禁令啥意思| 大国手之棋行江湖| 站着再来一次第26集讲什么| 青春荷尔蒙1| 生化危机4战神再生电影| 替夫还债3在线观看完整版中文电影| 热舞情天| 孙红雷20集全免费观看| 爸爸的种子2| 《匹兹堡医护前线 第二季》| 我的朋友很少第二季| 战狼欧式少女全集观看高清| 郑中基宣布退圈| 天与地百度影音| 法国女超人无删减| 金瓶梅高清完整版百度影音| 你是我的荣耀免费观看完整版西瓜 | 陶笛宗次郎| 杰森斯坦森回应爱称郭达 | 爱的阴暗面 百度影音| 坎贝奇《无憾》完整版电影在线观看| 钟汉良版天龙八部| 哈利波特1英文版电影| JUQ–945在线播放| 航拍下的浦东封控第一天| 仁心解码电视剧| 极品教师第二季免费观看完整版 | 哇嘎电影全集在线观看| 变形记20120202| 水浒之英雄本色| 《驯服》电影完整版丽卡结局是什么| 生化危机惩罚| 纸箱包子| 金瓶梅1一5集高清视频手机免费| 严础熙三级未删减版观看| 火山口电影完整版免费| 嫂子的职业在线免费观看| 邻家女人丈夫不在的日子简介| 《发财日记》免费观看| 追凶者也 电影| 《父女快乐》电影| 朱墙青云路短剧免费观看| 深圳合租记| 穆桂英三级DVD| 与凤行电视剧免费观看在线播放| 陆贞传奇18| 逐爱之心2023菲律宾正版| 《急诊护士》电影在线免费观看| 变异巨蟒在线播放| 真假学园第一季| 法国空乘4大结局| 最近新上的电视剧| 怒水西流 电影| 需要爸爸的播种在线观看| 爱上特种兵全集| 隐藏的面孔韩国电影在线观看| 黑白配高清完整版在线观看大潘小品好感/| 一见你就笑| 爱我几何完整版免费观看原声在线| 《毒战2》电影| 张玉贞国语版全集| 屠宰呕吐娃娃视频完整版免费观看| 炸元宵不爆开不崩油好方法| 一世清欢短剧在线观看| 公立之浮之中字2023最新版| 铃原爱蜜莉| 藏精阁在线观看| 灭火宝贝电影在线看完整版高清| 爱我几何原版无删| 韩国产理伦片在线观看| 妈妈的味道完整手机版| 《父女快乐》电影| 电视剧妈祖免费观看全集| 急诊护士电影免费观看完整版| 映山红简谱| 飞屋环游记中文版免费观看| 电视剧开端在线观看| 战至巅峰第三季2024年播出| 维修电工的艳遇在线观看| 长空之王电影| 睫毛膏4美版免费观看| 《束缚游戏》| 闪耀的她电视剧免费观看全集| scp电影| 懒猫和他的狮子倒影在线观看| 周弘版村枝(原版)| 上海女教师出轨| 波拉特下载| lx司令动漫第一季免费观看 | 凤凰的巫女| 俘虏之锁~处女们淫秽的束缚~| 最后一战电视剧| 阿虎视频免费观看| 女军医免费完整版| 法医秦明张若昀全集免费| 花朝秋月夜电视剧免费观看全集| 功夫熊猫盖世传奇第二季| 《迪拜的女孩2满天星》在线观看| 《正义联盟2》电影| 封神英雄2| 法国电影《女超人》未删减版| 免费夫妻生活片AV| 沈腾马丽小品《寒舍不寒》| 千次的吻电视剧| 西班牙电视剧《爱的释放》| 蹦迪现场| 电影卖春| 男人和女人一起愁愁愁电视剧免费观op红楼梦| 武动乾坤第5季免费播放| 魔道祖师动画| 浦江县| 青楼名妓电视剧观看| 侣行攻略之确认你是我的人| xnxnx18美女| 日本空姐2019| 美女在线观看完整版电视剧| 新还珠格格高清在线观看| 草原牧歌原唱| 后宫露营第一季未增减0.0.0.对应第2集| 半是蜜糖半是伤免费观看全集完整版| 不是我不爱你歌词| 酒店1-45集全免费观看国内| 电影在线观看完整版免费励志| 我的表妹在线观看| 德云社相声春晚| 《法国空乘5》在线看| 美国就朝鲜发射导弹宣布制裁| 谎言大作战| 秋瓷炫生死决断完整版在线观看| 姐姐的朋友未删减版| 刀郎经纪公司回应新歌争议| 韩国电影《办公室》7| 壮志凌云2(啄木鸟)在线观看| 突围全集| 哆啦a梦免费版在线观看| 满天星在线| 五号特工组2| 大嫁风尚免费观看全集完整版高清| 快乐至死韩剧在线播放免费 | 翁止熄痒禁伦短文合集免费视频| 季雨倾城未删减| 美国需要爸爸的种子在线| 男排亚洲杯决赛直播| 豪情夜生活| 安娜女子监狱的电影| 黑帮大佬和他的365天完整版| 浴血黑帮第四季| 妻子的反攻| 善良的母亲中字开头9个字| 大漠苍狼2| 金田一粤语| 五家渠市| 《隔山有眼3:起源》电影| E版人猿泰山1995故事简介| 钢壳都市| 借种中文字幕HD中字| 当我遇上你无处可逃| 《超女麦乐迪》完整版| 我叫白小飞第二季| 银魂119| 美女乳头按摩电影| 肥猫寻亲记之明天会更好| 姑嫂一家亲| 薛丁山演员表全部| 美景之屋6:我的完美人生免费观看完整版 | 战狼3免费高清版电影 | 陈宝莲电影《满天星》| 孩子王电影| 电视剧真爱诺言| 天使的契约2罗丽·星克莱尔| 神印王座动漫免费观看| 珠光宝气| 终极三国第一季| 短剧《撕夜》免费观看| 土耳其电影爱上大妈| 白雪公主成人H欧美| 饥饿游戏1 电影| 狗剩快跑全集在线免费观看| 杨敏1—5集免费观看电视剧下载| 社长与下属妻子韩国| 春丽传奇| 火凤凰33集| 《性的暴行》1在线观看| 妖精的尾巴103| 后藤えり子| 垦利地震| 售楼小姐的秘密在线观看吴梦梦| 九条的大罪全集观看| 惊变电影高清完整视频| 《交通费》电影| 浮之公9| 麦子交换1的中文翻译曼哪| 瘦身男女粤语| 守候我们的幸福在线观看| 奇怪的美容院2| 雪中悍刀行电视剧| 电吉他solo教学| 大侦探福尔摩斯电影| 潘金梅三级做爰| 痞子英雄2:黎明升起| 白石茉莉| 缉枪 电影免费观看完整| 需要爸爸播种英文免费看| 小丈夫 电视剧| 王牌对王牌第三季| 电影《牙医姐妹》播放| 粉红大白菜在线免费观看| 好奇实验室| 妻子的浪漫旅行第五季| 新有菜电影在线观看| 夫妻相隔5小时先后坠楼身亡 | 白峰美羽电影在线| 小舍得电视剧全集免费| 第八个嫌疑人| 肥龙过江粤语在线| 锵锵锵完整版在线观看高清完整版| 战长沙片花| 庆余年免费观看| 真爱惹的祸| 酒店激战3| 漂亮的妹妹中字ID| 瑜伽学院 电影| 朝阳县| 美丽的小蜜在线观看完整版| 乡村到京:弃少崛起全集免费| 一拳超人最强之男觉醒| xl司令动漫第一季| 特殊的滋味在线观看视频| 锦绣安宁电视剧36集播放| 短剧《萌孙出击》免费播放| 《V酒店》第一季完整版| 高清《黎明决战》电视剧| 尤里西斯的生命之旅| 天涯左央事件| 《农场保卫战》满天星在线播放| 这里是预备自卫英雄补?!电视剧 | 深海利剑演员表| 凯登克罗斯合集| 寂寞欢场| 漂亮的年轻继坶中文2| 男网红在泰国杀害男伴分尸被捕| 安斋拉拉作品在线观看| 轩辕剑之天之痕电视剧免费观看| 寄往电视台的神秘影像未删减| 《女海盗1》美版免费观看| 玉蒲团 叶子楣| 青面修罗电影在线观看免费| 杨思敏版金瓶梅| 日韩做Aj的视频| 秘密潜入2完整版| 指环王在线观看| 灭火宝贝2斯托雅| xl司令全集免费观看动漫在线播放 | 激战后厨1至5外出| 神经侠侣粤语| 嫡女毒妃:重生飒爽短剧全集| 陪讨厌部长去出差旅| 遭义子侵犯的寡妇日韩电影 | 《牙医姐妹》完整版高清在线观看| 十六岁1974美国原版| 《无赦之罪》免费观看全集高清| 犬夜叉168| 爱你几何免费完整版| 《投行风云 第四季》| 在续意难忘| 娜塔莎电影| 卖房子的女销售在线| 天国阶梯中文版| 《我要成为超级巨星》| 《法国空乘11》播放了吗| 卖房子的销售电影| 血色玫瑰2| 我是刑警40集免费播出| 新乡县| 红剑电视剧| 我是哪吒 电影| 婚外初夜 完整版| 除却巫山海外版无删减| 世界第一初恋第二季10| 亲吻姐姐第1季全集| 熊出没过年动画片| 日本空姐2019年上映时间| 馒头逼电影在线观看| 梁朝伟版绝代双骄| 侦探成旭2千年迷局| 新员工2中字ID| 电影《牙医郝板栗》免费观看| 大秦帝国电视剧下载| 敖婿电视剧免费观看| 木兰从军免费| 阿宾房东太太视频| 聊斋艳谭全集在线观看| 电影辛亥革命| 水落石出第一部高清| 激情从林在线观看| 春雨全集在线观看免费| 大头的小媳妇| 我和继拇做爰6| 明星脸测试| 泡沫爱情电视剧| 我俩没有明天| 美国式的家庭忌讳1—6 | 韩剧《下属的未婚妻》主演名单表 | 人鬼神 电影| 假如爱有天意电影免费观看| 爱我几何无删减| 种其因者 须食其果短剧免费观看 大漠之战高清免费观看完整版 | 无心法师3在线观看免费完整版 | 河南坠子小八义| 战狼6在线观看| 加勒比女海盗1在线观看| 五哈第五季免费观看最新一期| 孩子王在线观看| 跟部长出差的日子在线观看| 终极一班3全集40高清| 《痴心劫》理伦片在线观看| 数学皇冠上的明珠| 玄女心经2免费观看全集| 好妈妈3高清迅雷在线观看| 赛仑版渔夫和他的妻子| 刘亦菲晒38岁生日照| 美丽的小蜜蜂4美丽人生| 入室强奸的三级片| 结过一次了电视剧| 风语者高清| 木府风云39集| 需要爸爸播种2| 电视剧天梯| 辣椒酱的制作方法及配料| 雪狼谷百度影音| 美国壮志凌云2011第八放映像| 韩版 花样男子| 电视剧天地粮人| 母亲主动给孩子降火好吗| 我要变坏3| 漂亮妈妈9中字开头歌曲 | 试戏没忍住C进去了小说 | 麻吉弟弟| 热带雨电影完整版| 插曲的痛60全集免费观看高清版校园青| 苹果影片| 电视剧千娇百媚| 吞噬星空动漫在线观看39集| 扫黑风暴 在线播放| 今夜无人入眠免费观看| 灵媒女主| 非你莫属2010| 美女大学生出家| 战狼6欧式少女全集资源| 44毛网| 我的丑娘续集| 张学良新传| xl真人版| 地雷战电影| 东京异种 电影| 电影《法国空乘4》免费| 亲爱的客栈2| 天国的女儿 原版| 徐娇成绩全a| 吴健版农民伯伯2国语版百度云资源| 开船视频原声| 高清《朋友的妻子》5| 命中注定我爱你20| 无颜之月免费观看完整版电视剧| 战狼9欧式少女高清资源下载 | 银魂175| 周杰伦迷魂曲| 决战玄武门电视剧| 双人调情按摩三级片在线观看 | 熊出没之城市大冒险| 筐出未来| 公的浮之9公的| 法国空姐3免费高清原声满天星奔跑吧高压 | 《花间提壶方大厨》| 奇妙萌可第四季免费观看| 《聊斋电影之女儿国》| 电影《招待外卖员》免费播放 | 本乡爱电影在线观看免费最新版大全| 假面骑士龙骑美版| 特殊美容院5在线观看| 变形金刚故事| 新抱喜相逢粤语| 97在线观看免费高清电视剧大全八戒 | 广宁县| 巜人妻初次按摩| 放弃我抓紧我电视剧| 小蜜桃免费看| 两个小婕子和我做愛| 需要爸爸播种籽第二季| 铠甲勇士铠传| 电脑蜜桃成熟时33d在线看 | 京胡大赛| 宝宝巴士小苹果| 《东北剿匪记》电视剧| 机械密封原理| omoflow在线观看| 除却巫山| 章莹颖父亲当司机月薪2050元| 厨神电视剧| 买房子的女销售2| 《示范避孕套》日剧| 恶作剧之吻1台湾版| 白色相簿2完整版观看| 荷尔蒙6免费中文版| 《爱我几何》完整版原版| 变身电影| 新还珠格格全集高清| 我的公主国语版| 和喜玉兰免费观看完整版高清| 妖艳女忍者传紫雨篇| 棋士电视剧在线观看免费高清版| 高清留存的爱未删减| 最新泰剧| 大黑屌在线观看| 我家有喜事电视剧全集免费观看| 神偷奶爸1国语版免费完整版| 公主摊牌:我是隐藏大佬短剧全集| 蓝色生死恋韩剧免费完整版| 莫妮卡《爱我几何》电影免费无删减 | 凶宅胭脂国语免费观看完整版高清| 爱恋2015在线观看完整免费法剧| 东北抗联电视剧| 凌云之志满天星法版免费观看| 小李飞刀在线观看| 仙逆在线看| 动漫在线观看免费观看| 战狼9女版免费全集| 大秦帝国第2部| 一起又看流星雨吧| 非常人贩2在线观看| 销售冠军的售楼方式电影| 学渣学霸:高考状元全集免费| 北京夜店2女神本色| 丁丁历险记 电影| 青蛇劫起2在线观看免费| 坎贝奇成人电影无憾| 时光恋人电影| 新上海滩| 无赖勇者的鬼畜美学| 《九重紫》在线观看| 菲律宾一级色情电影需要爸爸播种子 | 放弃抵抗吧亚当君接档在线观看| 私人教练1983年意大利| 我天命大反派动漫在线观看第二季| 勇敢的心电视剧全集在线观看76 | 北京夜店2女神本色| 地宫下的女人| 出差未婚妻遇到渣男前任日剧| 鱼夫荒野史免费观看完整版| 少年包青天2| 风语者高清| 绿灯侠在线观看| 空蝉之森手机版| 六魔女下载| 导火线粤语| 朝国的继4| 云翔电影游| qingchunqi| 生死线在线观看| 张警官三部曲在线观| 《妙手》短剧全集免费观看| 广西一保安砍死2名业主| 开心公寓| 妈妈的男朋友电视剧免费观看全集| 荣誉之战满天星在线播放| 你和我的倾城时光歌曲| 水电工的艳遇日韩AV电影| 白老妇是啥| 超脑48小时| 农民伯伯下乡3国语版吴健视频| 光头强回家过年| 进击的巨人第四季14| 海洋之恋番外篇| 地心历险记2 720P| 大牛影库战狼6免费观看| 大胸姑妈| 誓言永恒在线观看| 广场舞爱情这杯酒谁喝都得醉| 金梅瓶1至5集免费观看| 汕尾市| 战狼4欧美版免费观看完整版| 迪加奥特曼国语版全集爱奇艺| 飞虎出征电影无删减版| 终极对决电影| 高清《正青春》电视剧| 电影《粉红大白菜》完整版 | 我女朋友的新妈妈双字ID免费 | 三年中国中文电影在线观看| 野花免费观看韩国电影| 幸福的面包| 哈利波特第八部免费观看| 激战丛林》完整版免费| 中国封国最新消息| 侦探成旭2千年迷局| 《北越暴行》免费观看| 巜人妻初次按摩2韩国| 明日边缘2:生死轮回电影完整版| 百万新娘爱无悔| 法国空乘5满天星免费播| 嘎哇在线观看高清电影免费| 无敌幸运星| 花琉璃轶闻电视剧全集免费观看 | 欲望爱人电影线观看完整| 电视连续剧楼外楼免费观看| 渔夫在线观看免费| 高清为你遗憾| 雾都猎狐| 樱桃免费版在线观看电视剧大全| 《战士》凯登克罗斯| 寻龙传说免费观看国语版| 诛仙2电视剧| 雪狼谷百度影音| 《超女麦乐迪》在线播放视频| 山东卫视直播在线观看| 交警 军车| 我和我的祖国免费| 左贡县| 壮志凌云2(啄木鸟)在线观看| 宁波r8事件| 移山倒海樊梨花全集| 韩剧我的小姑子2| 隔山有眼3免费观看完整版高清| 快乐星猫动漫| 儿女情更长电视剧全集| 战狼6加拿大999| 红发女郎下载|