CSS基礎(chǔ)知識(shí)三

知識(shí)點(diǎn)導(dǎo)航

* 浮動(dòng)的性質(zhì)
   + 脫標(biāo)
   + 貼邊
   + 字圍
   + 收縮
* 浮動(dòng)的清除
   + 方法一:給浮動(dòng)元素的祖先元素加高度
   + 方法二:clear: both;
   + 方法三:隔墻法
   + 方法四:overflow: hidden;
* margin
   + margin 的塌陷現(xiàn)象
   + margin: 0 auto; (居中)
   + margin IE6兼容問(wèn)題
   + 善用父親的padding,而不是兒子的margin 

浮動(dòng)<p>

浮動(dòng)是css里面布局用的最多的屬性

下面兩個(gè)元素并排并且可以設(shè)置寬高历极,這在標(biāo)準(zhǔn)流中是實(shí)現(xiàn)不了的


左浮動(dòng)

要想學(xué)好 css ,一定要知道以下幾個(gè)性質(zhì):

浮動(dòng)的元素脫標(biāo)<p>
如圖所示

一個(gè)浮動(dòng)的 span 標(biāo)簽不需要轉(zhuǎn)成塊級(jí)元素就能設(shè)置寬高,換句話說(shuō)也就是偶垮,一旦一個(gè)元素浮動(dòng)了,那么它將能夠并排帝洪,能夠設(shè)置寬高,它將不再是塊級(jí)元素或者行內(nèi)元素脚猾,也就是所謂的脫離標(biāo)準(zhǔn)流


浮動(dòng)的元素互相貼靠<p>
圖片 1
圖片 2
圖片 3

如上如所示:
如果有足夠的空間葱峡,那么 3 就會(huì)靠著 2 哥;如果沒(méi)有足夠的空間龙助,那么會(huì)靠著 1 號(hào)大哥砰奕;如果沒(méi)有足夠的空間靠著 1 號(hào)大哥蛛芥,那么自己就會(huì)去貼左墻


浮動(dòng)元素有 “字圍” 效果<p>
包含圖片的 div 浮動(dòng), 包含文字的 p 不浮動(dòng)

浮動(dòng)盡量要遵守一個(gè)原則:
浮動(dòng)都是一起浮動(dòng),永遠(yuǎn)不是一個(gè)東西單獨(dú)浮動(dòng)


浮動(dòng)的清除<p>

<div>
  <ul>
    <li>HTML</li>
    <li>CSS</li>
    <li>JS</li>
    <li>HTML5</li>
    <li>設(shè)計(jì)模式</li>
  </ul>
</div>

<div>
  <ul>
    <li>學(xué)習(xí)方法</li>
    <li>英語(yǔ)水平</li>
    <li>面試技巧</li>
  </ul>
</div>

<style type="text/css">
  li {
    float:left;
  }
</style>

問(wèn)題:本來(lái)以為上面中的 li 會(huì)分為兩排军援,但是第二組中的第一個(gè) li 去貼靠第一組中的最后一個(gè) li 了

代碼實(shí)際效果圖

原因就是 div 沒(méi)有高度仅淑,不能給自己浮動(dòng)的子標(biāo)簽一個(gè)容器


清除浮動(dòng)方法一:給浮動(dòng)元素的祖先元素加高度(用的少)<p>

如果一個(gè)元素要浮動(dòng),那么它的祖先元素一定要有高度胸哥,有高度的盒子才能 關(guān)住浮動(dòng)

div 添加高度后效果圖

只要浮動(dòng)在一個(gè)有高度的盒子中涯竟,那個(gè)這個(gè)浮動(dòng)就不會(huì)影響后面的浮動(dòng)元素,因此就清除了浮動(dòng)帶來(lái)的影響

div 沒(méi)有高度導(dǎo)致的貼邊

清除浮動(dòng)方法二:clear: both;<p>

網(wǎng)頁(yè)制作中空厌,高度 height 很少出現(xiàn)庐船,因?yàn)槟鼙粌?nèi)容撐高,所以方法一用的很少

<div>
  <ul>
    <li>HTML</li>
    <li>CSS</li>
    <li>JS</li>
    <li>HTML5</li>
    <li>設(shè)計(jì)模式</li>
  </ul>
</div>

<div class="box2">  //給這個(gè) div 寫一個(gè) clear:both; 屬性
  <ul>
    <li>學(xué)習(xí)方法</li>
    <li>英語(yǔ)水平</li>
    <li>面試技巧</li>
  </ul>
</div>

<style type="text/css">
  .box2 {
    clear: both;
  }
</style>

clear 為清除嘲更,both 指的是 左浮動(dòng) 和 有浮動(dòng)筐钟,完整的意思就是 清除別人對(duì)我的影響

致命問(wèn)題:margin 失效了


清除浮動(dòng)方法三:隔墻法<p>

隔墻法
<div class="box1">
  <ul>
    <li>HTML</li>
    <li>CSS</li>
    <li>JS</li>
    <li>HTML5</li>
    <li>設(shè)計(jì)模式</li>
  </ul>
</div>

<div class="cl h16"></div> //中間加面墻

<div class="box2">  
  <ul>
    <li>學(xué)習(xí)方法</li>
    <li>英語(yǔ)水平</li>
    <li>面試技巧</li>
  </ul>
</div>

<style type="text/css">
  cl {
    clear: both;
  }
  h16 {
    height: 16px;
  }
</style>

近些年,又演化出了 “內(nèi)墻法”

內(nèi)墻法

清除浮動(dòng)方法四:overflow: hidden;<p>

overflow: hidden 表示溢出隱藏赋朦,即溢出邊框的內(nèi)容篓冲,都要隱藏掉

內(nèi)容太多,溢出了盒子

overflow: hidden 溢出盒子邊框的內(nèi)容隱藏了

一個(gè)父元素不能被自己浮動(dòng)的子元素?fù)纬龈叨瘸韬澹侵灰o父元素加上 overflow: hidden; 那么父元素就能被子元素?fù)纬龈叨龋ú⑶?margin 能正常設(shè)置)壹将。!A詹Α瞭恰! 這是一個(gè)偏方

正常情況下
父元素加了overflow: hidden;后

瀏覽器兼容問(wèn)題<p>

1. 微型盒子問(wèn)題

IE6不支持小于 12px 的盒子,任何小于 12px 的盒子狱庇,在 IE6 中看著都比較大惊畏。解決方法:

height: 4px;
font-size: 0px; //增加這一行

設(shè)置盒子的字號(hào)小于盒子的高度即可

瀏覽器 hack
就是使用瀏覽器提供的后門,針對(duì)某一種瀏覽器做兼容密任。比如颜启,IE6就留了一個(gè)后門,只要在CSS屬性之前加上下劃線浪讳,這個(gè)屬性就是IE6的專有屬性

IE6專有屬性

所以缰盏,解決微型盒子的正確寫法是:

height: 10px;
_font-size: 0; //加下劃線表示IE6專屬
2. IE6不支持overflow: hidden;來(lái)清除浮動(dòng)<p>

overflow: hidden;的本意是溢出盒子border的東西要隱藏,這個(gè)功能IE6是兼容的淹遵;不兼容的是使用overflow: hidden; 來(lái)清除浮動(dòng)口猜。解決方法:

overflow: hidden;
_zoom: 1;

原因是 _zoom: 1; 能夠出發(fā)了瀏覽器的 hasLayout 機(jī)制

以上兩個(gè)IE6 的兼容問(wèn)題都是通過(guò)多寫一條 hack 來(lái)解決的,這個(gè)被稱為伴生屬性透揣。

margin<p>

1. margin 額塌陷現(xiàn)象

標(biāo)準(zhǔn)文檔流中济炎,豎直方向 的 margin 不疊加,以較大的為準(zhǔn)辐真。

標(biāo)準(zhǔn)流中

如果不在標(biāo)準(zhǔn)流中须尚,兩個(gè)盒子之間是沒(méi)有塌陷現(xiàn)象的

脫標(biāo)后

2. 盒子居中 margin: 0 auto;<p>

margin 的值可以為 auto崖堤,表示自動(dòng)。當(dāng)left耐床、right兩個(gè)方向都是 auto 的時(shí)候密幔,盒子居中了:

margin-left: auto;
margin-right: auto;

簡(jiǎn)寫為:

margin: 0 auto;

注意:

1. 使用 margin: 0 auto; 的盒子,必須有明確的 width
2. 只有標(biāo)準(zhǔn)流的盒子撩轰,才能使用 margin: 0 auto; 居中胯甩。也就是說(shuō),當(dāng)一個(gè)盒子浮動(dòng)了钧敞,絕對(duì)定位了蜡豹,固定定位了,都不能使用 margin: 0 auto;
3. margin: 0 auto; 是在居中盒子溉苛,不是居中文本镜廉。文本的居中要使用 text-align: center;

3. 善用父元素的 padding,而不是子元素的 margin<p>

如果父元素沒(méi)有 border愚战,那么子元素的 margin 實(shí)際上踹的是 “流”娇唯,踹的是這 “行 ”,所以父元素整體也掉下來(lái)了

父元素?zé)o border
父元素有 border

margin 這個(gè)屬性寂玲,本質(zhì)上描述的是兄弟和兄弟之間的距離塔插;最好不要用這個(gè) margin 表達(dá)父子之間的距離。因此要善用父元素的 padding 而不是 子元素的 margin拓哟。

4. 關(guān)于 margin 的IE6兼容問(wèn)題<p>

IE6 的雙倍 margin bug<p>

當(dāng)出現(xiàn)連續(xù)浮動(dòng)的元素想许,攜帶和浮動(dòng)方向相同的 margin 時(shí),隊(duì)首的元素會(huì)雙倍 margin断序。

double margin bug ( IE6 )

解決方案:

第一種:使浮動(dòng)的方向和 margin 的方向相反

float: left;
margin-right: 40px;

第二種:?jiǎn)为?dú)給隊(duì)首的元素寫一半的 margin

<li class="no1"></li>
ul li.no1 {
  _margin-left: 20px;
}

IE6的 3px bug<p>

3px bug ( IE6 )

解決方案:
代碼寫的不規(guī)范流纹,重新寫,哈哈哈NナJ!善用父元素的padding

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诸迟,一起剝皮案震驚了整個(gè)濱河市茸炒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阵苇,老刑警劉巖壁公,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異绅项,居然都是意外死亡贮尖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門趁怔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)湿硝,“玉大人,你說(shuō)我怎么就攤上這事润努」匦保” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵铺浇,是天一觀的道長(zhǎng)痢畜。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鳍侣,這世上最難降的妖魔是什么丁稀? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮倚聚,結(jié)果婚禮上线衫,老公的妹妹穿的比我還像新娘。我一直安慰自己惑折,他們只是感情好授账,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惨驶,像睡著了一般白热。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粗卜,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天屋确,我揣著相機(jī)與錄音,去河邊找鬼续扔。 笑死攻臀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的测砂。 我是一名探鬼主播茵烈,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砌些!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起存璃,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纵东,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偎球,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辑甜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年袍冷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胡诗。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖煌恢,靈堂內(nèi)的尸體忽然破棺而出骇陈,到底是詐尸還是另有隱情,我是刑警寧澤瑰抵,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布你雌,位于F島的核電站,受9級(jí)特大地震影響谍憔,放射性物質(zhì)發(fā)生泄漏匪蝙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一习贫、第九天 我趴在偏房一處隱蔽的房頂上張望逛球。 院中可真熱鬧,春花似錦苫昌、人聲如沸颤绕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奥务。三九已至,卻和暖如春袜硫,著一層夾襖步出監(jiān)牢的瞬間氯葬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工婉陷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帚称,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓秽澳,卻偏偏與公主長(zhǎng)得像闯睹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子担神,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案楼吃? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • 塊級(jí)元素和行內(nèi)元素分別有哪些?動(dòng)手測(cè)試并列出4條以上的特性區(qū)別 塊級(jí)元素:div h1 h2 h3 h4 h5 h...
    DCbryant閱讀 242評(píng)論 0 0
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表,主要用...
    寥寥十一閱讀 1,833評(píng)論 0 6
  • 1.行內(nèi)元素和塊級(jí)元素?img算什么?行內(nèi)元素怎么轉(zhuǎn)化為塊級(jí)元素? 行內(nèi)元素:和有他元素都在一行上孩锡,高度酷宵、行高及外...
    極樂(lè)君閱讀 2,420評(píng)論 0 20
  • ――――――當(dāng)一個(gè)人被痛苦折磨得近乎麻木的時(shí)候,一種固執(zhí)的憂郁癥就會(huì)慢慢地生根浮创,痛苦也就變得并不是那么難以忍受了忧吟。...
    Unlion_a6ad閱讀 280評(píng)論 0 0