CSS布局&CSS居中&媒體查詢

關于CSS布局&CSS居中&媒體查詢三者的見解

css布局:

單欄布局:
  • 分為最大寬度和固定寬度,80%以上的頁面使用該方法。
  • 為了編寫簡單和使用方便一般使用固定寬度。
雙列布局:
  • 一列固定寬度,一列自適應寬度(在html中需要先寫固定寬度再寫自適應寬度)。
三欄布局:
  • 兩側固定寬度,中間自適應寬度(在html中需要先寫固定寬度再寫自適應寬度))。
圣杯與雙飛翼布局:
  • 圣杯布局也雙飛翼布局也都達到了上述的三欄布局效果;
  • 圣杯布局也雙飛翼布局主要是為了突出中間的固定寬度的主體部分;
  • 二者在html中先寫自適應寬度再寫固定寬度,為了突出主體的重要性;
  • 圣杯布局在瀏覽器縮小到一定程度時候,會出現樣式錯誤。但是在雙飛翼布局中解決了上述問題,但是代碼量也更大了。
水平等距排列:
  • 主要是使用浮動和負margin達到該效果。
流式布局:
  • 百分比布局,也叫流式布局,因為寬度是百分比,但是高度是按px來寫的;
  • 適用頁面特點:左側固定+右側自適應或者左右固定寬度+中間自適應(專業一點說法:關鍵元素高寬和位置都不變,只有容器元素在做伸縮變換)
flex布局:
  • Flexbox為css提供了功能強大的彈性布局方式。
  • 在PC端兼容性稍差,移動端是其天然適合的場景(關于flex布局后續有獨立的一文作詳解)。
display:flex;
grid布局:
  • 網格布局(Grid)是最強大的 CSS 布局方案。
  • 它將網頁劃分成一個個網格,可以任意組合不同的網格,做出各種各樣的布局。以前,只能通過復雜的 CSS 框架達到的效果,現在瀏覽器內置了。
  • Grid 布局與 Flex 布局有一定的相似性,都可以指定容器內部多個項目的位置。但是,它們也存在重大區別。
    • Flex 布局是軸線布局,只能指定"項目"針對軸線的位置,可以看作是一維布局。
    • Grid 布局則是將容器劃分成"行"和"列",產生單元格,然后指定"項目所在"的單元格,可以看作是二維布局。Grid 布局遠比 Flex 布局強大。
  • 目前對于老式瀏覽器兼容性差,對與IE11仍有問題。
移動端布局:
  1. 設置meta;
  2. 適配是移動端的關鍵,一般使用媒體查詢或者復雜的動態rem解決,使用flex也是移動端布局的常用方案。

css居中:

水平居中:
  • text-align:center;給文字或者圖片的父元素設置text-align:center,使文字或者圖片達到水平居中的效果。對于其他行內元素一樣有效,例如inline-block后的容器。
  • margin:0 auto;在塊級元素中,給它設置一個寬度,并且使其margin-left等于margin-right便可達到水平居中的效果。因為塊級元素充滿一整行,所以需要設置一個寬度,否則就沒有水平居中的說法。
垂直居中:
  1. 利用padding-left等于padding-right,達到垂直居中的效果;
  2. 絕對定位達到垂直居中效果;先設置元素position:當absolute;left:50px;top:50%; 元素為設置寬高的時候可以使用transform:translate(-50%,-50%);在元素設置了寬高的時候,可以使用負margin其寬高的50%達到效果。前者兼容性稍差,不支持老式的瀏覽器,例如IE9之前的IE;
  3. vertical-align實現居中效果,vertical-align:middle;可以讓行內元素或者表格元素在它的父容器基線上對齊實現垂直居中;
  4. table-cell實現居中,把元素display:table-cell;并設置vertical-align:middle;(垂直方向)和text-align:center;(水平方向);可以實現垂直居中,但是display:table-cell會把元素渲染為行內元素,對于寬度會有一定影響,因為元素會收縮;
  5. display:flex;告訴容器其內容該如何布局
    寫法:
    • dispaly:flex;(設置彈性布局)
    • align-items: center;(設置垂直居中)
    • justify-content:center;(設置水平居中)

CSS響應式——媒體查詢

媒體查詢:
  • 在css2已經可以使用@media,但是功能比較少;在css3后,@media變得更加強大;
  • css語法主要分為兩種,一種的是@開頭的例如@media,@import等等,還有一種就是選擇器;
  • @media print{}主要用于開發者需要網頁打印的樣式與瀏覽器展示不一樣時,用于書寫打印文件的樣式;
  • @media screen and (max-width: 990px){}表示屏幕最大寬度為990px時,則大括號內容生效;
and操作符:
  • and操作符用于將多個media feature組合成一個查詢,同時用于組合media type和media feature,一個基本的media query類似這樣,一個media feature作用于所有的mediatype;由于現在一般都是展示在視窗上,所以也可以這樣寫:@media (min-width:700px){};
  • 如果只想在橫向顯示時應用就可以使用and操作符把media type和media feature結合起來;@media(min-width:700px;)and(orientation:landsape){};這樣上面的media query只在可視窗口最小是700px并且橫向顯示的時候才返回true;例如:在我們需要豎屏的時候且用戶設備為橫屏的時候,可以利用css讓用戶豎屏;
  • @media screen 表示在屏幕情況下看到的樣式。
media features:

media features是媒體查詢的參數,例如上面:min-width:800px。

  1. width:瀏覽器寬度
  2. height: 瀏覽器高度
  3. device-width: 設置屏幕分辨率的寬度值;
  4. device-height: 設置屏幕分辨率高度值;
  5. orientation: 瀏覽器窗口的方向是縱向還是橫向,當窗口的高度值大于等于寬度時該特性值portrait,否則為landscape;
  6. aspect-ratio:比例值,瀏覽器的縱橫比;
  7. devce-aspect-ratio:比例值,屏幕的縱橫比;
  8. color: 設備使用多少位的顏色值,如果不是彩色設備,值為0;
  9. color-index: 色彩表的色彩數;
  10. monochrome: 單色幀緩沖器每個像素的字節;
  11. resolution: 分辨率值,設備分辨率值;
  12. scan: 電視機類型設備方式,progressive或interlace;
  13. grid: 只能指定兩個值0或1,是否基于柵格的設備。
媒體查詢的用法:
  • 注意先后順序,寫的時候一般放在下方,還要注意選擇器的權重,一般來說媒體查詢的權重高一些。@import也可以引用媒體查詢
  • 響應式一般要配合浮動一起使用,也可以和flex和grid一起使用。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379