Float && Position-Assignment

1.文檔流的概念指什么饲帅?有哪種方式可以讓元素脫離文檔流?

文檔流(normal flow)傲须,也稱為標準文檔流纯赎、常規(guī)流、普通流等纷闺,是元素在html文檔的定位方式之一,標準流的元素的位置由該元素在html中的位置所決定份蝴。主要表現形式是元素由上到下犁功、由左到右依次排版布局。
總的來說婚夫,css的定位機制可分為:文檔流浸卦、浮動和定位

  • 文檔流:包括塊級元素的塊級格式、行內元素的行內格式

  • 浮動:浮動將元素從文檔流中脫離出來案糙,向左或向右浮動直至碰到另一元素的邊框或邊界才停止浮動限嫌;

  • 定位

    • 絕對定位:以父元素的左上角的頂點為參考點,進行定位时捌,元素將脫離文檔流
    • 相對定位:元素相對于自身所處的原來位置進行定位怒医,元素不脫離文檔流(相對定位可以說是特殊的文檔流)

綜上所述,通過浮動絕對定位機制都可使元素脫離文檔流奢讨。

2.有幾種定位方式稚叹,分別是如何實現定位的,使用場景如何拿诸?

css的定位機制包括:文檔流入录、浮動和定位

  • 文檔流
    文檔流是默認的定位方式,實現方式是直接在標簽內寫入內容佳镜,html會自動排版布局僚稿。
    具體演示效果如下:
  • 浮動
    css浮動屬性提供左浮或右浮兩種屬性值,元素的浮動規(guī)則是元素的邊框浮動至包含框或另一個浮動框(必須是浮動著的元素)才停止蟀伸,并且浮動元素將脫離文檔流蚀同。
    浮動的基本原理如下:

出現上述的情況是:
當某個div遇到浮動元素的時候,會產生同一個div下內容和包裹它的盒子的分離啊掏,而盒子的內容則會環(huán)繞在浮動元素周圍蠢络,解決方法在后面會提及。


此時迟蜜,3個方塊都是浮動元素刹孔,方塊2左浮遇到方塊1這浮動元素停止左浮,方塊3同理娜睛。


同樣是3個方塊左浮髓霞,但是如果一行的寬度不足以讓某個浮動元素容納卦睹,則它會自動左浮至下一行。


如果方库,方塊1過于高的話结序,那么它會自動擋住方塊3的左浮線路。
浮動本來是為實現文字環(huán)繞而誕生的纵潦,但是后來開發(fā)者常將它用于頁面的布局

  • 定位(position)
    定位可分為static徐鹤、absolute、relative和fixed邀层,下面主要講解absolute返敬、relative和fixed。
    • absolute是絕對定位寥院,參考點是以已經定位的父元素的左上頂點

上圖顯示救赐,方塊2相對于已經定位的父元素實現絕對定位。

  • relative是相對定位只磷,參考點是以元素所在的原來位置的左上頂點


上圖顯示经磅,方塊2相對于自己的原來位置發(fā)生top:10px; left:10px;的移動

  • fixed,參考點是瀏覽器的頁面視窗的左上頂點


以上三個三種定位方式钮追,fixed常用來放置開發(fā)者希望用戶一直在瀏覽器能看到的固定區(qū)塊预厌,relative和absolute常用來精心精確布局

3.absolute, relative, fixed偏移的參考點分別是什么

  • absolute是絕對定位,參考點是以已經定位的父元素的左上頂點
  • relative是相對定位元媚,參考點是以元素所在的原來位置的左上頂點
  • fixed轧叽,參考點是瀏覽器的頁面視窗的左上頂點

4.z-index 有什么作用? 如何使用?

z-index是設置元素的堆疊順序,擁有高堆疊順序的元素總是會處于堆疊順序較低的元素的前面刊棕。
注意炭晒,這里所指的是堆疊順序而不是z-index的值的大小,并且z-index 僅能在定位元素上奏效

  • 堆疊順序
    • 不對元素設position時甥角,文檔流后面的元素覆蓋前面的元素网严;
    • 將元素設置的position設置為relative ,absolute 或者 fixed嗤无,元素會覆蓋沒有設置 position 屬性或者屬性值為 static 的元素
  • 當存在3個元素
<div id="a">
 <div id="a-1" style="position:relative;">A-1</div></div>
<div id="b">B</div>

A震束、B均沒有設置position,但A的子元素A-1設置了当犯,那么B會覆蓋A垢村,A-1會覆蓋B

  • 在不存在父子關系的4個元素中,z-index最大的覆蓋其余3個嚎卫,z-index為0的和沒設置position的堆疊關系遵循先后順序嘉栓,z-index為負數的位于z-index:0的后面
  • 存在父子關系情況下,子元素會繼承父元素的堆疊關系


  • 若所有元素都定義了 position:relative, 并且A 元素的 z-index 和 B 元素一樣大, 但因為順序規(guī)則, B 元素覆蓋在 A 元素前面. 就算 A 的子元素z-index 值比 B 的子元素大, B 的子元素還是會覆蓋在 A 的子元素前面。

5.position:relative和負margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別

6.如何讓一個固定寬高的元素在頁面上垂直水平居中?

 .box{
  background:lightgreen;
  width:100px;
  height:100px;
  position:absolute;
  top:50%;
  left:50%;
  margin-left:-50px;
  margin-top:-50px;
}
/* 左外邊距和上外邊距分別設置成寬高的一半 */

具體效果如下:


7.浮動元素有什么特征侵佃?對其他浮動元素麻昼、普通元素、文字分別有什么影響?

浮動元素的特征:

  • 浮動元素將脫離文檔流趣钱,不占據文檔的空間
  • 添加浮動屬性且不設置寬高,內容會將撐開盒子胚宦,類似inline-block


  • 設置寬高和float后首有,相當于懸浮的inline-block

    浮動元素對其他元素的影響:
  • 對浮動元素的影響,詳見第2題浮動篇枢劝;
  • 對普通元素的影響井联,普通元素會占據浮動元素原來所在的文檔位置;
  • 對文字而言您旁,除了自身的文字外烙常,其他元素中的文字一律環(huán)繞浮動元素周圍;

8.清除浮動指什么? 如何清除浮動?

清除浮動是指對浮動元素所產生的影響其他元素的浮動效果予以清除鹤盒,以期達到開發(fā)者期望的布局蚕脏。
針對浮動產生的問題,清除浮動可以分為兩種:

  • 浮動元素使得同級的非浮動元素緊隨其后

可以在浮動元素中添加clear:left|right|both達到清除浮動,即不允許浮動元素的左側侦锯、右側或兩側出現其他浮動元素

  • 如果子元素是包裹在自適應寬高的父元素中驼鞭,那么一旦該子元素浮動,父元素的高度會“塌陷”尺碰,因為父元素的高度就是子元素的高度挣棕,浮動使得子元素脫離文檔流,讓父元素認為子元素“不存在”了

方法:在父元素中添加clearfix樣式,設計思想就是在父元素前或后加入一個內容為空的盒子亲桥,并設置這個盒子具有clear屬性洛心,從而使得前面的浮動元素“無處可逃”
具體代碼如下:

.clearfix{
  overflow:hidden;
  *zoom:1; /* for ie 6*/
}

或者

.clearfix:before, .clearfix:after
{ content: ""; display: table;}
.clearfix:after{ clear: both;}
.clearfix
{ *zoom: 1; /* for ie 6,7*/}

demo


9.代碼

代碼地址:github
寫出如下兩欄布局, 其中中間區(qū)塊寬度900px, 居中,左側邊欄寬度200px, 右側邊欄寬度700px

  • ps: 圖片左浮動,導航欄整體右浮動题篷,導航欄里面的li元素左浮動词身。
  • ps: aside左浮動,main左浮動
  • 凡是有浮動的地方番枚,其直接父元素必須清除浮動

不使用背景圖片實現如下效果


參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末户辫,一起剝皮案震驚了整個濱河市渐夸,隨后出現的幾起案子,更是在濱河造成了極大的恐慌渔欢,老刑警劉巖墓塌,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡苫幢,警方通過查閱死者的電腦和手機访诱,發(fā)現死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來韩肝,“玉大人触菜,你說我怎么就攤上這事“Ь” “怎么了涡相?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長剩蟀。 經常有香客問我催蝗,道長,這世上最難降的妖魔是什么育特? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任丙号,我火速辦了婚禮,結果婚禮上缰冤,老公的妹妹穿的比我還像新娘犬缨。我一直安慰自己,他們只是感情好棉浸,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布遍尺。 她就那樣靜靜地躺著,像睡著了一般涮拗。 火紅的嫁衣襯著肌膚如雪乾戏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天三热,我揣著相機與錄音鼓择,去河邊找鬼。 笑死就漾,一個胖子當著我的面吹牛呐能,可吹牛的內容都是我干的。 我是一名探鬼主播抑堡,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼摆出,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了首妖?” 一聲冷哼從身側響起偎漫,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎有缆,沒想到半個月后象踊,有當地人在樹林里發(fā)現了一具尸體温亲,經...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年杯矩,在試婚紗的時候發(fā)現自己被綠了栈虚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡史隆,死狀恐怖魂务,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情泌射,我是刑警寧澤粘姜,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站魄幕,受9級特大地震影響相艇,放射性物質發(fā)生泄漏颖杏。R本人自食惡果不足惜纯陨,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望留储。 院中可真熱鬧翼抠,春花似錦、人聲如沸获讳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丐膝。三九已至量愧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帅矗,已是汗流浹背偎肃。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浑此,地道東北人累颂。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像凛俱,于是被迫代替她去往敵國和親紊馏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案蒲犬? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,737評論 1 92
  • 浮動定位 BFC 邊距合并 浮動元素 div的順序是HTML代碼中div的順序決定的朱监。 浮動可以理解為讓某個div...
    nianxiaoge閱讀 711評論 0 0
  • 一赌朋、文檔流的概念指什么凰狞?有哪種方式可以讓元素脫離文檔流? 1、文檔流指的是元素在排列布局中所占用的位置沛慢,具體的說是...
    鴻鵠飛天閱讀 772評論 0 0
  • 學習CSS的最佳網站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,033評論 0 1
  • “我們不設計頁面赡若,我們設計構成元素的系統(tǒng)⊥偶祝”——Stephen Hay 隨著網頁設計的持續(xù)發(fā)展逾冬,我們認識到開發(fā)設計...
    王小其閱讀 8,628評論 6 26