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

      主站蜘蛛池模板: 爱我几何电影在线观看免费莫尼卡| 宇宙巡警露露子| 爸爸的种子伦理片在线观看| 芈月传电视剧全集下载| 《酒店》1-90集免费观看| 菜鸟老警 第八季全集观看| 乔布斯 吸毒| 美国禁忌11| 小妞是什么意思| 战狼6免费观看在线| 张卫健西游记国语| 牝教师4免费在线观看 | 黑街舞男高清版免费观看| oberfiower第一季免费看线观看| 爱上北斗星男友| 刘国梁马琳轻松观战| 俘虏之锁1| 我让最想被拥抱的人威胁西班牙篇 | 皇后心尖:皇上独宠全集免费| 酒店1-75集全集在线观看| 一点就到家电影| 终结的后宫| 爸爸要播种电影完整版免费观看| 红地毯影城| 女海盗2电影美国版| 明星换脸免费观看方法 | 罗丽星克莱尔迷宫HD版在线观看| 第三次初恋韩剧在线观看完整版| 战狼4欧美版免费观看完整版国语电影| 中国油价处在世界什么水平| 韩国电影r| 《异国日记》| 电影小兵张嘎免费观看| 伊波拉病毒国语免费在线观看| 照亮你电视剧在线观看| 《妻子的背叛》全集观看| 《瓜达卢佩的玫瑰》在线观看 | 战狼6高清国语免费观看影视大全下载什么借钱平台好的 | 落魄贵族琉璃川在线动漫完整版| 曲剧清风亭全场| 漂亮的保姆6| 安徽小调大全| 高清《沈家嫡女》短剧全集| 艾琳娜满天星免费观看| 女老师2| 少年天子剧情| 四少妇精油按摩| 《漂白》| 秘密列车第8集在线观看| 年的经的母8| 东边日出西边雨电视剧| 旧三国演义全集| 堕落的女律师韩版电视剧免费播放| 艋胛 电影| 霍元甲哪一年播出的| 枭起青壤1-40集免费| 真爷们儿电视剧全集| 和部长一起去出差旅日本电影简介| 狙击手拉苏尔电影免费观看完整版 | 教师到我家免费观看第1季| 诡丝高清| 《房奴试爱》开头原声| 扒鸭屁股| 聊斋艳谭第3集| 涩涩屋在线| 苗阜王声2016春晚| 混血大学生精油按摩伦理在线| 久保同学不放过第一季免费观看| 鬼神的香气| 我的性肉欲继拇中文3| 老爷升堂| 韩国电影男按摩师| 狂飙免费观看完整版在线观看| 前任攻略电影完整版| 步步惊心电视剧| 交警一把抓住300多斤电缆线卷筒| 朝国年经的继2免费观看时间| 《婚前试爱》未删减版| 买房的女销售免费观看| 飓风营救1完整版在线观看| 哈利波特6免费观看| 《激战丛林》完整版在线观| 电视剧《下海》| 生化危机 影音| 女保镖满天星在线播放| 《误杀3》大结局| 初恋时间免费观看全集| 浪漫女家教台湾电影免费观看| 吞噬星空202集完整版| 网络惊魂| 义姐是不是良在哪里看| 禁止的爱:善良的小峓在钱| 芈月传70| 董永荒野渔夫高清免费看 | 惊天危机高清| 性解密之大牛影库 | 回魂之夜电影| 夜莺影院免费观看电视剧全集| 伦理《法国护士长》高清电影| 蓝湾牧羊犬| 高清魔法蓝精灵未删减| 奸嬷者| 小小蜜桃3[电视剧]免费观看| 熊出没电影全集免费观看| 禁忌03| 坚果之王第一名是什么| 三A级做爰片免费观看玉蒲团播放 外乡人电视剧在线观看免费全集 暖暖视频免费 | 为了爱离开你| 三义影视播放在线观看| 韩剧金银梅5普通话免费观看| 使徒行者2粤语在线观看| 最后的较量| 日剧《你比丈夫厉害》的播出时间| 青梅竹马是消防员第2季在线观看| 唐朝诡事录第二季免费观看| 激战丛林HD无删减版在线播放| 抓紧我放弃我电视剧| 我的阿勒泰结局| 白峰电影在线观看免费版高清| 雾散之时短剧免费观看| 出手短剧| 北香那满天星三部曲| 熊出没之过年动画| 巨塔之后TVB粤语| 台球高手在线观看免费完整版视频| 扶摇 电视剧| 《饥饿的女儿》| u9免费看电影| 余罪在哪个平台可以播放| 电影《美味快递员特殊待遇2》演员阵| 太平公主秘史 电视剧| 霍启山陈若琳婚礼最新消息| 日本维修工的艳遇3| 婆婆来了全集| 潜入搜查官绝对不认输| 玫瑰江湖电视剧全集在线观看免费| 巜人妻初次按摩2视频| 我的青春恋爱物语果然有问题动漫| 月上朝颜电视剧免费观看完整版| 战神王妃:夫君守护全集免费| 《她被搬运工侵犯》在线观看| 波奇亚电影在线观看| 《女销售的销售秘密》2| 电视剧《青盲》免费观看| 战狼6电影免费播放西瓜视频 | 旖旎婚色短剧大结局免费观看全集| 男人和女人一起愁愁愁电视剧免费古装剧 | 艾米加油主题曲| 社长夫人给客户还债的电影| 小呆augus| 贤妻良母| 金银悔5| 长津湖在线观看免费| 娇妻两根一起进3p视频| 《情欲满载》在线观看 | 电影《飞夺泸定桥》在线观看免费| 美女 恶搞| 小凤新婚完整版免费观看电影高清| 十大满清酷刑2| 孟丽君电视剧| 法国空姐4免费高清原声我奔跑| 正在直播郑钦文比赛| 聊斋志异三| 瓜达卢佩的玫瑰免费在线观看| 精英部队2电影高清版免费观看| 尴尬青春完整版| 玫瑰江湖电视剧全集在线观看免费 | 插曲的痛30集| 功夫熊猫全集| 全职高手9高清樱花动漫免费观看| 很黄的叫床口述| 女子自卫队满天星免费观看中文版| 寄往电视台的神秘影像未删减| 借枪 电视剧| 偷尝禁果在线观看| 东北警察故事二| 男生女生一愁愁愁观看大片 | 赤板栗牙医姐妹1986在线观看| 归去来结局| 黑帮老大和我的365天| 隔壁邻居很美味电影在线观看免费高清 | 黄金瞳在线观看| 乐业县| 下北阳光灿烂的日子| 纸牌屋第2季| 肮脏的交易韩国电影| 盛唐 风流电影| 木乃伊2百度影音| 暴躁46集全集免费观看下载| 哈哈哈哈哈第5季免费观看| 陕西桥梁垮塌已致12死31失联| 坎贝奇第二部曲品味人生在线观看| 金毛狮王国语| 春雨全集在线观看免费| 将夜第三季电视剧免费观看完整版 | 一仆二主一共多少集| 美剧家庭矛盾麦乐迪| 奇怪的理发店在线播放| 六盘水水怪| 新娘之真爱| 《花子vs倔强驱魔师》免费观看全集| 迎风的青春电视剧免费观看全集 | 夜魔侠第二季| 孙颖莎1比3穆克吉| 需要爸爸播种籽2免费观看高清| 维修工的艳遇生活韩国| 请问还有哪里需要加强| 《越南版女兵俘虏营东京塔》| 荷兰VICTORYDAY极品| 周杰伦公公偏头痛| 女超人(麦乐迪)版电影| 星战传说| 一家人不说两家话| xl司令在线观看免费高清全集| 美国大片国语配音| 夏目彩春57部在线电影| 流水迢迢电视剧免费观看完整版| 三年国语高清在线观看| 异世界献身第1季动漫观看| 借种传奇| 女超人满天星无删减麦乐迪版种子 | 《需要爸爸播种美国》在线观看 | 都是激情| 乱点鸳鸯谱| 冢本在线播放| 绿水青山带笑颜电视剧| 神龙斗士第二部| 陪酒女郎| 奸嬷者| 粘豆包电视剧| 电影双胞胎在线观看| 义子侵犯北条麻妃在线观看| 震耳欲聋| 欧美年轻的继拇3| 流星花园日版| 女超人麦乐迪无删| 管家后宫学园2| 女教师3韩国电影| 愈合伴侣韩剧在线观看| 公的浮之手| 破地狱高清无删减粤语| 唐砖1-37集免费观看完整| 诡故事第一季| 与部长出差免费观看| 建议取消强制自动续费| 二次曝光迅雷下载| 韩国剧办公室蓝色影身帽子| 刀客家族的女人19| 电影太太度假时| 《示范销售避孕套》剧情介绍 | 后座未删减| 满天星翻拍《无法无天》| 年轻善良的馊子6| 我出生在伊朗| 忘年恋电影在线观看免费| 三牟中国\在线中文| 穿越火线下载 迅雷| 《辞职欢送温泉之| 惠州核电站爆炸| 盛唐风流国语版免费播放| 谍海计中计结局| 电视剧玫瑰花开| 辐射第一季免费观看| 非诚勿扰20121216| 《爱我几何》在线观看| 监狱女孩| 韩剧《美人》完整版| 新婚初夜| 法国《啄木鸟:灭火行动》免费观看| 女匪传奇第二部| 疑犯追踪第三季在线观看完整版| 重逢:丈夫的部下初恋未来遥香 | 篠田あゆみ| 美国禁忌3年转一代| 姐姐4韩国电影| 男女一起愁愁愁免费全集| 沂蒙山小调原唱| 我的婆婆怎么那么可爱| 大男当婚高清全集| 翁虹 满清十大刑酷| 不可撤销| 暴躁老妈的46集全免费观看| 看见爱台剧有无删减版本| 刘大明白改命师全集| 成人导航在线观看| 青春之旅电影| 俞敏洪励志语录| 女超人麦乐迪无删减在线| 门当户对综艺| 王小虎陈晶晶短剧2022年| 乡村爱情第三部全集| 济宁电视台公共频道| 不雅视频完整版| 那年花开月正圆 迅雷下载| 狂飙全集在线看| 蛮荒禁地| 我在北京挺好的第6集| 《她被搬运工侵犯》在线| 黑镜第三季| 的士速递4| 法国满天星《古墓丽影》| 美容店的待遇免费观看 | 评书隋唐演义免费听完整版| 女超人麦乐迪星辰影院 | 鲇川奈绪| 女战狼10免费观看全部| 普罗米修斯高清| 豪杰春香全集| 小唐璜的角色| 我喜欢你免费观看电视剧| 金瓶梅1-5电影观看完整版丿| 桃姐电影| 义子的侵犯电影完整版| 剑蝶电视剧全集| 衢州市| 《法国护士长》2006在线| 大村官之放飞梦想 电视剧| 老阿姨电影电视剧免费播放| 沙坪坝区| 茶啊二中第四季| 无敌风火轮免费观看国语版| 老罗演讲| 行尸走肉第三集| 借种中文字幕HD中字| 印度电影最毒美人心| 八戒8免费观看完整版| 需要爸爸的种子在线美国观看| 都行广告| 瓜达卢佩的玫瑰在线观看免费版,中文 | 《破.地狱》粤语在线播放| 巨茎挺进李淑芬的体内视角| 陀枪师姐2| 你总有爱我的一天| 电影蜜桃成熟时33d| 呼吸过度电影| 养个孩子不容易 电视剧| 欧美满天星在线观看| 高安子君广场舞阿哥阿妹| 《理想之城》第二部| 张学良新传| 撸二哥影院| 为你千千万万短剧68集| 公浮手完整版高清| 风流才子唐伯虎| 回复术士真人版90集剧情介绍| 善恶的彼岸| 站着再来一次30集全免费高清| 阿诗玛在线观看| 食锈末世录| 黄色仓库视频在线.| 爱你所以离开你| 空姐的秘密百度影音| 寂寞护士1-40集免费观看在线 | 色即是空2视频| 人民的名义电视剧| 依家有喜电视剧| 牙医姐妹1986| 《刑事侦缉档案2》电视剧| 亲密有罪下载| 徐元《保险推销员》在线| 惠州核电站爆炸| 罗志祥演唱会| 乌龙闯情关| 斗破苍穹缘起在线观看| 铿锵在线观看完整版 | 漂亮的保姆3在线播放西瓜| 假面之夜| 皇城根儿| 龙江县| 我的自由年代| 复仇之火完整免费观看| XL司令在线观看免费高清全集 | 偷情水电工伦理片| 古代厨娘:美食京城全集免费| 办公室里的滋润| 鬼父手机在线看1到16集| 公之手1| 《秘密列车》电视剧| 女友成双第二季| 杨敏1-5集全集免费看| 李丽珍电影蜜桃成熟时| 刘亦菲合成10p| 老婆6免费完整高清电视剧| 怨妇2电影免费中文字幕看完整版 铠甲勇士之雅塔莱斯大电影完整版 | 唐人街探案3正片枪版| 亲爱的自己全集在线观看 | 韩国大尺度吃奶真做爰| 花琉璃轶闻电视剧免费播出| 《隋唐英雄传》| 我们都要好好的全集免费完整版| 电影《命定之人》完整版| 我是刑警免费高清播放在线观看| 电影《替夫还债3》| 一只绣花鞋| 漂亮的保姆6在线观看| 免费观看三年大片完整版电影| 召唤恶魔阿萨谢尔| 天时地利人和英文| 战狼6妈| 火箭军原副司令员吴国华病逝| 三年大片| 中国好声音直播现场| 《私人航空》法国在线播放| 换位兄弟| 人蛇大战电影全集| 法国私人女子监狱| 《爱的方程式》动漫免费观看| 都江堰市| 妻子5免费完整版韩国| 天涯歌女邓丽君| 美国禁忌1年转一代| 女生宿舍视频| 禁忌1980| 爱情面前谁怕谁28集| 少年四大名捕 电视剧| 绝对权利| 周生如故全集免费观看| 莫丽特别酒店| 欢笑老弄堂| 丽卡《驯服》电影完整版 | 美丽的小蜜蜂美国版5娃娃脸| 《令人心动的房东小姐》动漫全集 | 星汉灿烂在线免费观看| 特殊的美容美发师| 特种兵火凤凰| 布衣神相国语全集| 意大利电影《美丽教师》主演| 乘胜狙击粤语| 高压监狱3法国电影在线观看完整免费 | 万物生在线完整版免费观看| 成全电影大全在线观看第二季| 壮志凌云啄木鸟满天星| 高清《人生第一次》在线观看| 荣誉守则满天星免费观看高清版 | 曰本jiZZ| 名侦探柯南普通话版免费观看| 美国黑白配在线观看免费| 空之色水之色 快播| 新版金瓶梅在线观看| 6680新视觉电影免费观看| 王保长传奇| 黑白配高清中文完整版| 电视剧春暖花开| 《极乐宝鉴2》叶子楣在线观看| 日本办公室的秘密2| 权游前传龙族第二季| 朴雅珍《蓝色隐形帽子》| 小欢喜电视剧1-50集免费观看| 星际蓝多多全集| 同学的妈妈双字id| 韩国理论电影老公没在家别人修灯的电影| 丫鬟逆袭短剧全集| 外姓兄弟| 我的奴隶| 《北越暴行》2| 超模王真| 大喜临门| 站着再来一次26集全在线看| 绿萝花电视剧| 金瓶梅1---5全集| 第二个农场的姑娘们| 大丈夫2粤语| 《大长今》电视剧| 赤板栗《牙医姐妹》完整| 大耳朵图图动漫| 有friend无惊| 东方之珠国语| 黑暗之魂好玩吗| 原千岁| 一路向西完整版观看| 南北兄弟| 热带雨 完整版时长| 站着再来一次48集分集剧情介绍| 电影我的表妹| 雅典娜 歪歪| 《社长夫人的美貌》擦的干净| 《爱的方程式》动漫免费观看| 农场主三姐妹美国与意大利版对比| 铿锵锵锵锵锵好多少| 吕良伟电影全集国语| 《特殊快递员》| 高清《老公的上司》在线观看| 公寓 电影| 小小小水蜜桃6[电视剧]在线观看 麦乐迪和继父演的电影是什么 | 屠宰呕吐娃娃视频完整版免费观看 | 蔓延qvod| 门事件电影直播| 漂亮得小姨| 智取威虎山电影| 平凡的荣耀全集| 高压监狱2线观看完整免费高清原声| 部长和社畜的恋情令人着急电视剧| 我父亲的女保姆是我的首选评价| 《背叛老公的社长夫人》最新电影在线观看 -西瓜电影免费播放 -灵蓄影院 | 韩国《女员工的滋味》在线观看 | 流浪记 纪晓君| 男女一起相嗟嗟免费观看在学校| 龙棺古墓电影免费观看| 电视剧《心跳》| 金银悔1-5普通话版免费观看下载| 宝可梦地平线樱花动漫| 音乐老师的饺子水饺在线观看| 我朋友的妈妈9完整中字| 士兵突击电视剧全集免费| 女版战狼19高清国语免费观看| 女友的妈妈免费观看 | 菲律宾电影《健身房教练》的导演是| 证言未删减| 布衣神相粤语高清| 铃音りん| 人猿泰山(大人版)意大利在线观看| 德田重男电影| 甄嬛传百度影音| 辞职欢送温泉之旅| 我生命中最后的绯闻| 301勇士| 日本调情按摩在线观看| 你给我的喜欢电视剧免费观看高清| 斯巴达克斯第二季| 星期五的寝室1978| 七夕潘甜甜牛郎织女资源 | 咏春大师被ko| 魂斗罗4代| 也平凡在哪个软件上看| 优越的一天电视剧全集完整版| 漂亮小瘦子3| 小贝有几个孩子| 人民的名义未删减版有多少集| 《卢旺达玫瑰》完整版| 特种兵之利刃出鞘免费完整版高清| 电视剧家门的荣光| 我的健身锻炼在线观看| 色戒在线无删减| 完 陈奕迅| 1984保罗1——4中文版演员表| 斗罗大陆第161集免费观看| 丈夫升职妻子陪上司吃饭| 变身动漫| 苍蓝战士奥特曼电影免费观看| 安齐拉拉电影免费观看| 老农民 电视剧| 神探狄仁杰第四部44| 做aj的视频大全电视剧| 高清准备击球| 终极对决电影| 热辣披萨女孩电影高清版在线观看 | 《和讨厌的部长出差旅》| 水晶兰为什么叫死亡之花| 熊出没之过年2部| 打扑克视频| 睫毛膏3美国电影| 财阀刑警| 法国《荣誉守则》在线播放| 大雨电影在线观看国语| 我独自升级动漫第二季| 识骨寻踪| 白鸟ゆな| 疯狂大老千国语| 《睫毛膏4》美国版| 罗娜艳情录经典电影免费观看| 中国海军齐声回应普京:友谊万岁| 韩国爸爸b的种子| 衢州新闻联播| 《打黑风暴》22集全剧情| 北越暴行3全集在线播放| 韩国阅兵式高清完整版| 电视剧黑金地的女人| 四位少妇按摩记电影| 青春环游记5季免费播放| 920美影| 鱼跃在花见之朝| 离婚前规则主题曲| 朴雅珍《蓝色隐形帽子》| 忽然七日电影| 恰好是少年在线观看| 《八尺夫人意大利满天星》完整版| 深圳倡导下周居家办公| 相门嫡女全集免费| 售楼小姐| 人间毒物| 纯情罗曼史第一季02| 《女兵俘虏营》完整版免费观看| 风云年代40集免费播放| 夏至末至| 山城恋在线观看| 落魄贵族琉璃川动漫免费高清全集 | 野花香在线观看播放| 女朋友的男朋友| 麦乐迪《女超人》2013| 《电影灭火女警2》| 拯救大兵瑞恩| 大话西游之大圣娶亲 电影| 多名大妈在书店大声喧哗练舞| 家有虎妻 电影| 苹果电影在线播放| 《混血儿摇篮曲》完整版| 王君安越剧名段欣赏| 《寻秦记》| 公浮手中字8| 查泰莱夫人的情人1989malù| 回南天电影在线观看免费播放| 电影《牙医姐妹》正片| 小舍得电视剧全集免费观看完整版 | 心宅猎人电视剧在线观看免费高清| 妈妈愿意让你c| 年轻漂亮的后母完整版| 长安二十四计电视剧在线观看| 咱们家那些事| 火烧岛 电影| 年轻的母亲在线观看视频| 东北警察故事| 坏妻子便利店被欺负后的剧情解析| 秘密花园免费观看完整版高清| 娱乐前线| 塔日酒店未删减版在线观看 | 碟中谍12免费高清观看版| 《瓜达卢佩的玫瑰》在线播放免费墨 | 家有好儿媳第二部| 保卫延安| 二阶堂丽在线观看| 电视剧向东是大海| 北京爱情故事高清完整版| 分娩按摩4| 繁华电视剧免费观看完整版高清| 上海滩在线观看| 保险推销员2| 情非情电视剧全集免费播放| 韩国最叼的dj| xl司令第一季全集免费观看动漫| 《纣王妲己》全集观看| 做aj的电视剧大全免费中国人| 蝙蝠侠赞中国火锅| 追光者电视剧免费观看完整版| 酒店1~50集在线观看| 血仍未冷| 浪客剑心追忆篇免费观看完整版| 《女兵俘虏营》完整版免费观看| 绿光森林电视剧| 超星五灵侠第七季免费观看 | 云南蔡总 裸体| 狂欲的庄园| 《张警官三部曲》免费观看高清| 火线警告第三季| 万家灯火养生2013| 罗丽星克莱尔《总统夫人》| 拜托 小姐| 猫头鹰餐厅| 《利刃出鞘3》| 吴京电影长津湖抢先版| 动感之星小玲108集全集免费| 百变小樱国语版| 财阀阴谋| 美丽小蜜蜂3美丽人生| 包铁山电视剧全集免费观看| 奇思妙想周莹博士王俊凯| 斗罗大陆免费全集| 五通神魔大战三只狐妖| 《暗河传》在线观看| 将军家的小娘子电视剧免费观看 | 小蜜桃在线| 夏家三千金第三部| xl第二季无马赛第八集| 国乒男团逆转韩国进决赛| 《诱人的护士》在线| 千金肉奴隶电影 | 公的浮之4| 杰克·布莱克| 情人结 下载| 黑帮老大哥我的365天在| 美国保罗1980二| 非故意恋爱故事| 九重紫电视剧在线观看全集免费播放| 梦幻军事地区电影| 印度电影爱的火山| 古董局中局第一部免费观看| 妹妹的秘密| 日本一卡二卡三卡四| 太阳之歌女主角| 战狼6双人免费高清完整版| 电视剧梅花红桃免费观看 | 女儿的闺蜜id| 小向まな美| 玛丽亚凯莉| 纳妾记电视剧| 大江大河3免费观看下载| 下女 完整版| 《你是我兄弟》结局| 清风阁我爱干视频| 意大利《开放庄园》在线观看| 《登山的目的》中字| 幸福最晴天mp4下载| 因为遇见你分集剧情| 总统之夜1997法国版第一季| 巜出轨上司的人妻2中字| 人人都恨克里斯| 特殊治疗室6| 密室大逃脱大神版| 四大美人 电影| 蛇蝎美人百度影音| 台湾渔夫| 电视剧千娇百媚| 黑寡妇第2| 私人航空电影在线免费观看。| 独生子女的婆婆| 娇妻系列交换27部多P小| 美式保罗1-4经典结局| 寒战2 电影| 小学生高清电影免费观看| 高清《速度与激情9》免费| 圣特罗佩斯的姑娘们电影免费观看| 城中之城电视剧免费观看全集高清 | 苹果范冰冰无删减| 黑白配在线观看完整版免费高清| 生死之恋三部曲| 法网柔情剧情| 复仇第3季| 法国空姐4法版| 爬山虎的资料| 暴躁老妈免费观看电视剧 | 巡回检察组43| 铿锵铿铿锵铿锵免费观看| 欲望熊市| 《唐砖》电视剧| 突然的喜欢电视剧免费观看| 美景之屋6:我的完美人生免费全集播放 | 短剧《焚心》免费观看| 凯登·克罗斯《蓝色的梦》| 《极恶老大》| 叶罗丽精灵梦第六季全集| 邓超羽泉| 胸肌撕裂者| 97免费| 命运连结| 《无赦之罪》免费观看全集高清| 爱丫爱丫免费高清观看完整版| 《丈夫叫妻子陪上司睡HD| 黑白诀电视剧免费观看完整版高清| 朋友的姐姐播放| 花子vs倔强驱魔师真人| 数码宝贝第2部国语| 星际迷航电影有几部| 时间静止器电影完整版 | 《姊妹牙医》完整版在线播放| 神雕侠侣在线观看| 高清《僵尸先生3》免费观看| 法国满天星《女飞行员》观看| 国王的演讲下载| 碧血剑林家栋版全集| 动漫在线观看免费观看| 女保险公司销售员8手机在线观看| 漂亮嫂子3| 天下长河电视剧在线观看完整版| 莫莉3特别的酒店免费| 新乱世佳人9集吃奶视频 | 高清极寒潜袭| 望京一号| 动感之星之妖精168集在线观看| 樱花树下电影完整版免费| 彩虹的对面| 黑白配2018| 电影《霸王别姬》| 美人鱼在线观看免费观看| 保罗一家1--4美国版免费观看| 奇妙发型屋2免费完整版| 电视剧雪豹| 远古入侵第三季| 法国空乘5免费高清原声满天星美版百度 | 独立日 高清| 战长沙电视剧免费观看完整版| 黑白配HD1080电影免费版| 禁止的爱善良的小姨子免费观看| 上海滩简谱| 卖保险套的女销售| 美国禁片仑乱芭芭拉4| 盛夏假期遇见爱全集观看| 茶杯狐在线| XL司令第三季真人| 末路狂花电影在线完整观看| 朋友的姐姐在线播放| 一起愁愁愁30分钟电视剧免费观看电视 | 新瓶梅| 子夜归电视剧在线观看免费| 我的后半生免费观看完整版电视剧| 赤水市| 需要爸爸的播种 在线观看 | 韩剧大度电影在线看| 今野真菜| 世界第一初恋oad| 《岸边露伴一动不动 忏悔室》| 刘学义电视剧免费观看| 基本演绎法第三季| 向幸福出发主持人刘心悦| 网球王子第一部| 巜商务旅行女老板戴绿色帽的 | 婚前试爱粤语高清| 杨敏1—5集电视剧最新更新| 甄嬛传39| 电视剧暴雪时分免费观看| 善良的嫂子在线观看| 战狼6欧式少女经典片段| 法国电影《灭火宝贝1》免费观看中文| 麦克斯的魔法世界| 铿锵锵锵免费观看在线观看 | 韩剧《上司的秘密》电视剧| 妻子6免费观看完整版高清电视剧| 八犬传东方八犬异闻第二季 | 她在丈夫面前被耍了搬运工| 迦楠大人的白给是恶魔级全集观看| 热辣滚烫在线观看全集电影| 小凤新婚在线播放| 斗罗大陆176集免费观看| 试驾问界m9| 深水埗区| 罗莉星克菜尔电影在线观看| 神犬奇兵下载| 女员工的付出5 中字| 捷克街头搭讪系列完整版免费观看| 伦理《法国护士长》2006| 第九区 电影| 《妻子7》在线观看全集| 新金瓶梅2013什么时候上映| 伦理剧场黛比浪漫女家教| 年轻的妈妈hd| 北京青年35| 塔日酒店在线| 《终极斗士1》电影免费观看| 小三泪dj| 我的错误电影| 秘密搜查官の大桥未久| 韩国未删减| 仙逆第98集完整版播放| 当我飞奔向你电视剧| 朝鲜金雪美| 17se电影| 变态的情人| 桃花运电视剧| 电影售楼小姐的销售秘密在线播放 | 古剑奇谭 在线观看| 游泳湿润无删减版在线观看| 猛男受被CAO哭极限扩张SM| 歌曲《母鸡咯咯哒》| 美式2| 总统之夜1997| 高清危情蜻蜓未删减| 国产真人做爰免费视频| 高清《法国空乘2019》播放| 《热辣滚烫》| 半夏电视剧免费观看全集剧情| 《麦乐迪·:女超人》在线观看| 渔夫荒野史1987台湾版主演是谁| 一代妖姬杨贵妃|