html頁面布局


   布局的常用方法有幾下幾種

一,float布局

float 屬性定義元素在哪個方向浮動。以往這個屬性總應用於圖像,使文本圍繞在圖像周圍,不過在 CSS 中,任何元素都可以浮動。

浮動元素會生成一個塊級框,而不論它本身是何種元素。

屬性值:

float:left        元素向左浮動。

float:reght     元素向右浮動。

float:none     默認值。元素不浮動,並會顯示在其在文本中出現的位置。

float:inherit   規定應該從父元素繼承 float 屬性的值。

float案例:

 <div style="width:100px; height: 40px; background-color: black;float: right;"> </div>
       <div style="width:100px; height: 40px; background-color: #FF0000;float: left;"> </div>
       <div style=" width: 100px; background-color: #0000FF; height: 40px; float: left;"> </div>

效果:(如果不用浮動div塊將會一次垂直往下排列)浮動后的塊元素可以用magin或pading來留白修飾來使其美觀。

二、absolute布局

absolute譯為絕對的,absolute是postion屬性一個屬性值。當一個元素使用絕對定位時,這個元素將不受頁面的布局影響

可以根據自己的需求來改變其位置,來完成一些不規則的頁面布局:

屬性值:

postion:absolute     生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。

postion:fixed           生成絕對定位的元素,相對於瀏覽器窗口進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。

postion:relative        生成相對定位的元素,相對於其正常位置進行定位。因此,"left:20" 會向元素的 LEFT 位置添加 20 像素。

postion:static           默認值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。

postion:inherit          規定應該從父元素繼承 position 屬性的值。

absolute 中有一個值的注意的地方 相對於 static 定位以外的第一個父元素進行定位  在使用絕對定位時要注意他父元素數的定位,假若對父元素沒有要求

可以給父元素設置一個相對定位relative。對於新手來說,定位之間的切換,父級和下一級之間的關系常常擾亂我們(我就是這樣)所以要勤加練習更好的

掌握 。

absolute 案例:

<style type="text/css">
            .div1{
                width: 100px;
                height: 40px;
                background-color: #FF0000;
                position: absolute;
                top: 20px;
                left: 30px;
            }
            .div2{
                width: 100px;
                height: 40px;
                background-color: #0000FF;
            }
        </style>
    </head>
    <body>
       <div class="div1"> </div>
       <div class="div2"> </div>
       <div class="div3"> </div>
    </body>

效果:(使用絕對定位將紅色塊定位到距離上邊框20px左邊框30px)如果想讓藍色的div塊在上面,可以用在藍色樣式加絕對定位用z-index:1來設置

                     

 

 

 

 三、flex彈性布局

        彈性布局東西太多不寫了直接看別人的博客吧我看着蠻好   http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

四、table布局 (鏈接:https://blog.csdn.net/Bessicxie/article/details/78572424)

      Table布局的缺點是比其它html標記占更多的字節,會阻擋瀏覽器渲染引擎的渲染順序,會影響其內部的某些布局屬性的生效,

優點就是用table做表格是完全正確的

語法:display:table;

屬性:常見   display:table相當於“table”標簽;display:table-row相當於“tr”標簽;display:table-cell相當於“td”標簽;

 

 

 

 案例:

 

 

 五、grid布局(鏈接:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html

內容來源  作者:_leonlee

                 鏈接:https://www.jianshu.com/p/d183265a8dad
                 來源:簡書

作為小白的我還是第一次來了解grid布局,剛剛百度了一下子看了幾篇博文,了解到這是一個非常nb的東西

簡介
         CSS網格布局(又稱“網格”),是一種二維網格布局系統。CSS在處理網頁布局方面一直做的不是很好。一開始我們用的是table(表格)布局,然后用float(浮動),position(定位)和inline-block(行內塊)布局,但是這些方法本質上是hack,遺漏了很多功能,例如垂直居中。后來出了 flexbox(盒子布局),解決了很多布局問題,
但是它僅僅是一維布局,而不是復雜的二維布局,實際上它們(flexbox與grid)能很好的配合使用。Grid布局是第一個專門為解決布局問題而創建的CSS模塊,2012
年11月06日成立 草案
          使用Grid布局非常簡單,你只需要給容器(container)定義:display:grid,並設置列(grid-template-columns)和 行(grid-template-rows)的大小,然后用grid-column和grid-row定義容器子元素(grid-item項目)的位置。與flexbox布局類似,一開始項目的排列順序並不重要,可以放置在容器的任何位置,這也使得你非常容易通過媒體查詢重新排列你的項目。想象一下,當你定義整個頁面的布局時,你只需要幾行CSS就可以完成頁面重排以便適應各種屏幕寬度,這得有多么神奇!
好東西總是來的晚,不要焦躁,不要沮喪。活好每一天,自然就等到了。
目前瀏覽器還不支持Grid布局,IE10和IE11支持老的語法。如果你想體驗Grid布局的強大,推薦使用開通過“體驗新功能”的Chrome, Opera 或 Firefox, Chrome:打開瀏覽器,輸入 chrome://flags,找到"experimental web platform features",啟用並重啟瀏覽器;Opera:輸入 opera://flags,與Chrome一樣;Firefox:輸入layout.css.grid.enabled。
屬性:
1. display: grid | inline-grid | subgrid       
            grid: 生成塊級網格
             inline-grid: 生成行內網格
             subgrid: 如果網格容器本身是網格項(嵌套網格容器),此屬性用來繼承其父網格容器的列、行大小。
2. grid-template-columns: <track-size> ... | <line-name> <track-size> ... ;
              track-size: 軌道大小,可以使用css長度,百分比或用分數(用fr單位)。
            line-name: 網格線名字,你可以選擇任何名字。
3.grid-template-areas
              grid-area-name: 網格項的grid-area屬性值(名字)
             ‘.’ : 空網格單元
            none: 不定義網格區域
4. grid-column-gap:<line-size>; 和 grid-row-gap: <line-size> 
           line-size: 網格線間距,設置單位值。
5. grid-gap:<grid-row-gap> <grid-column-gap>;
          是grid-column-gap 和 grid-row-gap簡寫。
6. justify-items: start | end | center | stretch(默認) ;
          start: 左對齊
         end: 右對齊。
         center: 居中對齊。
        stretch: 填滿(默認)
7. align-items: start | end | center | stretch ;
          start: 頂部對齊。
         end: 底部對齊。
         center: 居中對齊。
         stretch:填滿(默認)。
此處省略一萬字.....................
     grid  內容原文鏈接 (鏈接  https://www.jianshu.com/p/d183265a8dad)
本來就想寫剛剛會的兩個的,但是一百度居然有這么多我沒用過的布局,所以記下來留個印象,好歹以后有點印象
 內容若侵權請告知


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM