【CSS全解01】CSS基礎-體系化學CSS

大綱

  • 基礎部分學習佔比:HTML 1%`CSS 19%Javascript 80%`(`基礎部分 ?%框架 ?%`項目 ?%)
  • CSS歷史
  • Acid Test for browser
  • CSS是藝術(非邏輯,用測試經驗來學,空間感,所見即所學)
  • CSS版本(CSS4* 分模塊升級 模塊版本level 搜css spec
  • 體系化學習?CSS mdn參考
  • 文檔流(Normal Flow)
  • 盒模型([Content | Border] Box)

xx層疊?樣式表(進行樣式聲明)css

  • 樣式重疊(屢次對同一選擇器)
  • 選擇器重疊(用不一樣選擇器對同一元素)
  • 文件重疊(多個文件)
樣式層疊覆蓋,CSS極度靈活(不正交 屬性、樣式不一一對應肯定)

瀏覽器業界毒瘤(QQ、百度),扛把子UC,新星夸克html

  • CanIUse 看數據時不用翻譯,看註釋時用
  1. Edge 對 calc() within grid 支持很差
  2. Safari 仍然不支持intrinsic and extrinsic sizing with grid 的屬性 grid-template-rows

體系化學CSS?若不自*,也可成功

googlecss specweb

  • TL,DR 在CSS新知識到來的時候,立刻學會

寫CSS必須學會先

  • 語法(寫代碼)
  • 調試(哪寫錯)
  • 查資料(爲了抄)
  • 標準制定者

CRM學習法以外的在線臨時調試playgroundchrome

codesandboxcodepenJSBinjsFiddlesegmentfault

CSS語法一:樣式語法

selectors-list {
  properties-list
}

選擇器{
    屬性名:屬性值;
    /* 只有註釋 */
}
selectors-list ::= selector[:pseudo-class] [::pseudo-element] [, selectors-list]

properties-list ::= [property : value] [; properties-list]瀏覽器

eg.框架

.a,
#b,
[c="d"]>e f,
g+h,
i~j{
    border:1px red solid;
}
strong {
  color: red;
}
div.menu-bar li:hover > ul {
  display: block;
}

注意事項

  • 全部符號都是英文符號,IDE只開英語輸入,中文從記事本里粘貼進來(開不一樣應用不一樣輸入法:both Win & Mac);標點寫錯,瀏覽器會警告,但不報錯
  • 區分大小寫,a 和 A 不一樣
  • 沒有//註釋,只是把選擇器拼錯不生效而已
  • 最後一個分號建議不要省略
  • 任何地方寫錯了,都不報錯,瀏覽器會直接忽略,繼續渲染,只給警告⚠️
  • 怎麼糾錯?調試看下文
注意,規則定義中的任何CSS語法錯誤都將使整個規則無效。無效的規則將被瀏覽器忽略。

注意CSS定義徹底是基於文本(ASCII)的。ide

eg.工具

p{
    /* 正確 */
    color:red;
    /* 不正規的「註釋」:拼錯 */
    xcolor:red;
    //color:red;
    /* 註釋 */
    /* color:red; */
}

CSS語法二:經常使用@語法

@charset "UTF-8"; /* 必須放在第一行;必須以分號`;`結尾 */
@import url(2.css); /* 導入另外一個CSS文件;必須以分號`;`結尾 */
@media (min-width:100px) and (max-width:200px){
    /* 語法一:樣式語法 */
}

注意事項2

  • @charset必須放在第一行,解析中文字符
  • 前兩個@語法必須以分號;結尾
  • @media 單獨學
  • charset字面是字符集的意思,UTF-8是字符編碼 encodeing,歷史遺留問題,encodeing ∈ charset
問:charset 指什麼?;答:指文件編碼(而不是字符集)。

調試CSS

方法

  • 使用W3C驗證器(命令行工具),麻煩 不用
  • VSCode看顏色(semi-colon)大概的位置,不精確,不智能
  • WebStorm看顏色 (精肯定位錯誤;智能提示)
  • 開發者工具看警告
  • css xxx generator
eg. google css gradient generator`css shadowbox generator`

瀏覽器開發者工具的使用步驟

  • 用指針找到元素
  • 看它是否有選擇器
  • 看它的樣式是否被劃掉(⚠️黃色三角警告 +刪除線+ 提示非法值 invalid property value )
  • 被其餘樣式覆蓋或寫錯
  • 看它的樣式是否有警告

Border調試法

步驟
  • 定位某個元素有問題
  • 給這個元素加border
  • border沒出現?選擇器或語法錯了,拼錯
  • border出現了,看看邊界是否符合預期
  • bug解決了才能夠吧border 刪掉
  • 逐行移動border:1px solid red;看選擇器是否生效;屬性匹配到哪一個屬性了;具體哪一個屬性失效;
  • 加到VScode 等IDE的snnipets裏,每次省個幾秒:border大法好,用border得永生,現已加入snippets豪華套餐
  • 好像和Emmet想到一塊去了:emmmet bd
注意
  • CSS的border調試法就至關於JS的log調試法
  • 重複使用

常見錯誤

低級錯誤

  • 拼寫錯誤(選擇器、屬性名、屬性值)
  • 大小寫
  • 漏掉分號
  • 非英文符號
  • 反花括號漏掉
  • 沒寫單位
排除錯誤:推理,把正確可能性排除,剩下的不管看起來多對,確定有錯

非低級錯誤

  • 沒有

查資料

網站

書籍

  • 不推薦,以練習爲主

搜練習素材(注意版權及商用法律風險)

PSD

效果圖(可能不提供下載,肉眼,或工具扒)

仿商業網站(排名按喜愛>分>先>後)

hobby:post

tech blog:

勿沉迷臨摹

  • 每一個類型臨摹一兩個便可
  • PC站、移動端、UI套件
  • 再多無益
WB不超過一年半,don't repeat yrself

CSS標準制定者:你爵士和耐先生

規範是你遇到問題用來查的——字典級文檔

開始CRM學習法

抄-運行-改

·未完待續·


參考文章

CSS 基礎概念.pdf

相關文章


相關文章
相關標籤/搜索