CSS小隨筆(三)浮動與定位

來源:互聯網
上載者:User

標籤:不同類   將不   浮動   實現   調整   合并   改變   也會   otto   

 先來說一下CSS中的浮動

一、浮動

1、標準流中的塊級盒子,寬度將自動伸展為100%,而浮動的塊級盒子,寬度不會自動伸展,而是由內容撐開

2、當一個盒子浮動,標準流中未浮動的其他盒子,將視浮動盒子不存在而佔據浮動盒子原來的位置。(浮動盒子,會蓋在這個盒子的上方)

但是,未浮動盒子中的文字內容,將會受到浮動盒子寬度的影響。(未浮動盒子中的內容,不會被浮動盒子蓋住)

3、由於第二條的原因。

    可以給收影響的盒子,添加clear屬性,清除掉浮動盒子對自身的影響

    clear可選值:left-清除左浮動影響

     right-清除右浮動影響

      both-同時清除左右浮動影響,常用

  4、父盒子沒有指定高度。

    如果子盒子沒有浮動,則父盒子的高度可以被盒子撐開

 

    如果,父盒子中的所有子盒子都浮動,則父盒子高度講變為0

      [解決所有盒子浮動,父盒子高度塌陷的問題]

        ①給父盒子也添加浮動

        ②給父盒子添加overflow屬性;推薦使用!

 

        ③在父盒子最後,添加一個高度為0的空div。給這個div添加clear:both;屬性,清除掉浮動效果

        ④可以將③中的div用偽對象選取器::after實現

#div4::after{display:block;concent:"";height:0px;clear:botn;}

    水平排放的盒子,水平間距數margin的累加

    垂直排放的盒子,垂直間距是合并的去最大值

 

 

 二、定位

  1、相對定位relative

    ①使用position: relative;設定元素為相對定位元素

    ②使用top、right、bottom、left調整元素的位置,當left跟right同時存在時left生效top、bottom同時存在時top生效

 

    ③定位機制:

      a、相對定位是相對於自己原來的位置定位。當top等屬性不指定是,元素位置不會發生不改變

      b、相對定位,不會釋放掉元素在原有文檔流中的位置。不會影響其他文檔流元素的位置

    ④關於元素Z軸重疊

      a、定位元素,預設的Z軸高於普通流文件項目

 

      b、同為定位元素,後來在居上

 

      c、可以使用z-index手動調節定位元素的上下層z軸順序(不加px123什麼的表示的是圖片的順序)

      d、z-index預設為0,而且只能作用於定位元素

 

  2、[絕對位置]

    ①使用position: absolute;設定元素為絕對位置

    ②定位機制:

      a、相對於死一個非static定位的祖先元素進行定位(即相對於使用了relative、absolute、fixed定位的祖先元素進行定位)

      b、如果所有的祖先元素都未定位,則相對於瀏覽器左上方進行定位

      c、使用absolute的元素,會從文檔流中完全刪除,原有空間會被釋放

 

  3、[固定定位 fixed]

    ①使用position: fixed;設定固定定位;

    ②固定定位:是一種特殊的絕對位置!!只是祖先元素無法使用定位鎖住

    ③定位機制:永遠相對於瀏覽器的左上方進行定位,而且不隨捲軸的滾動而滾動

 

  4、[z-index 屬性]

    ① 作用:根據z-index屬性設定的數值,決定元素在z軸方向上的層疊次序

    ② 使用要求:

      a、z-index只能給定位元素調整層疊次序:

      relative、absolute、fixed

      b、元素的z-index屬性要考慮父容器z-index的約束

        >>>如果父容器設定了z-index屬性,則子容器的所有元素,講不能脫離父容器層次的約束。(即,父容器設定了z-index,則子容器只能以父容器數值為準。再給子容器設置了z-index,只能調整子容器在服容器層次之內的層疊次序)

        >>>如果父容器沒有設定z-index,或者設定為z-index:auto;則子容器調整z-index將不受父容器層次約束

    ③ z-index:auto;  &  z-index:o;  之間的異同

      a、 z-index:auto;是預設值,與 z-index:o;處於同一平面

      b、 z-index:o;會約束子項目必須與父容器在同意平面

      z-index:auto;不會約束子項目的層次

 

三、浮動與定位的一些小區別

   float: left|right; 可以自動排文自動折行, 但需要clear來配合清除浮動;position: absolute|relative; 要配合top,left等定位。

    position: absolute會導致元素脫離文檔流,被定位的元素等於在文檔中不佔據任何位置,在另一個層呈現,可以設定z-index。PS的圖層效果就是position: absolute。

    float也會導致元素脫離文檔流,但還在文檔或容器中佔據位置,把文檔流和其它float元素向左或向右擠,並可能導致換行。圖片的文字環繞布局效果就是float。CSS允許任何元素浮動float,不論是映像,段落還是列表。無論先前元素是什麼狀態,浮動後都成為區塊層級元素。浮動元素的寬度預設為auto。

  浮動有一系列控制它的規則。

    1.浮動元素的外邊緣不會超過其父元素的內邊緣。

    2.浮動元素不會互相重疊。

    3.浮動元素不會上下浮動。

    4.如果一個浮動元素在另一個浮動元素之後顯示,而且會超出容納塊,則它下降到低於先前任何浮動元素的位置。說簡單點就是沒有空間的話,就另起一行。

  CSS 有三種基本的定位機制:普通流、浮動和絕對位置。

    除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在 (X)HTML 中的位置決定。

    塊級框從上到下一個接一個地排列,框之間的垂直距離是由框的垂直外邊距計算出來。

    行內框在一行中水平布置。可以使用水平內邊距、邊框和外邊距調整它們的間距。但是,垂直內邊距、邊框和外邊距不影響行內框的高度。由一行形成的水平框稱為行框(Line Box),行框的高度總是足以容納它包含的所有行內框。不過,設定行高可以增加這個框的高度。

 

  CSS position 屬性

    通過使用 position 屬性,我們可以選擇 3 種不同類型的定位,這會影響元素框產生的方式。

  position 屬性值的含義:

    relative:元素框位移某個距離。元素仍保持其未定位前的形狀,它原本所佔的空間仍保留。

    absolute:元素框從文檔流完全刪除,並相對於其包含塊定位。包含塊可能是文檔中的另一個元素或者是初始包含塊。元素原先在正常文檔流中所佔的空間會關閉,就好像元素原來不存在一樣。元素定位後產生一個塊級框,而不論原來它在正常流中產生何種類型的框。

    fixed:元素框的表現類似於將 position 設定為 absolute,不過其包含塊是視窗本身。

      提示:相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。

 

 

  position,我們通常用到的是絕對(absolute)和相對(relative)定位

  通常,做快顯功能表的時候,會用到定位,父元素相對定位position:relative,其中的子項目絕對位置position:absolute,通過top,right,bottom,left的值來控制子項目的位置,要注意的是子項目的位置將相對於父元素,而不是整個頁面。

  浮動與定位的區別

    通過定位雖然也可以進行布局,但是它的特點決定了它不適合做頁面的布局,因為被定義的元素在普通文檔中佔有的任何空間都將被關閉,可以說,它是漂浮在整個頁面上面的,所以,它可以和頁面上其他的內容重疊顯示。

    這個特點可以方便的讓我們做出其他特殊的效果,但是相對與浮動就布局來說,我們更多的還是用浮動。

CSS小隨筆(三)浮動與定位

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.