網(wǎng)頁(yè)設(shè)計(jì)中的塊級(jí)元素二

  • 2018-10-26 17:22:06
  • 閱讀次數(shù):
  • 作者:盈嵐科技小編
  • 來(lái)源:http://51zuanshi.com.cn

負(fù)外邊距

網(wǎng)頁(yè)設(shè)計(jì)中負(fù)外邊距確實(shí)對(duì)垂直格式化有影響,而且它們會(huì)影響外邊距如何合并。如果垂直外邊距都設(shè)置為負(fù)值,瀏覽器會(huì)取兩個(gè)外邊距絕對(duì)值的最大值。如果一個(gè)正外邊距與一個(gè)負(fù)外邊距合并,會(huì)從正外邊距減去這個(gè)負(fù)外邊距的絕對(duì)值。換句話說(shuō),負(fù)值要增加到正值,所得到的就是元素間的距離。圖7-21給出了兩個(gè)具體的例子。

圖7-21:負(fù)垂直外邊距的例子

注意,上、下外邊距為負(fù)時(shí)有一種“拉近”效果。實(shí)際上,這與負(fù)水平外邊距使元素超出其父元素沒(méi)有什么區(qū)別。請(qǐng)考慮:

p.neg {margin-top:-50px; margin-right: 10px; margin-left: 10px; margin-bottom: 0; border: 3px solid gray;}

<div style="width: 420px; background-color: silver;

padding: 10px; margin-top: 50px; border: 1px solid;">

<p class="neg"> A paragraph.

</p> A div.

</div>

如圖7-22所示,因?yàn)槎温涞纳贤膺吘酁樨?fù),所以它被向上“拉”了 50像素。注意,以上標(biāo)記中在段落后面有一個(gè)div,這個(gè)div的內(nèi)容也向上拉了50像素。

圖7-22:負(fù)上外邊距的效果

負(fù)的下外邊距會(huì)使段落看上去被向下拉。將以下標(biāo)記與圖7-23所示對(duì)照:

p.neg {margin-bottom:-50px; margin-right: 10px; margin-left: 10px; margin-top: 0; border: 3px solid gray;}

<div style="width: 420px; margin-top: 50px;">

<p class="neg"> A paragraph.

</p>

</div>

<p> The next paragraph.</p>

圖7-23:負(fù)下外邊距的效果

圖7-23中顯示,div后面的元素會(huì)根據(jù)div底端的位置放置。可以看到,相對(duì)于視覺(jué)上子元素(段落)的底端,實(shí)際上父元素div的底端在它之上。div后面下一個(gè)元素與div底端之間的距離是正確的。根據(jù)你使用的規(guī)則,確實(shí)應(yīng)該如此。

下面來(lái)考慮一個(gè)例子,其中有一個(gè)列表項(xiàng)、一個(gè)無(wú)序列表以及一個(gè)標(biāo)題,它們的外邊距都合并。在這里,為無(wú)序列表和標(biāo)題指定了負(fù)外邊距:

li {margin-bottom: 20px;}

ul {margin-bottom:-15px;}

h1 {margin-top:-18px;}

兩個(gè)負(fù)外邊距中較大的一個(gè)(-18px)增加到了最大的正外邊距上(20px),這就得到了20px- 18px = 2px,因此,列表項(xiàng)內(nèi)容底端與h1內(nèi)容頂端之間只有2個(gè)像素的距離,如圖7-24所示。

圖7-24:正負(fù)外邊距合并詳解

網(wǎng)頁(yè)設(shè)計(jì)中還有一種行為沒(méi)有討論,如果由于負(fù)外邊距而導(dǎo)致元素彼此重疊,很難區(qū)分哪些元素在上面。你可能還會(huì)注意到,本節(jié)中所有例子都沒(méi)有使用背景色。如果確實(shí)使用了背景色,其內(nèi)容可能會(huì)被后面元素的背景色所覆蓋,這是一種可以預(yù)見(jiàn)的行為,因?yàn)闉g覽器總會(huì)按從前到后的順序顯示元素,所以文檔中后出現(xiàn)的正常流元素可能會(huì)覆蓋較早出現(xiàn)的元素(如果這兩個(gè)元素重疊),

列表項(xiàng)

網(wǎng)頁(yè)設(shè)計(jì)中列表項(xiàng)有自身的一些特殊規(guī)則。這些列表項(xiàng)前面通常有一個(gè)標(biāo)志,如一個(gè)圓點(diǎn)或一個(gè)數(shù)字。這個(gè)標(biāo)志實(shí)際上并不是列表項(xiàng)內(nèi)容區(qū)的一部分,所以如圖7-25所示的效果很常見(jiàn)。

圖7-25:列表項(xiàng)的內(nèi)容

網(wǎng)站建設(shè)對(duì)這些標(biāo)志相對(duì)于文檔布局的放置和效果涉及很少,但網(wǎng)站建設(shè)引入了專門為解決這個(gè)問(wèn)題而設(shè)計(jì)的一些屬性,如marker-offset:。不過(guò),光有想法但缺少實(shí)現(xiàn),這就使得這個(gè)屬性在CSS2.1中又被去掉了,很有可能CSS的將來(lái)版本還會(huì)引入另外一種方法來(lái)定義內(nèi)容和標(biāo)志之間的距離。因此,標(biāo)志的放置不在創(chuàng)作人員的控制范圍內(nèi)(至少在寫作本書時(shí)是這樣)。

注意:第12章將更詳細(xì)地研究列表及如何設(shè)置列表的樣式。

網(wǎng)頁(yè)設(shè)計(jì)中與一個(gè)列表項(xiàng)元素關(guān)聯(lián)的標(biāo)志可能在列表項(xiàng)內(nèi)容之外,也可能處理為內(nèi)容開(kāi)始處的一個(gè)內(nèi)聯(lián)標(biāo)志,這取決于屬性list-style-position的值,如果標(biāo)志放在內(nèi)部,那么這個(gè)列表項(xiàng)相對(duì)于其相鄰列表項(xiàng)就像一個(gè)塊級(jí)元素一樣,如圖7-26所示。

圖7-26:標(biāo)志放在列表內(nèi)部和外部

如果標(biāo)志在內(nèi)容之外,它會(huì)放在與內(nèi)容左邊界有一定距離的位置上(對(duì)于從左向右讀的語(yǔ)言)。網(wǎng)頁(yè)設(shè)計(jì)中不論如何改變列表的樣式,標(biāo)志與內(nèi)容邊界的距離都不變。有時(shí),標(biāo)志可能會(huì)放在列表元素本身之外,如圖7-26所示。

當(dāng)前文章標(biāo)題:網(wǎng)頁(yè)設(shè)計(jì)中的塊級(jí)元素二

當(dāng)前URL:http://51zuanshi.com.cn/news/wzzz/block-level-elements2.html

上一篇:網(wǎng)頁(yè)設(shè)計(jì)中的塊級(jí)元素一

下一篇:網(wǎng)頁(yè)設(shè)計(jì)中的行內(nèi)元素

網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷咨詢專線:181-8386-5875(點(diǎn)擊可一鍵撥號(hào))