3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
此篇文章瀏覽量: 2,386 float屬性非常重要,而且有時也常常會讓人困惑為什麼會這樣?但其實它在CSS中,在定位、排版也扮演非常重要的角色。務必瞭解。它是一般在講的浮動定位。有float:left、float:right兩種可供選擇,它會將該元素整個往左、往右移並脫離網頁原先流向,並且會讓周圍的元素圍繞它。此篇文章還會稍微提到clear與overflow。 最近這幾篇都發一些比較基本觀念性質的,但我覺得這些都非常重要,等你熟悉之後,再去學css整理術、bootstrap、compass、fire.app等好玩的framework或工具。若對基本觀念尚未熟悉,先看些基本的教學會讓你更容易入門,且有趣。 先看html範例吧(尚未加上float屬性): .theDiv{ width:400px; border:1px solid black; } .navigation{ border:1px solid black; width:100px; } .para{ border:1px solid red; width:80px; } 項目一 項目二 項目三 段落一 顯示如下:   一、將.navigation設成浮動定位向左: .navigation{ border:1px solid black; width:100px; float:left; /* 新增這行:浮動定位向左 */ } 顯示如圖: .navigation設定浮動定位向左後,已脫離原先的網頁流向,而”段落一”則會圍繞在它周圍。注意紅色框線的異常,其實段落一原來的位置會在接近”項目一”的地方,但因為.navigation是浮動向左,所以”段落一”會被推擠往下。 如果我不設定”段落一”的width: .navigation{ border:1px solid black; width:100px; float:left; /* 還是設定成浮動向左 */ } .para{ border:1px solid red; width:80px; /* 移除這行 */ } 顯示如圖: 此時”段落一”內文會在右邊,且紅色線框會佔據整個上層寬度(因為沒設width),所以”段落一”會在右邊而不是在底下了。   二、將.navigation設定浮動定位向右: .navigation{ border:1px solid black; width:100px; float:right; /* 新增這行:浮動定位向右 */ } 顯示如圖: 列表(.navigation)整個向右浮動了,”段落一”也會跟著往上移了,但最外圍的div(.theDiv)黑色框線卻沒有將它包圍住,這也是因為列表(.navigation)已經脫離它網頁流向的關係,所以最外圍的div其實不太想理它了。 這問題有兩種解決方式 第一:我們來將”段落一”多增加些內文並且將寬度移除: 有看出端倪了嗎?最外圍的div(.theDiv)會跟隨著紅色框線的高度而變動,以致於”看起來”有將列表(.navigation)給包圍住。 第二:針對最外圍的div (.theDiv)設定overflow:hidden .theDiv{ width:400px; border:1px solid black; overflow:hidden; /*新增這行:若溢位時,則隱藏*/ } .navigation{ border:1px solid black; width:100px; float:right; /* 列表還是向右浮動定位 */ } 顯示如圖: 經由設定overflow:hidden,最外圍的div(.theDiv)會將列表(.navigation)給包圍住了。至於為什麼,其實這我不太會解釋,忘了以前從哪看來的,哈。   三、將.para分別設定成浮動向左、浮動向右 .para{ border:1px solid red; width:80px; float:left; /* 浮動定位向左 */ } 顯示如圖: 因為”段落一(.para)”設定浮動向左,所以最外圍的div(.theDiv)也就沒有去理它了,同理,可將最外圍的div(.theDiv)設定overflow:hidden,就會再將”段落一(.para)”給包圍住了。 .para{ border:1px solid red; width:80px; float:right; /* 浮動定位向右 */ } 顯示如圖: 段落一向右浮動,而最外圍的div(.theDiv)未將它包圍住。同理可針對最外圍div(.theDiv)設定overflow:hidden將它包圍起來。   四、關於clear:both clear可以設定的屬性有:left、right、both。 其旨在告訴該元素的左邊(left)、右邊(right)、兩邊(both)都不可以有任何東西,若有的話,該元素會自動往下移。 請重新看此html: .theDiv{ width:400px; border:1px solid black; } .navigation{ border:1px solid black; width:100px; float:right } .para{ border:1px solid red; width:80px; } .footer{ border:1px solid orange; } 項目一 項目二 項目三 段落一 這是底部 ​顯示如圖: .navigation有設定浮動向右,然後增加了.footer的div,但.footer卻橫跨過.navigation了,要避免此狀況,只要針對.footer設定clear:both即可: .footer{ border:1px solid orange; clear:both; /* 新增這行 */ } 顯示如圖: .footer區域往下移,因為左右兩邊不可以有任何東西。 參考資料: htmldog:Page Layout 若覺得文章有幫助,請多分享,讓其他同好也能吸收網站技能知識。 Facebook Twitter

本文由carlos-studiocom提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦