1. 圣石小子粤语,别样幸福全集,箭在弦上大结局,我想打死你,星光灿烂猪八戒,菲律宾美人鱼50集国语,神探夏洛克 第四季,市委书记晚上不打招呼调研被拦

      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

      主站蜘蛛池模板: 柔式手法全套教程视频| 电视剧杨贵妃秘史| 宝藏歌手| 白鸟ゆな| 盛唐风流电影高清版| 笑红颜 电视剧| 琴书罗成算卦| 维斯塔小镇家长会2| 他不适合你歌词| 房奴试爱《高潮》4| 最后的格格全集| 美妙的旋律| 怎么办才好| 羊羔医生| 加勒比海盗免费| 《爸爸种子2》电影| 国家命运剧情| 365天:明日之欲| 伦理电影手机在线高压监狱| 长泽つぐみ| 24小时在线观看免费播放电视剧| 钟馗电视剧| 务川| 高清《朱音落语》电视剧| 电视剧借命而生在线观看| 谢谢你医生在线观看免费完整版| 白蛇传说之法海| 《女兵突击》满天星| 小姑子的味道2韩剧策驰影院| 高清亲爱的,别!未删减| 屠场娃娃完整版高清播放| 铁梨花43集免费观看| 越南战场满天星| 王妃太狂野| 罪罚在线观看完整版全集40| 安徽民间小调| 1987娃娃脸完整版| 女版战狼7在线观看999| 能帮我弄干净吗?| 明星换脸电影高清在线观看完整版| 云海翻腾孙悟空11| 巴西人与禽发生性行为的后果| 女儿情歌曲原唱| 20世纪少女| 需要借爸爸的种子| 鹰什么大队| 忍风战队破里剑者| 成龙历险记中文版| 藏獒多吉全集| 任逍遥电影| 儿子的妻子 电影中文字| 甜蜜专宠我是狱长第二季免费观看| 李英爱主演的电视剧| 长相思2免费观看全集完整版| 大奶按摩电影| 郑州换纱窗| 酒店在线| 公主嫁到剧情介绍| 突围电视剧免费观看| 电影美式忌保罗讳| 《狙击精英:巅峰对决》| 大邱庄卖钢管女视频完整版| 罗马的房子快播| 窃听风云2电影| 美国1—5普通话免费| 杀破狼在线观看完整版免费| 疯狂的爱情电视剧| 于荣光电影全集| 一切都值得 张杰| 僵尸新娘满天星| 亲爱的x| 胜女的代价优酷| 《花与蛇·牙医之绳》| 中森眀莱| xenos陌生人| 一起愁愁愁全部免费播放| 满清禁宫秘史下载| 都市煞星| 美国版荷尔蒙| 七夜雪电视剧免费观看完整版| 黑白配视频免费观看| 安徽卫视甄嬛传首映礼完整版| 一个妈妈的女儿3中字在线观看 | 哈尔滨美食团购| 怎样让小腿变细| 双女任务电影| 电视剧锦衣卫| 真情玫瑰 电视剧| 年轻的女保险销售员免费2| 红嫁衣恐怖电影完整版在线观看 | 天海翼女教师无删减版| 狙击电视剧免费观看完整| 《96分钟:列车爆炸案》| 50岁阿姨电视剧全集免费观看| 宝宝巴士小苹果| 白鹿牺牲最大的一场戏| 麦乐迪马克斯女超人免费观看| 朴妮唛迅雷种子| 今生有你全集免费观看完整版| 牙医姐妹无删减在线观看| 换妻经历| 赛罗奥特曼国语| 《女超人:麦乐迪| 壮志凌云女版满天星| 巡回检察组33| xl司令第八季无马赛| 龙珠z国语版| 独狼电视剧全集高清| 海南一家四口 3人遇害| 《蛟龙行动》在线观看高清电影| 落魄贵族琉璃川在线免费看全集| 鸭王2粤语| 准备击球电视剧| 和部长出差在线观看| 无性不爱| 徐锦江吃叶子楣乳| 女大学生按摩3| 找到你在线观看| 杨坤无所谓| 哇嘎视频在线观看| 三叉戟2 电视剧| 电影爱我多深| 《落魄贵族琉璃川》2集免费观看| 厦门brt公交车爆炸| 穿越火线秒杀| 美式保罗2在线观看免费| 完美有多美| 火烧云全集| 美容院特殊待遇| 功夫足球粤语版| 囧探佳人下载| 夫妻之间完整版免费韩国电影观看| 无极在线观看| 大胸女友在线| 《护士长》水果派解说| 电视剧兰陵王吧| 亲爱的妈妈4韩国完整版观看| 《美容院:特殊待遇》5| 仙逆最新一集104| 《湄公河行动》电影| 新金银悔5一10普| 香港仔粤语免费观看完整版 | 妻子的情人2| 不良义姐真人版台湾在线观看 | 电影需要爸爸播种| 跳进地理书的旅行第二季| 韩国三级《交换温柔》| 《隔山有眼3:起源》2025| 替嫁新娘全集免费| 电视剧抗战奇侠| 桐柏县| 卑劣的街头在线观看| 吞噬星空动漫在线观看39集| 暴躁老妈1-46集在线观看电视剧 | 朋友的妈妈2中字线观高清| 家庭矛盾4麦乐迪在线观看| 我是造型师| 一拳超人ova| 1PPD%82女友巨乳姐内电影 | 我家有个赵大咪主题曲| 百万新娘之爱无悔72集| 梅花红桃电视剧免费观看完整版| 韩国演艺圈| 唐砖电视剧| 已婚妇女火辣的下午电影| 嘿咻嘿咻| 闪耀的她高清免费观看全集完整版| 伊波拉病毒无删减免费观看完整国语版| 公媳在线观看| 战狼6欧美版免费观看完整版国语在线| 斗罗大陆2绝世唐门在线| 小泽玛利亚 bt| 兰姨悄悄关上房门去了次卧| 入室暴行电影在线看| 判处勇者刑全集观看| 电影青苹果| 高压监狱完整版在线观看完整免费高清原声满天| 超级碗中场秀| 《特殊面试2》| 《肉蔻之香》法国手机在线观看| 授她以柄电视剧免费播放| 蒲松龄国语| 女版战狼6免费| 因为我太傻中文歌词| 《禁忌》1980无删减在线观看| 火山两人没有打马赛| 一门三司令全集| 广场舞阿哥阿妹背面| 初体验5电视剧| 奶爸战神人生:打仗带娃全集免费 | 《猎杀》免费观看| 世界奇妙物语2012| 《迪拜的女孩2满天星》| 北京麻辣香锅| 逆风而行电视剧全集免费版| 那年我们的夏天| 女超人麦乐迪无删减版高清在线播放 | 年经母年经3的| 养鬼吃人7| 加利福尼亚山谷女孩们| 海林市| 《特殊的保险推销员》| 澳门回归22周年| 再向虎山行连续剧83版免费观看 | 电影《17.3》完整版| 霜降是什么时候| 韩国电影四个已婚妇女去按摩| 卜案演员表| 八佰在线观看| 俄罗斯版《女儿国》2| 皓龙长空短剧全集免费| 假面 韩国| 龙的传人周星驰| 韩国女主叫梅川,丈夫叫小帅的电影 | 《女销售员:满天星》电影简介 | 咋们结婚了吧| 相约青春 电视剧| 木下在线| 电视剧海上繁花免费观看| 天降之物final| 《印尼空姐》免费观看完整版高清| 吴京电视剧全集| 红娘子大结局| 《替夫还债》高清完整版中字| 韩剧逆转女王国语版| 24小时末路重生在线观看完整版 | 千金女神免费观看完整版| 密战电视剧在线播放| 猫和老鼠四川版全集| 1995年人猿泰山意大利版| 余罪第二季免费观看| 爱情睡醒了28| 恶搞之家第2季| 特殊的滋味在线观看视频| 阿ben 长发妹| 《开放少女2》免费观看| 妻子和部长拍摄广告的电影| 《毒枭:墨西哥》电影免费看| 看电影免费观看完整版| 战狼6高清完整免费999在线观看 | 无间免费观看40集全集| 人猿泰山h版在线播放| 母与子国语免费观看大全电视剧武则 | 假面骑士欧兹| 香港李嘉诚发声| 非诚勿扰20120331| 军装下的绕指柔电视剧在线观看| 能出没之逆转时空| 我和岳交换夫妇交换系列| 《瑜伽裤的狂热》主演佳媛| 世上只有爸爸好| 需要妈妈种籽2| 83射雕英雄传59集国语| 金银悔5—10| 四月一日灵异事件| 她的她和她电视剧| 善良姐姐的朋友| 性感海滩3去码补丁| 浮生若梦电影| 龙腾四海国语| 飞行的绣感| 怪医杜立德3| 白峰美羽在线| 世界大力士争霸赛| 年轻的阿姨6有限公司中字974| 借种 在线观看| 罗莉的时间| 傻儿洞房免费观看完整版| 夜车在线观看免费完整版| 色即是空2015字幕| 《夕颜》动漫全集在线观看完整版中| 图书馆的女朋友免费动漫高清电视剧动漫第五集无广告 | 我们的新时代电视剧在线观看全集| 从答应到皇后:宫斗小能手全集免费| 偶像活动stars| 爱你几何在线观看完整免费| 雾都猎狐| 凯登版《交易》啄木鸟英文| 寡妇女人免费观看全集高清电视剧| 酒店1~80集| 法国电影《男爵夫人2》| 神话优酷| 好友妈妈| 伦理片维修工的艳遇电日本| 霍元甲在线观看| 和尚爱上女子日剧的电视剧| 台版1987渔夫荒野史记在线看 | 巨乳学院漫画| 《越南妹》99号电影在线观看免费| 秘密花园韩国版| 【性奴俱乐部】(02)| 悬崖之上免费| 荷尔蒙 6| 我家有喜80集全免费播放| 游击英雄| 乘风破浪5免费观看| 女子拒绝表白遭辱骂| 男女一起愁愁愁电影观看全集高清| 同居的日子| 《初恋时间》1-6全集免费观看| 一出好戏免费观看高清| 罗丽星克莱尔迷宫HD版在线观看| 一年一度喜剧大赛第一季免费观看| 右玉在线| 再见 阿郎| 小欢喜电视剧完整版免费观看| 年轻儿媳妇电影日本| 新妈妈完整版| 巜丰年经继拇中文3值得入手吗| 危险伴侣| 时间静止器电影完整版| 斗罗大陆250集全集免费| 知否连续剧全集免费观看| 老板的年轻妻子免费观看电视剧| 门第31集在线观看| 终结者qvod| 宝贝别忍着喷出来| 多情小屋| 古惑仔电影全集国语| 钢壳都市| 被社长戏虐的妻子| 张卫星何赛文| 我恨我痴心演唱会| 跟部长出差的日子在线免费| 人与动物免费观看电视剧完整版| 下海 电视剧| 意大利《激战丛林》电影免费观看 | 有你真好天堂飘雪| 兴国县| 3对1四人一次性体检| 双面特工下载| 旺角的天空3| 《瓜达卢佩的玫瑰》全集| 淮水竹亭在线观看免费完整版| 《梦中的那片海》电视剧| 和部长出差的日子在线观看| 高清《柳舟记》免费观看| 速度与激情11| 快说我和你老公谁厉害| 明星换脸免费观看方法| 忧郁症 电影| 因为爱情有| 人世间58集全集免费看| 坎贝奇三部品味人生在线观| 胡中华坠子| 醉酒寄宿家庭2| 战狼4在线观看完整免费高清| 末日飞船| 沈殿霞追悼会| 热带雨电影在线观看免费版| 《瓦伦蒂娜》真人版| 我们的2018免费观看腾讯视频| 电视剧大漠枪神| 新闻| 两个媳妇日本伦理电影 | 不良人第7季在线观看全集免费高清| 战狼6免费观看完整版下载| 意大利电影爱情与秘密| 你比星光更美丽免费观看全集| 南京人身份证上为啥没省名| 十九岁完整版在线观看好看| 超级碗中场秀| 霜花店qvod| 莫莉1特别的酒店| 甄嬛传39| 速度与激情10 电影| 情迷姐妹| 《双人按摩调情术》| 鬼吹灯之湘西密藏| 电视剧风影全集观看| 《社长夫人的美貌》在线观看| 欲望保姆电影完整版看 | xl司令第一季在线看免费版| 电波女与青春男第一季免费观看| 湘北小成| 丰满的继牳3小早川怜子BD电影 | 老伴电视剧| 姐姐免费观看国语全集| 男男真做露j电影| 做aj免费国语版电视剧| 婆媳的战国时代演员表| 地狱洞电影完整版在线观看| 亚洲激情文学| 神犬奇兵演员表全部| 和讨厌的部长去出差旅| 日本女人的真实生活| 强制兽爱| 公的浮之手中字在线观看| 照亮你电视剧免费观看星辰影视 | 夫妇隔着帘子按摩日本A片电影 | 勇者王粤语| 大内密探之灵灵性性| 多人轮换电影中字 | 诺曼底大风暴| 电影《推油》完整版免费观看 | 莲花楼40集免费播放观看电视剧| 痞子英雄2电影| 出水莲古筝| 甩葱舞蹈视频原版| 电影《牙医姐妹》正片日本版| 决战天门插曲| 回复术士2真人版118集剧情介绍| 村里这点事| 男女在线观看免费高清电视剧推荐| 朋友瘦子4| vip电视剧免费观看| 巨人的进击| 精油按摩韩剧| 星克莱尔X迷宫| 大红灯笼高高挂电视剧全集在线观看| 《美容院:特殊待遇》孙婉| 甄嬛传免费完整版在线观看电视剧| 色欲情狂| 满天星在线高清电影免费看| 我爱hk开心万岁下载| 孽海花传奇| XL司令第二季真人| 年轻的老师3线在线观看| 强者风范| 东北黑道风云二十年电视剧| 姐妹医牙完整版| 公交车轮交流啊出来了视频| 骄阳似我赵今麦电视剧第7集| 我们日本在线观看免费动漫下载| 复旦张维为被打| 西瓜太郎dj完整版| 常高兴的酸甜苦辣电视剧| 30插曲免费高清在线观看完整版国语 | 人猿泰山Hrd| 贤婿电视剧是什么小说| 外景拍照姿势| 《戴拿奥特曼》免费观看| 莫妮爱我几何免费高清电影| 结局万万没想到全集观看| 一笑随歌40集全免费播放| 乡村爱情5部免费全集电视剧| 家庭矛盾 麦乐迪| 瑜伽健身3完整版| 《怦然与你》| 小小水蜜桃19电视剧免费播放 | 狙击手电影免费观看完整版| 冰河剧场亲爱的老师| 漂亮的丰年继拇| 大侦探福尔摩斯1在线观看| 女状元:文武双全惊天下全集免费| 再次出发| 《姊妹牙医》完整版免费观看高清中 | 贝拉电影1980美国版| 无颜之月在线观看一到五集电视剧| 天下足球音乐| 潜江市| 韩国三级片男按摩师| 拆弹专家2完整版播放网站| 追在线观看| 江河之水电视剧| 99re视频| 莫言被踢出作协| 麦乐迪马克斯满天星在线观看完整版| 暴躁老妈第50集免费观看| 大兵的寝室| 宇宙面包店全集观看| 花开半夏演员表| 女子护卫队在线播放| 孔乙己教案| 至上之法| 北风那个吹电视剧全部免费| 《法国空乘5》伦理观看| 少年卫斯理| 加勒比海盗免费| 老二人转正戏| 罗丽星克莱尔经典全集| 江山风雨情免费完整版| 地铁举行集体婚礼| 天海翼女检察官无删减版| 东成西就2011百度影音| 盗墓笔记8| 爱我几何迅雷在线观看| 圣斗士传说| 爱情罗勒香泰剧在线观看| 日本金银1-5普通话| 璀璨人生发布会| 您好母亲大人| 《花儿与少年》被曝重启| 欧美伦理电影,精彩程度满天星!《V酒店第一季》1 - 3集 | 电影《私人航空》在线观看| 栋仁的时光| 赤焰战场2百度影音| 花开如梦电视剧免费播放40集| 《农场保卫战》满天星| 苍老师电影全集播放| 四大天王模仿秀| 王牌对王牌第六季免费观看| 淑女欲望日记| 需要爸爸播撒种子电影播放| 在异世界迷宫开后宫樱花无修版| 高清《英雄》电影完整版| 圣剑学院的魔剑使动漫免费观看| 《落魄贵族琉璃》在线观看 | 与女部长一起去研修电影| 《禁忌:家庭秘密》在线观看| 坎贝奇第二部曲《无憾》完整版 | 公的浮之手2电影免费观看| 姐妹换夫| 马路天使在线观看| 马永贞电视剧| 维修工艳遇无码免费观看视频| 甄嬛传电视剧免费版全集在线| 金瓶梅电影在线观看| 八戒8电影在线观看播放| 翻来覆去1v2漓巫| 命运之夜前传| 星辰大海电视剧免费全集影视大全| 黑白配4黑白配在线观看免费高清| 约会大作战第3季| 多样的儿媳| 名侦探柯南犯人犯泽先生动漫| 姐姐韩国电影免费观看 电影中文| 特殊保险推销员5哪里能看| 国号 百家讲坛| 猎狼者 电视剧| 愉悦与痛苦| 电影17.3| 吕良伟电影全集| 惊天时速| 暖暖 在线 观看 免费 高清| 《和部长出差的日子》| 亮剑 电视剧| 剑来在线播放| 陷阱电影| 满天星HD版女超人| 变形金刚7高清下载| 电视剧守望| 少年派2电视剧免费观看高清| abo成结模拟动画| 相游戏在线观看| 阿修罗 剧场版| 韩国电影《归来的风》免费播放| 双喜盈门 电视剧| 秘书2| 茶啊二中第五季在线观看| 海贼王剧场版第10弹| 红苹果电视剧大全| 《法国空5》电影完整版| 想你21| 平凡之路40集完整版| 我的抗战之猎豹突击高清| 化州市| 八戒,八戒免费在线观看8| 以猫饲爱全集观看| 乡村爱情小夜曲第6部| 台渔民偶遇辽宁舰| 保卫农场满天星免费观看| 麻辣烫爱在一起| 整鱼两吃| 旧版水浒传全集| yellow在线观看| 插曲痛全集高清资源下载| 藤原纪香《妻子的秘密》电影| 《我和我的父辈》沈腾| 人猿泰山hr版1995在线观看| 《睫毛膏》9| 深恋在红尘短剧全集播放| 冰糖炖雪梨在线观看免费| 《苏醒》短剧免费观看| 部长出差的日子电影| 电影《特殊游泳课》完整版| 电视剧武则天全集| 武状元苏乞儿之天降神谕| 娇妻被黑人夹了三明治| MFK0045 妈妈的职业2 yy8ycom| 韩国电影免费观看高清完整版在线| 法国空乘法版免费看| 南斗六圣拳| 花子vs倔强驱魔师全集免费观看高清| 巡回检查组在线| 奔跑吧3| 泰勒斯威夫特时代巡回演唱会| 新娘之真爱| 泌尿外科女医生| 誓言电视剧| 全红婵玩上抓娃娃了| 人民的名义56免费观看全集| 电影《粉红大白菜》完整版 | 甄嬛传奇艺网| 名字打架| 《激战丛林》完整版美国在线播放 | 农民伯伯下乡3国语版电影免费观看 | 《满天星女版西部通缉令》在线观看| 入室强插电影在线播放| 师姐也疯狂| 修真界帝尊短剧全集免费观看| 陈情令电视剧在线观看免费版全集 | 电影无毒不丈夫国语版| 《赤足惊魂》| 天下第一大火锅开锅| 后营露宿第二季在线观看| 诛仙2电视剧| 马永贞电视剧| 公之浮中字9的中文名| 爸爸的大几8好吃| 特工迷阵未删减| 圣特罗佩姑娘们1982电影在线观看| 凝固的爱 试戏现场| 罗丽星克莱尔总统夫人| 我的女婿太逆天电视剧| 法国电影卖百科全书的女人电影免费观看完整版未删减 | 怪兽训练营在线观看| 女将军:沙场归来宠夫君全集免费 | 女销售的秘密2韩剧三级| 坐在联谊会角落的他是肉食系| 迷人的保姆免费观看| 向流星许愿的我们未删减| 姐妹牙医1986电影观看| 顾泽沈依然短剧免费观看| 金钱之味百度影音| 致命对决 电影| 家有喜事1992国语| 和部长一起去出差| 南京照相馆在线观看| 骑士电影| 我推的孩子第一季| 捆绑电影| 美国式的家庭忌讳3大结局| 电影金刚归来| 圣斗士星矢欧米茄| 电影《空乘》在线观看肯纳詹姆斯 | 军事不当行为啄木鸟法版| 侠岚第4季全集| 清明上河图密码40集全| 妈妈电影免费观看高清电视剧| 那一天 仓央嘉措| 全红婵回母校现场示范压水花| 壮志凌云成 2011版| 白嫩丰满大屁股BBBBB肥波婆| 误杀3在线播放| 私人女性监狱电视剧全集免费观看| 猎罪图鉴免费观看完整版| 破晓之爱| 缘之空1| 黑人男按摩师好爽| 陪看:孙颖莎王曼昱巅峰对决| 高清世外| 神探亨特| 隐形帽子| 卖房子的销售电影| 康熙王朝在线观看| 财经郎眼2015| 新射雕英雄传主题曲| 女超人麦乐迪无删减版在线观看| 白峰作品在线观看电影免费版 | 小猪佩奇全套| 美国1一7| 全球投资者正重返中国| 米兰大坏蛋1分47秒| 归路电视剧免费观看完整版| 安拉拉斋电影在免费播| 意大利电影《肉蔻之香》的导演是谁| 孟婆汤游鸿明| 娃娃脸1电影完整版在线观看| 电视剧叛逆者全集免费播放| 美国式禁忌3| 爱有几何150分钟完整版在线观看| 第十放映室恭贺2012| 笑咏春粤语| 扫黑风暴电影免费观看| 恶魔搬进来了| 漂亮妈妈9| 聊斋艳谈百度影音| 随时随地都能干的小镇I| 年轻的家长3| 完美伴侣在线观看完整版免费| 铿锵锵锵锵锵在线观看免费版高清观 | 小飞象电影| 韩国伦理维修工的艳遇| 朋友的妈妈在线免费看| 闫凤娇 第二季| 缘之空在线观看动漫高清免费| 检修工遇强奸犯 韩国电影| 青春有你第一季| 电视剧折腰免费看| 名侦探柯南全集高清| 站起来再来一次第30集剧情介绍| 琼瑶回应于正道歉| 胭脂霸王电视剧| 甘德县| 《勇敢的老师》正版观看| 娃娃脸5完整版在线观看免费| 雷霆沙赞2众神之怒| 凯登克劳斯电影作品在线观看| 韩国队提前庆祝被中国台北绝杀| 我的爱宥丽| 《overflower》第1季免费观看全集动漫 | 怪医黑杰克| 秘书在办公室被躁BD在线小说| 《匿杀》| 《销售秘密》3| 一拳超人第3季免费完整版| 这个妈咪我要了| 妈妈爱上儿子的同学完整版电影| 徐少强金银瓶| 高清抢钱女王团| 乱马2/1| 电影《黑暗森林》莉娜安德森| 全部视频排列表寂寞影院| 花与蛇5百度影音| 小黄飞2014最新演出| 亲爱的妈妈在线观看| 至尊弃少短剧全集| 需要爸爸播种籽2演员名字| 拜托 小姐| 深夜的濡恋频道| 英雄慢走| 海棠大肚产子机器美人| 3v1三人一次性体检| 《地爆天星》赛仑在线观看| 柏林的女人无删减在线观看| 年轻的小姨子在线播放| 父母爱情免费观看| 香港奇案之羔羊医生| 女销售的销售秘诀中字韩国 | 李连杰现身台湾宣传新书 | 少女6少女大人演员表高清版| 大学四第一季| 雪中悍刀行电视剧| 张卫健西游记国语| 《花非花》电视剧| 驯龙高手第一季| 女子护卫队满天星1973中文| 国产免费高清观看电视剧| 机械师2:复活| 洪熙官 甄子丹| 加里森敢死队电影| 食物链2大尺寸片段| 性的暴行在线| 了不起的挑战第一季| 文轩3800汤臣一品探花| 卖百科全书的女人电影在线看免费| 办公室卫生标准| 骄阳伴我 电视剧| 孙千黄景瑜冬至免费观看| 维修工的艳遇韩国电影 | HD版《激战丛林》完整版播放| 人世界电视剧免费观看全集完整版| 银魂188| 高清《珀尔》电影中文字幕| 哇嘎免费电影| 帝女花电视剧| 奇怪的理发店在线播放| 《和讨厌的部长出差旅》 | 长安二十四计电视剧在线观看 | 美国女版《壮志凌云》剧情| 与狼共舞30| 单身公寓电视剧| 逐玉电视剧| 花姑子全集| 女超人麦乐迪| 柔铺团之极宝乐鉴普通话完整版电影百度云盘| 俺爹是卧底 电视剧| 新闻女王粤语免费观看完整版高清| 百日郎君| 科幻电影沙丘2免费观看| 《需要爸爸种子| 天涯神贴免费完整版| 大漠苍狼电视剧| 火山要努力鸭| 一起愁愁免费高清在线观看免费| 月光光心慌慌终结| 春光灿烂周三强| 逆流而上的你免费观看完整版 | 麦乐迪完整版在线| 圣特罗佩1982| 与我同眠剧情| 《择天记》电视剧| 妈妈的职业5在线观看免费完整版电视剧全集高清 | 东北往事之黑道风云20年21集| 美丽的小蜜蜂3美丽人生| 修师傅艳遇电影| 一人之下剧场版在线观看| 斗罗大陆184集| 高清《手机》免费观看全集| 丫头 5| 21世纪性格爱情指南全8集中文| 鬼电影国语版| 康家电视| 樱桃成熟时李丽珍国语歌曲| 三级片替夫还债的家庖妇女| 僵尸伯伯国语版在线播放| 尸家重地 国语| 半夏电视剧免费观看完整版高清| 5哈第一季| 一天内全球多地发生客机事故| 特别酒店美国1983| 《花开半夏》电视剧| 电影兵临城下| 奶油柠檬| 兽性之夜| 大奶按摩电影| 山东安志成融资合法| 怀来至北京跨省公交停运| 惊蛰电视剧| 电视剧大地恩情| 丈夫的上司来家拜访日剧免费观看全集| 都是天使惹的祸剧照| 巨人的进击| 玻璃假面| 扫黑风暴在线观看免费完整版策驰| 农民伯伯下乡三级片| 生死之恋三部曲| 杭州杀妻案细节| 《搜索》| 阿lin| 360大佬爱上我第二季全集| 四川频道| 火烧云全集| 肉肉的小黄车| 周弘《村姑》完整版| 巴西按摩师无删减版在线观看百度云| 电视剧为你钟情| 亮剑3gp下载| 都市修罗殿主全集免费观看| 私人助理2法国版电影在线看| 玉女心经3电影免费观看完整版| 胜算电视剧免费完整版在线观看| 亦舞之城| 暗夜传说4| 致命诱惑电影| 神秘的旅伴电影| 站着再来一次第26集免费播放| 新人女职员的诱惑韩国电影在线观看中文字幕 | 袁娅维 滚滚红尘| 勃利县| 《西部通缉令》| 红辣椒3| 剑魔独孤求败全集免费观看国语| 铁证悬案第五季| 杨思敏1996版电视剧全集| 朋友的姐姐线观高清3| 《overflower》真人版演员表| 我要爸爸的种子第一季免费观看 | 和部长一起去出差| 相逢是首歌 俞静| 姐妹牙医赤板栗完整版在线播放免费 | 年轻的阿姨5中字电影| 只此江湖梦电视剧免费观看| 金并梅电视剧全集免费观看| 斗罗大陆116集| 泷泽萝拉第二部快播| 幸福小丈夫全集| 李丽珍蜜桃成熟| 《美丽妻子替丈夫还债| 妻子对不起丈夫|