css-浮動,定位

一,文檔流的概念指什么?有哪種方式可以讓元素脫離文檔流?

答:文檔流
W3C規范中并沒有document flow這個概念,只有normal-flow,那么什么是普通流呢,普通流就是html文檔中的元素如塊級元素、行內元素依據他們的顯示屬性按照在html文檔中的先后次序依次顯示。其中塊級元素會自上而下依次排列,行內元素會從左至右依次排布
有三種方式可以讓元素脫離文檔流
絕對定位:position: absolute
固定定位:position: fixed
浮動:float:left/right

二,有幾種定位方式,分別是如何實現定位的,使用場景如何?

答:資料顯示定位有6種方式,包括inherit(繼承)、static(默認)、relative、absolute、fixed和sticky。以下我們著重介紹后四種定位方式

position值 語義 使用場景
relative 讓這個元素"相對于"他自己的位置移動,但是還占居普通流中原來的位置 和absolute一起使用,用于文本框或者圖片等的定位
absolute 絕對定位脫離了文檔流,位置是相對于距離他最近的那個已定位的祖先元素確定的,祖先元素往往使用relative定位。 用于文本框或者圖片等的定位
fixed 懸浮,生成絕對定位的元素,相對于瀏覽器窗口進行定位。元素的位置通過 left, top, right以及 bottom屬性進行規定,它不隨滾動條滾動。 廣告窗口
sticky 這是CSS3新屬性,表現類似position:relative和position:fixed的合體。當在目標區域在屏幕中可見時,它的行為就像position:relative; 而當頁面滾動超出目標區域時,它的表現就像position:fixed,它會固定在目標位置。 搜索框

參考資料

三,absolute, relative, fixed偏移的參考點分別是什么?

答:

  • relative:相對于自己在文檔流中的位置進行偏移。
  • absolute:相對于距離他最近的那個已定位的祖先元素確定的,如果沒有已定位的祖先元素,那么就相對于body或者html。
  • fixed:相對于瀏覽器窗口(viewport)進行定位。
四,z-index 有什么作用? 如何使用?

答:,Z-index 屬性用來設置元素的堆疊順序,擁有更高堆疊順序的元素總是會處于堆疊順序較低的元素的前面(Z軸:垂直于顯示器屏幕。)


圖示

1、CSS樣式表中Z-index屬性的一些特征:

  • Z-index屬性的默認值是0
  • 元素可擁有負的 z-index 屬性值,如z-index:-1
  • Z-index屬性無繼承性
  • Z-index屬性JavaScript 使用語法:object.style.zIndex="1"
  • 幾乎所有主流瀏覽器都支持 Z-index 屬性
    2、CSS樣式表中Z-index屬性的使用方法:
    樣式代碼:.box {position:absolute; left:0px; top:0px; z-index:12}

CSS樣式表中Z-index屬性使用的注意事項:
(1)Z-index僅對定位元素有效(如position:relative\absolute\float);
(2)Z-index只可比較同級元素。這也許是大家很容易忽視的問題。也就是說,Z-index只能對同級元素進行分層展示
(3)Z-index的作用域:假設A和B兩個元素都設置了定位(相對定位、絕對定位、一個相對一個絕對定位都可以),且是同級元素,樣式為:.boxA{z-index:4}.boxB{z-index:5}于是,不難看出,元素B的層級要高于元素A,在此需要指出的是,A元素下面的子元素的層級也同樣都低于B元素里的子元素,即使你將A元素里的子元素設為z-index:9999;同理元素B里的子元素,即使是設的z-index:1它照樣比元素A的層級要高;
(4)這個屬性不會作用于窗口控件,如select對象.
(5)在父元素的子元素中設置Z-index的值,可以改變子元素之間的層疊關系;
(6)子元素的Z-index值不管是高于父元素還是低于父元素,只要他們的z-index值是大于等于0的數,他們都會顯示在父元素之上,即壓在父元素上。只要他們的值是小于0的數,則顯示在父元素之下!

(7)相同z-index誰上誰下
相同的z-index其實有兩種情況
a. 如果兩個元素都沒有定位發生位置重合現象或者兩個都已定位元素且z-index相同發生位置重合現象,那么按文檔流順序,后面的覆蓋前面的。

<div style="position:relative;width:200px;height:200px;background-color:#0e0;"></div><div style="position:relative; top:-50px; width:100px;height:100px;background-color:#00e;"><div>

b. 如果兩個元素都沒有設置z-index,使用默認值,一個定位一個沒有定位,那么定位元素覆蓋未定位元素
<div style="position:relative;top:50px;width:200px;height:200px;background-color:#0e0;"></div><div style=" width:100px;height:100px;background-color:#00e;"><div>

參考資料,1參考資料2,參考資料3

五,position:relative和負margin都可以使元素位置發生偏移?二者有什么區別?

答:

  • position:relative:只有元素本身會發生偏移,它還占據著原來的位置,后面的元素不會受到影響。
  • 負margin:
    當把元素的margin-top、margin-left設為負數的時候,不僅元素本身會上移、左移,也會影響到后面的元素發生位置偏移。
    當把元素的margin-right、margin-bottom設為負值的時候,元素本身不發生偏移,但是后面的元素會受其影響。
    參考資料1參考資料2
六,如何讓一個固定寬高的元素在頁面上垂直水平居中?

答:

  1. 絕對定位top left各50%。
  • 負margin top left 二分之一元素寬 高。

使用以下代碼模板
.test{ width: X px; height: Y px; position:absolute; top: 50%; left: 50%; margin-top:-X/2 px; margin-left: -Y/2 px; }
舉例說明:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>normal flow</title>
    <style>
.div1{
    width: 200px;
    height: 200px;
    background-color: red;
    position:absolute;
    top: 50%;
    left: 50%;
    margin-top:-100px;
    margin-left: -100px;
}
    </style>
</head>
<body>
<div class="div1">我是在哪里都居中居中</div>
</body>
</html>
居中
七,浮動元素有什么特征?對其他浮動元素、普通元素、文字分別有什么影響?

答:浮動可以理解為讓某個div元素脫離標準流,漂浮在標準流之上,和標準流不是一個層次。元素浮動之前,也就是在標準流中,是豎向排列的,而浮動之后可以理解為橫向排列。
浮動元素可以向左或向右移動,直到它的外邊緣碰到一個元素(塊級元素或者行內元素)的邊框或另一個浮元素的邊框為止。
由于浮動框不在文檔的普通流中,所以文檔的普通流中的塊框表現得就像浮動框不存在一樣。
綜上:可以細說對其他浮動元素,普通元素,和文字的影響

  1. 浮動元素之間總是緊緊靠在一起橫向排列(按照順序從左往右,或者是從右向左)。如果父容器寬度有限,就會換行繼續橫向排列。
  • 普通元素會無視浮動元素,按照普通流的順序繼續排列(塊級元素從上往下,行內元素從左向右),頁面顯示時,浮動元素會在普通元素的上方。
  • 不管是塊級元素的文字還是行內元素的文字,文本都會會環繞浮動元素排列。
    參考資料1參考資料2
八,清除浮動指什么? 如何清除浮動?

答:.clear : none/left/right/both用于清除浮動所帶來的影響;定義了元素的哪邊上不允許出現浮動元素.
一定要牢記:這個規則只能影響使用清除的元素本身,不能影響其他元素。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,777評論 1 92
  • 一,浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 893評論 0 4
  • 浮動元素有什么特征?對父容器、其他浮動元素、普通元素、文字分別有什么影響? 特征: 浮動元素會脫離正常的文檔流,元...
    饑人谷_哈嚕嚕閱讀 887評論 0 0
  • 文檔流的概念指什么?有哪種方式可以讓元素脫離文檔流? 文檔流就是瀏覽器在頁面上擺放HTML元素所用的方法。瀏覽器從...
    coolheadedY閱讀 575評論 0 0
  • 我們每一個人心中都有一個屬于自己的世界。在自己的世界里,有許許多多不用的概念,比如:幸福感,財富自由,成功等,對每...
    林培智閱讀 1,028評論 5 18