CSS佈局方式

CSS佈局知識框架

  • css知識體系中的重點
  • 早期以table爲主
  • 後來以技巧性佈局爲主
  • 現在有flexbox/grid
  • 響應式佈局

常用佈局方法

  • table表格佈局
  • float浮動+margin
  • inline-block佈局
  • flexbox佈局

表格佈局優點外部寬度可以固定,內部元素自適應,文字自動vertical-align:middle


盒子模型

在這裏插入圖片描述

  • margin
  • border
  • padding
  • content(width,height)

display/position

  • 確定元素的顯示類型 display(block/inline/inline-block)
  • 確定元素的位置 position(static/relative/absolute/fixed)

relative 是相對於元素本身的位置,不會改變其他元素對於佈局的計算
absolute 是相對於最近的帶有ralative的父元素,與文檔流無關,絕對定位元素居中可使用 transform: translate(-50%, -50%);來移動元素位置。

fixed 是相對於可視區域,與文檔流無關
sticky 初始和relative一樣,如果給定距離且劃出距離範圍的時候等同於fixed

tips:
z-index 設定Z軸層級 relative absolute fixed sticky 可以設定而且其默認層級高於static, static默認是0且不可更改
absolute、fix指定的元素默認初始寬高是0,relative、sticky初始寬高是取決與外部寬度的


flexbox彈性盒子

低版本的IE不支持
即使是chrome firefox 等瀏覽器對其支持的版本也不同
詳細使用方法會再開一篇文章來描述
詳細內容:


grid 網格佈局

詳細內容:


float

適合做圖文混排

  • 元素浮動
  • 脫離文檔流
  • 但不脫離文本流

對自身的影響

  • 形成“塊”(BFC)
  • 位置儘量靠上

對父級元素的影響

  • 脫離文檔流
  • 高度塌陷

詳細內容:


inline-block

  • 像文本一樣排block元素
  • 沒有清除浮動等問題
  • 需要處理間隙

處理間隙方式,父元素文本大小設爲0
間隙是由於HTML中寫法兩個子元素中間的空白導致的,可以刪掉或註釋掉中間的空白。
適合用於固定寬度的佈局


※響應式佈局

  • 不同設備上的正常使用
  • 一般主要處理屏幕大小的問題
  • 主要方法:隱藏、折行、自適應空間
  • rem/viewport/media query
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
/*媒體查詢*/
@media(max-width:640px){
	selecter{
		property:value;
	}
} 

rem=root em
rem是根目錄的字體大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章