成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

像積木一樣搭建網(wǎng)頁(yè)

sixleaves / 1629人閱讀

摘要:接下來(lái)將從以下個(gè)方面對(duì)積木式網(wǎng)頁(yè)開(kāi)發(fā)進(jìn)行描述分析頁(yè)面結(jié)構(gòu)構(gòu)建網(wǎng)頁(yè)的結(jié)構(gòu)編寫(xiě)網(wǎng)頁(yè)基本的樣式編寫(xiě)不同表現(xiàn)的樣式一分析頁(yè)面結(jié)構(gòu)雖然的語(yǔ)法那些很簡(jiǎn)單,但是在網(wǎng)頁(yè)設(shè)計(jì)和開(kāi)發(fā)中,它卻占據(jù)著不可動(dòng)搖的地位。

前言

我們?cè)跒g覽網(wǎng)頁(yè)的時(shí)候,經(jīng)常會(huì)看到很相似的幾種內(nèi)容。比如下面這兩種樣子:

看上去是不是比較像呢?其實(shí)就是圖片的位置不一樣,大致上可以認(rèn)為是一樣的吧,那么針對(duì)這樣子的相似度較高的網(wǎng)頁(yè),我們應(yīng)該怎么樣開(kāi)發(fā)呢?

其實(shí)這就得談?wù)劇绊?yè)面重用機(jī)制”了,下面所寫(xiě)的積木式網(wǎng)頁(yè)構(gòu)建方式就能夠很好的處理頁(yè)面重用這個(gè)問(wèn)題。

接下來(lái)將從以下4個(gè)方面對(duì)積木式網(wǎng)頁(yè)開(kāi)發(fā)進(jìn)行描述:

分析頁(yè)面結(jié)構(gòu)

構(gòu)建網(wǎng)頁(yè)的結(jié)構(gòu)

編寫(xiě)網(wǎng)頁(yè)基本的樣式

編寫(xiě)不同表現(xiàn)的樣式

一、分析頁(yè)面結(jié)構(gòu)

雖然HTML的語(yǔ)法那些很簡(jiǎn)單,但是在網(wǎng)頁(yè)設(shè)計(jì)和開(kāi)發(fā)中,它卻占據(jù)著不可動(dòng)搖的地位。首先我們需要根據(jù)設(shè)計(jì)師的PSD和產(chǎn)品經(jīng)理所描述的需求,然后確定我們網(wǎng)頁(yè)的結(jié)構(gòu),反復(fù)的與他們溝通,確定更多的信息,才讓我們的網(wǎng)頁(yè)結(jié)構(gòu)的生命周期變得更長(zhǎng)。

這里推薦一個(gè)Chrome的插件,可以瞬間去除CSS和JavaScript的效果,查看到最原始網(wǎng)頁(yè)的表現(xiàn)。

Web Developer

下面我們要參考的結(jié)構(gòu)就如下圖中2種樣子:

我用紅線大致描了一下頁(yè)面的信息塊,接下來(lái)我們來(lái)分析一下信息:

一張展示圖

一個(gè)標(biāo)題

商品的列表信息(包括總價(jià))

附屬品的列表信息

購(gòu)買(mǎi)按鈕

好吧,這里就不需要PM來(lái)確認(rèn)啦,自己當(dāng)一回PM ^8^,接下來(lái)我們需要描述網(wǎng)頁(yè)結(jié)構(gòu)。

二、構(gòu)建網(wǎng)頁(yè)的結(jié)構(gòu)

經(jīng)過(guò)上面的分析,我們可以得出如下的DOM結(jié)構(gòu):

盧林

賠本大甩賣(mài)

  • 眼鏡 500元
  • 外套 300元
  • iPhone 5S 88元
  • 總價(jià) 僅需888元

附帶品

  • 可樂(lè)一罐
  • 飯碗一個(gè)
  • 6塊錢(qián)的麻辣燙

我們這里不需要任何樣式,也會(huì)是一個(gè)很美的網(wǎng)頁(yè),至少看起來(lái)整潔,信息整齊。(圖片太大,直截取文本部分。因?yàn)閳D片的寬、高在初始化的時(shí)候必須要設(shè)置的,至于為什么要設(shè)置可以查閱Google,主要是給圖片預(yù)留空間,提升文檔性能。)

好吧,到這里我們的DOM結(jié)構(gòu)就構(gòu)造完了,接下來(lái)添加一點(diǎn)基本的,也可以理解為公用的樣式,這里的公用可以不理解為積木塊共有的樣式。說(shuō)起來(lái)繞了一點(diǎn),也就是說(shuō)不同表現(xiàn)的共有樣式可以與本身結(jié)構(gòu)具有的基本樣式進(jìn)行分離,這個(gè)可以看自己喜好來(lái)決定。

三、編寫(xiě)網(wǎng)頁(yè)基本的樣式

在此之前我們來(lái)看看我本地的文件結(jié)構(gòu):

demo  //文件夾
    A.css  //樣式1
    B.css  //樣式2
    index.css  //基本樣式
    index.html //DOM結(jié)構(gòu)

這里可以處理一些基本的網(wǎng)頁(yè)樣式信息,比如恢復(fù)一些元素的默認(rèn)值、調(diào)整部分間隙。這部分代碼位于:index.css中,內(nèi)容放入文章末尾吧,這里我們連貫的描述怎么做頁(yè)面重用。

四、編寫(xiě)不同表現(xiàn)的樣式

說(shuō)了怎么久,DOM結(jié)構(gòu)和基本樣式都搞好啦,那么現(xiàn)在我們來(lái)實(shí)現(xiàn)我們的兩張圖。現(xiàn)在我們只需要做的是在最外層DOM結(jié)構(gòu)中加入不同的類(lèi)名:

// A類(lèi)樣式
...
// B類(lèi)樣式
...

這樣我們利用CSS的權(quán)重來(lái)控制特殊的樣式,其實(shí)這里的 psTreatmentA 類(lèi)更像一個(gè)命名空間,如果用嚴(yán)格的語(yǔ)言來(lái)理解的話,那么可以理解為:

class psTreatmentA implements productStackWrap {
    ...
}

class psTreatmentB implements productStackWrap {
    ...
}

...

class psTreatmentN implements productStackWrap {
    ...
}

注意這里用的是接口哦,CSS的復(fù)用可以是多繼承的關(guān)系,至少我是這么理解的。

那么我們改怎么針對(duì)這個(gè)類(lèi)來(lái)寫(xiě)屬于它實(shí)例的樣式呢?那么看一下下面兩段代碼就可以理解了。

/* A類(lèi)樣式 */
.psTreatmentA {
    width: 310px;
}
.psTreatmentA .psImage {
    width: 80px;
    height: 112px;
    float: left;
}
.psTreatmentA .psTitle {
    margin-left: 100px;
}
.psTreatmentA .psPriceWrap {
    margin-left: 100px;
    text-align: right;
}
.psTreatmentA .psCTA {
    margin: 0 auto;
}

/* B類(lèi)樣式 */
.psTreatmentB {
    width: 385px;
}
.psTreatmentB .psImage {
    width: 386px;
    height: 287px;
    display: block;
    margin-bottom: 20px;
}
.psTreatmentB .psPriceWrap {
    text-align: left;
    margin-left: 110px;
}
.psTreatmentB .psTitle {
    text-align: center;
    font-size: 27px;
}

這樣做了過(guò)后就能夠使用同一套DOM結(jié)構(gòu),來(lái)穿上不同的樣式了,技術(shù)是很簡(jiǎn)單的技術(shù),但是不同的玩法能玩出不同的精彩哦~

那么,這樣做有什么好處呢?這里隨機(jī)列幾條吧。

場(chǎng)景一:

PM說(shuō):“我們換回以前那份設(shè)計(jì)稿吧?!?/p>

FE說(shuō):“好的,馬上弄?!保S手刪除了引入的B樣式,引入A樣式,OK,解決問(wèn)題~)

場(chǎng)景二:

PM說(shuō):“這是最新設(shè)計(jì)稿,要趕緊上線,1天能上線嗎?”

FE說(shuō):“我看看設(shè)計(jì)稿來(lái)(啪啪啪~看完設(shè)計(jì)稿,發(fā)現(xiàn)其中有很多復(fù)用的網(wǎng)頁(yè)樣式)?!?/p>

FE再說(shuō):“我盡力吧,晚上做完回你。(使用通用的結(jié)構(gòu)include,最后將之前項(xiàng)目中的A...N樣式拿來(lái)一套,解決問(wèn)題?。?/p>

好處還有很多呢,等待你去發(fā)現(xiàn)~

五、最后結(jié)束語(yǔ)

雖然上面文章描述了樣式上的重用,其實(shí)在JS行為的把握上我們也可以使用相同處理事情的方式,將JS行為的類(lèi)將表現(xiàn)給分離出來(lái),能夠更好的應(yīng)對(duì)需求的變更以及增加代碼的可維護(hù)~

附:(文章例子中的基本樣式)

.productStackWrap {
    position: relative;
    font-size: 14px;
    margin: 40px 0;
    border: 1px solid #999;
    padding: 20px;
}
.psTitle {
    font-size: 21px;
    font-weight: 700;
    margin: 0 0 5px 0;
}
.psPriceWrap {
    padding: 0;
}
.psPriceWrap li {
    list-style: none;
    padding: 2px 0;
}
.spLabel {
    display: inline-block;
    width: 75px;
    text-align: right;
    padding-right: 3px;
}
.spAmount {
    display: inline-block;
    width: 75px;
    text-align: right;
    font-weight: 700;
}
.spTotalPrice {
    color: green;
}
.spDescriptionWrap p {
    line-height: 150%;
}
.psCTA {
    background: green;
    color: #fff;
    padding: 5px 0;
    width: 120px;
    display: block;
    border: 0;
    text-align: center;
    font-size: 20px;
    text-shadow: 1px 1px 1px #666;
    border-radius: 5px;
    background-clip: padding-box;
    background: #92c436;
    background: linear-gradient(top, #92c436 0%, #97c64b 50%, #80c217 51%, #7cbc0a 100%);
}
.descBulletsUL li {
    padding: 4px 0;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/111212.html

相關(guān)文章

  • 積木一樣搭建網(wǎng)頁(yè)

    摘要:接下來(lái)將從以下個(gè)方面對(duì)積木式網(wǎng)頁(yè)開(kāi)發(fā)進(jìn)行描述分析頁(yè)面結(jié)構(gòu)構(gòu)建網(wǎng)頁(yè)的結(jié)構(gòu)編寫(xiě)網(wǎng)頁(yè)基本的樣式編寫(xiě)不同表現(xiàn)的樣式一分析頁(yè)面結(jié)構(gòu)雖然的語(yǔ)法那些很簡(jiǎn)單,但是在網(wǎng)頁(yè)設(shè)計(jì)和開(kāi)發(fā)中,它卻占據(jù)著不可動(dòng)搖的地位。 前言 我們?cè)跒g覽網(wǎng)頁(yè)的時(shí)候,經(jīng)常會(huì)看到很相似的幾種內(nèi)容。比如下面這兩種樣子: showImg(https://segmentfault.com/img/remote/14600000068980...

    Karuru 評(píng)論0 收藏0
  • Vue.js 初接觸

    摘要:二還有一點(diǎn)也是思想不容易轉(zhuǎn)過(guò)彎的一點(diǎn),就是我在學(xué)習(xí)前端時(shí),接觸的思想都是需要我們將者分開(kāi),方便維護(hù)。但是在學(xué)習(xí)了接觸了單文件組件之后,世界又變了,又讓我們將同一個(gè)組件的放到一個(gè)文件中,這樣又便于維護(hù)和復(fù)用,這一臉的懵那啥。 Vue.js 介紹 官方介紹: Vue.js是一套構(gòu)建用戶(hù)界面的漸進(jìn)式框架。與其他重量級(jí)框架不同的是,Vue 采用自底向上增量開(kāi)發(fā)的設(shè)計(jì)。Vue 的核心庫(kù)只關(guān)注視圖...

    bladefury 評(píng)論0 收藏0
  • 前端隨筆(雜談)

    摘要:經(jīng)過(guò)對(duì)前端技術(shù)的學(xué)習(xí),感觸良多,雖然之前也接觸過(guò)前端的知識(shí),但是沒(méi)有進(jìn)行系統(tǒng)的學(xué)習(xí)過(guò),在大三上學(xué)期學(xué)過(guò)和簡(jiǎn)單的,老師也沒(méi)有深度講解,知識(shí)也沒(méi)有形成體系,經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),有以下感觸與大家分享整個(gè)前端知識(shí)就像一座房子,而是磚,建一個(gè)網(wǎng)頁(yè),里經(jīng)過(guò)對(duì)前端技術(shù)的學(xué)習(xí),感觸良多,雖然之前也接觸過(guò)前端的知識(shí),但是沒(méi)有進(jìn)行系統(tǒng)的學(xué)習(xí)過(guò),在大三上學(xué)期學(xué)過(guò)h5和簡(jiǎn)單的css,老師也沒(méi)有深度講解,知識(shí)也沒(méi)有形...

    caohaoyu 評(píng)論0 收藏0
  • vue2.0開(kāi)發(fā)環(huán)境搭建

    showImg(https://segmentfault.com/img/remote/1460000008313324?w=1200&h=500); 什么是VUE VUE官方網(wǎng)址 Vue 是一個(gè)前端框架,特點(diǎn)是 數(shù)據(jù)綁定 比如你改變一個(gè)輸入框 Input 標(biāo)簽的值,會(huì) 自動(dòng)同步 更新到頁(yè)面上其他綁定該輸入框的組件的值 showImg(https://segmentfault.com/img/re...

    BlackHole1 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<