å¤ç常è§ç HTML å CSS é®é¢
éè¿ä¹åçåå¤å·¥ä½ï¼æä»¬ç°å¨å°ä¸é¨ç ç©¶å¨ HTML å CSS 代ç ä¸å¸¸è§çè·¨æµè§å¨é®é¢ï¼ä»¥åå¯ä»¥ç¨æ¥é¢é²æè§£å³è¿äºé®é¢çå·¥å ·ãè¿å æ¬ä»£ç éæåæãå¤ç CSS åç¼ãä½¿ç¨æµè§å¨å¼åè å·¥å ·è¿½è¸ªé®é¢ãä½¿ç¨ polyfill 为æµè§å¨æä¾æ¯æï¼ä»¥åè§£å³ååºå¼è®¾è®¡çé®é¢çã
| åæï¼ |
çææ ¸å¿ç HTMLãCSS å JavaScript è¯è¨çåºæ¬ç¥è¯ï¼äºè§£è·¨æµè§å¨æµè¯ä¸æ¶åçé«çº§æ¦å¿µã |
|---|---|
| ç®æ ï¼ | è½å¤è¯æå¸¸è§ç HTML å CSS è·¨æµè§å¨é®é¢ï¼å¹¶ä½¿ç¨éå½çå·¥å ·åææ¯æ¥è§£å³å®ä»¬ |
HTML å CSS çé®é¢
HTML å CSS çé®é¢å¨äºï¼å®ä»¬ç¸å½ç®åï¼ç®åå°å¼å人åé常ä¸ä¼è®¤çå¯¹å¾ å®ä»¬ï¼å æ¤é¾ä»¥ç¡®ä¿ä»£ç ç®æ´ãé«æï¼ææ¯è½å¨è¯ä¹ä¸æè¿°é¡µé¢åé¨åçç¹æ§ã卿åçæ åµä¸ï¼ä¸äºç½ç«çè³éæ©ä½¿ç¨ JavaScript æ¥çææ´ä¸ªç½é¡µçå å®¹åæ ·å¼ï¼è¿ä½¿å¾é¡µé¢çå¯è¯»æ§å¾å·®ï¼å¹¶ä¸æ§è½ä½ä¸ï¼çæå¤§é DOM å ç´ çæä½ä»£ä»·å¾æè´µï¼ãææ¶åï¼ææ°çç¹æ§å¹¶ä¸è½å¨æµè§å¨ä¸å¾å°ä¸è´çæ¯æï¼è¿å¯è½ä¼å¯¼è´æäºç¹æ§åæ ·å¼å¯¹æäºç¨æ·ä¸èµ·ä½ç¨ãååºå¼è®¾è®¡çé®é¢ä¹å¾å¸¸è§ââä¸ä¸ªå¨æ¡é¢æµè§å¨ä¸çèµ·æ¥ä¸éçç½ç«ï¼å¨ç§»å¨è®¾å¤ä¸å¯è½ä¼ä½éªå¾ç³ç³ï¼å 为å 容太å°èæ æ³é è¯»ï¼æè å 为大éçå¨ç»è导è´ç½ç«è¿è¡ç¼æ ¢ï¼ã
让æä»¬ç»§ç»æ¢è®¨å¦ä½åå°ç± HTML/CSS å¼èµ·çè·¨æµè§å¨é误ã
é¦å ï¼è§£å³ä¸è¬é®é¢
卿¬ç³»åç第ä¸ç¯æç« ä¸ï¼æä»¬æå°äºä¸ä¸ªææççç¥ï¼é¦å å¨å ç§ç°ä»£æ¡é¢åç§»å¨æµè§å¨ä¸æµè¯ä½ ç代ç 以确ä¿å ¶æ£å¸¸è¿è¡ï¼ç¶ååè§£å³è·¨æµè§å¨çå ¼å®¹æ§é®é¢ã
卿们çè°è¯ HTML åè°è¯ CSS æç« ä¸ï¼æä»¬ä¹æä¾äºä¸äºåºç¡ç HTML å CSS è°è¯æåââå¦æä½ å¯¹è¿äºåºç¡ç¥è¯è¿ä¸å¤ªçæï¼å»ºè®®ä½ å¨ç»§ç»ä¹åå é 读è¿äºå 容ã
æ»çæ¥è¯´ï¼è¿æ¶åå°æ£æ¥ä½ ç HTML å CSS ä»£ç æ¯å¦æ ¼å¼è§èãæ ä»»ä½è¯æ³é误ã
夿³¨ï¼CSS ä¸ HTML ä¹é´çä¸ä¸ªå¸¸è§æææ¯ CSS è§åä¹é´çå²çªãå½å¼å
¥ç¬¬ä¸æ¹ä»£ç æ¶ï¼è¿äºé®é¢å¯è½åå¾å¾æ£æãæ¯å¦ï¼ä½ å¯è½å¨ä½¿ç¨æä¸ª CSS æ¡æ¶æ¶ï¼åç°å®çæä¸ªç±»åä¸ä½ å·²ç»å¨å
¶ä»å°æ¹ä½¿ç¨çç±»å产çäºå²çªãæè
ï¼ä½ å¯è½ä¼æ³¨æå°ï¼æäºç¬¬ä¸æ¹ APIï¼å¦ç¨äºçæå¹¿å横å¹
çèæ¬ï¼çæç HTML ä¸å
å«äºä¸ä½ å¨å
¶ä»å°æ¹ä½¿ç¨çç±»åæ ID ç¸åçåç§°ã为äºé¿å
è¿ç§æ
åµï¼ä½ éè¦å
ç ç©¶ä½ æä½¿ç¨çå·¥å
·ï¼å¹¶å¨è®¾è®¡ä»£ç æ¶èèå¦ä½ä¸å®ä»¬å使é¿å¼å®ä»¬ãç» CSS æ·»å âå½å空é´â乿¯ä¸ä¸ªä¸éçåæ³ï¼ä¾å¦ï¼å¦æä½ æä¸ä¸ªå°ç»ä»¶ï¼ç¡®ä¿å®æä¸ä¸ªå¯ä¸çç±»åï¼å¹¶ä½¿ç¨è¿ä¸ªç±»åæ¥éæ©ç»ä»¶å
çå
ç´ ï¼è¿æ ·å¯ä»¥åå°å²çªçå¯è½æ§ãä¾å¦ï¼ä½¿ç¨ .audio-player ul aã
éªè¯
å¨ç¼å HTML æ¶ï¼è¯·ç¡®ä¿æææ ç¾é½è¢«æ£ç¡®å ³éååµå¥ï¼å£°ææ£ç¡®ç DOCTYPEï¼å¹¶ä¸æ°å½ä½¿ç¨åç§æ ç¾ãä¸ä¸ªææççç¥æ¯å®æå¯¹ä»£ç è¿è¡éªè¯ãW3C æ è®°éªè¯æå¡å°±æä¾äºè¿æ ·çåè½ï¼åªéæäº¤ä½ ç代ç ï¼å®ä¾¿ä¼ååºææé误ã

å¯¹äº CSSï¼åæ ·éè¦ç¡®ä¿å±æ§åå屿§å¼çæ¼åæ 误ï¼å¹¶ä¸å±æ§çä½¿ç¨æ¯æ°å½çï¼ä¸ä¼éæ¼ä»»ä½å¤§æ¬å·çã为æ¤ï¼W3C æä¾äº CSS éªè¯å¨ã
Linter
å¦ä¸ä¸ªå¾å¥½çéæ©å°±æ¯æè°ç Linter ç¨åºï¼å®ä¸ä» å¯ä»¥æåºé误ï¼è¿å¯ä»¥æ è®°å ³äº CSS ä¸ä¸è¯åæ³çè¦åï¼ä»¥åå ¶ä»ä¸äºè¦ç¹ãLinter å¯ä»¥å®å¶ï¼ä»¥ä½¿é误/è¦åæ¥åæ´ä¸¥æ ¼æè æ´å®½æ¾ã
æè®¸å¤å¨çº¿ Linter ç¨åºï¼å ¶ä¸æå¥½çå¯è½æ¯ Dirty Markupï¼HTMLãCSS 以å JavaScriptï¼å CSS Lintï¼ä» é CSSï¼ãä½ å¯ä»¥æä»£ç ç²è´´å°çªå£ä¸ï¼ç¶åå®ä»¬ä¼ç¨ååæ è®°ä»»ä½é误ï¼å¹¶ä¸ä½ 坿¬åå¨è¿äºæ è®°ä¸ï¼ä»¥è·å¾é误信æ¯ãDirty Markup è¿å è®¸ä½ ä½¿ç¨æ¸ çæé®ä¿®å¤ä½ çæ è®°ã

使¯ï¼å°ä»£ç å¤å¶å¹¶ç²è´´å°ç½é¡µä¸æ¥æ£æ¥å ¶æææ§å¹¶ä¸å¤ªæ¹ä¾¿ãçæ£éåä½ ç Linter åºå½å¯ä»¥åä½ ç工使µæ´å å¥åï¼åå ä¸åçªå£åæ¢ç麻ç¦ã
许å¤ç¼è¾å¨é½æ linting æä»¶å¯ç¨ãä¾å¦ï¼
- SublimeLinterï¼ç¨äº Sublime Text
- Notepad++ linter
- VSCode linter
æµè§å¨å¼åè å·¥å ·
大夿°æµè§å¨ä¸å ç½®çå¼åè å·¥å ·ä¹æä¾äºæç¨çå·¥å ·æ¥æ¥æ¾é误ï¼ä¸»è¦æ¯é对 CSS çã
夿³¨ï¼å¨å¼åå·¥å ·ä¸ï¼HTML é误ä¸ä¼ç´æ¥æ¾ç¤ºï¼å 为æµè§å¨ä¼å°è¯èªå¨çº æ£éè¯¯çæ è®°ï¼ç®åï¼W3C éªè¯å¨æ¯ä½³çè·å HTML éè¯¯çæ¹æ³ââ请åé ä¸é¢çéªè¯ã
ä¾å¦ï¼å¨ Firefox ä¸ï¼CSS æ£æ¥å¨å°æ¾ç¤ºæªåºç¨ç CSS 声æï¼å¹¶å¸¦æè¦åä¸è§å½¢ãæ¬åå¨è¦åä¸è§ä¸ï¼å ¶å°æä¾æè¿°æ§çé误信æ¯ï¼

å ¶ä»çæµè§å¨å¼åè å·¥å ·ä¹æç¸ä¼¼çç¹æ§ã
常è§çè·¨æµè§å¨é®é¢
ç°å¨è®©æä»¬ç»§ç»äºè§£ä¸äºå¸¸è§çè·¨æµè§å¨ HTML å CSS é®é¢ãè¿éï¼æä»¬å°é¦å å ³æ³¨é£äºç±äºæäºæµè§å¨å¯¹ç°ä»£åè½åå¸å±æ¯æä¸è¶³è导è´çé®é¢ã
æµè§å¨ä¸æ¯ææ°ç¹æ§
è¿æ¯ä¸ä¸ªå¸¸è§çé®é¢ï¼ç¹å«æ¯å½ä½ éè¦æ¯ææ§çæµè§å¨æè
ä½¿ç¨æäºæµè§å¨å°æªå®å
¨å®ç°çåè½æ¶ãæ»ä½èè¨ï¼å¤§å¤æ°æ ¸å¿ç HTML å CSS åè½ï¼å¦åºæ¬ç HTML å
ç´ ãCSS åºæ¬é¢è²åææ¬æ ·å¼ï¼éç¨äºä½ éè¦æ¯æçæææµè§å¨ï¼å½ä½ å¼å§ä½¿ç¨è¾æ°ç HTMLãCSS å API æ¶ï¼å¯è½ä¼åºç°æ´å¤é®é¢ãMDN æ¾ç¤ºäºæ¯ä¸ªç¹æ§çæµè§å¨å
¼å®¹æ§æ°æ®ï¼ä¾å¦ï¼è¯·åé
:has() ä¼ªç±»çæµè§å¨æ¯æè¡¨æ ¼ã
䏿¦ä½ ç¡®å®äºå°è¦ä½¿ç¨ä½ä¸è¢«æ®éæ¯æçææ¯åè¡¨ï¼æå¥½ç ç©¶ä¸ä¸å®ä»¬å¨åªäºæµè§å¨ä¸åæ¯æï¼ä»¥åç¸å ³çæç¨æå·§ã请åé ä¸é¢ç寻æ±å¸®å©ã
HTML åéè¡ä¸º
æäºé®é¢å¯ä»¥éè¿å©ç¨ HTML/CSS çèªç¶å·¥ä½æ¹å¼æ¥è§£å³ã
æµè§å¨ä¼å°æ æ³è¯å«ç HTML å
ç´ è§ä¸ºå¿åè¡çº§å
ç´ ï¼å®é
䏿¯æ²¡æè¯ä¹å¼çè¡çº§å
ç´ ï¼ç±»ä¼¼äº <span> å
ç´ ï¼ãä½ ä»ç¶å¯ä»¥éè¿å®ä»¬çåç§°å¼ç¨å®ä»¬ï¼å¹¶ä½¿ç¨ CSS 对å
¶è¿è¡æ ·å¼è®¾ç½®ï¼ä¾å¦ââä½ åªéè¦ç¡®ä¿å®ä»¬æç
§ä½ å¸æçæ¹å¼è¿è¡å³å¯ãä½ å¯ä»¥åå¤çå
¶ä»å
ç´ ä¸æ ·å¯¹å
¶è¿è¡æ ·å¼è®¾ç½®ï¼å
æ¬æ ¹æ®éè¦å° display 屿§è®¾ç½®ä¸ºé inline çå¼ã
å HTML ç <video>ã<audio>ã<picture>ã<object> å <canvas>ï¼ä»¥åå
¶ä»ç¹æ§ï¼è¿æ ·çæ´å¤æçå
ç´ å
·æèªç¶çåéæºå¶ï¼ä»¥é²é¾æ¥çèµæºä¸åæ¯æãä½ å¯ä»¥å¨å¼æ ç¾åéæ ç¾ä¹é´æ·»å åéå
容ï¼ä¸æ¯æçæµè§å¨å°ææå°å¿½ç¥å¤é¨å
ç´ å¹¶æ§è¡åµå¥å
容ã
ä¾å¦ï¼
<video id="video" controls preload="metadata" poster="img/poster.jpg">
<source
src="video/tears-of-steel-battle-clip-medium.webm"
type="video/webm" />
<!-- æä¾ä¸è½½ -->
<p>
ä½ çæµè§å¨ä¸æ¯æ WebM è§é¢ï¼è¯·ä½¿ç¨ä»¥ä¸é¾æ¥<a
href="video/tears-of-steel-battle-clip-medium.mp4"
>ç´æ¥æ¥çè§é¢</a
>
</p>
</video>
è¿ä¸ªä¾åå å«ä¸ä¸ªç®åç龿¥ï¼å è®¸ä½ å¨ HTML è§é¢ææ¾å¨æ æ³å·¥ä½æ¶ä¸è½½è§é¢ï¼è¿æ ·ç¨æ·è³å°ä»ç¶å¯ä»¥è®¿é®è§é¢ã
å¦ä¸ä¸ªä¾åæ¯è¡¨åå
ç´ ãå½å¼å
¥äºæ°çç¨äºå¨è¡¨åä¸è¾å
¥ç¹å®ä¿¡æ¯ç <input> ç±»åæ¶ï¼ä¾å¦æ¶é´ãæ¥æãé¢è²ãæ°åçï¼ï¼å¦ææµè§å¨ä¸æ¯ææ°ç¹æ§ï¼æµè§å¨ä¼ä½¿ç¨é»è®¤ç type="text"ãéæå¤æ ·åçè¾å
¥ç±»åå¯ä»¥å¾å¥½å°æ¹ä¾¿ç¨æ·ï¼å°¤å
¶æ¯å¨ç§»å¨å¹³å°ä¸ï¼ï¼å®ä¸ºç¨æ·æä¾äºä¸ç§æ çè¦å°è¾å
¥æ°æ®çæ¹å¼ï¼è¿å¯¹ç¨æ·ä½éªè³å
³éè¦ã平尿 ¹æ®è¾å
¥ç±»åçä¸åï¼ä¼åç°åºä¸åçç¨æ·çé¢å
ç´ ï¼ä¾å¦ç¨äºè¾å
¥æ¥æçæ¥åå°é¨ä»¶ãå³ä½¿æµè§å¨ä¸æ¯ææç§è¾å
¥ç±»åï¼ç¨æ·ä»ç¶å¯ä»¥è¾å
¥ä»ä»¬éè¦çæ°æ®ã
以䏿¯æ¾ç¤ºæ¥æåæ¶é´è¾å ¥ç示ä¾ï¼
<form>
<div>
<label for="date">è¾å
¥æ¥æï¼</label>
<input id="date" type="date" />
</div>
<div>
<label for="time">è¾å
¥æ¶é´ï¼</label>
<input id="time" type="time" />
</div>
</form>
è¿æ®µä»£ç çè¾åºå¦ä¸æç¤ºï¼
夿³¨ï¼ä½ ä¹å¯ä»¥å¨ GitHub ä¸ç forms-test.html 䏿¥çæ¤å®æ¶ç¤ºä¾ï¼ä¹å¯ä»¥åé æºä»£ç ï¼ã
å¦æä½ æ¥ç示ä¾ï¼å½ä½ å°è¯è¾å ¥æ°æ®æ¶ï¼UI ç¹æ§ä¼åæ¥ä½ç¨ãå¨å ·æå¨æé®çç设å¤ä¸ï¼å°æ¾ç¤ºç¹å®äºç±»åçè¾å ¥é¢æ¿ï¼keypadï¼ãå¨ä¸æ¯ææ°ç¹æ§çæµè§å¨ä¸ï¼è¾å ¥æ¡å°é»è®¤ä¸ºæ®éææ¬è¾å ¥æ¡ï¼ä½¿å¾ç¨æ·ä»ç¶å¯ä»¥è¾å ¥æ£ç¡®çä¿¡æ¯ã
CSS åéè¡ä¸º
CSS çæ åµå¯ä»¥è¯´æ¯ HTML æ´å¥½ä¸äºã妿æµè§å¨éå°ä¸ä¸ªå®ä¸æç½ç声ææè§åï¼å®åªä¼å®å ¨è·³è¿å®ï¼èä¸ä¼å¼ºè¡åºç¨å®æè æåºé误ãå¦æè¿æ ·çé误æå¤å°åºç°å¨ç产ç¯å¢ä»£ç ä¸ï¼è¿å¯è½ä¼è®©ä½ åç¨æ·æå°æ²®ä¸§ï¼ä½è³å°è¿æ ·çè¯ï¼æ´ä¸ªç½ç«ä¸ä¼å 为ä¸ä¸ªé误èå´©æºã妿巧å¦å°å©ç¨å®ï¼ä½ çè³å¯ä»¥ä»ä¸è·çã
让æä»¬æ¥çä¸ä¸ªä¾åââä¸ä¸ªç®åçä½¿ç¨ CSS æ ·å¼ççåï¼å®ä½¿ç¨äºåç§ CSS ç¹æ§æ¥è¿è¡æ ·å¼è®¾ç½®ï¼

夿³¨ï¼ä½ ä¹å¯ä»¥å¨ GitHub 䏿µè§è¿ä¸ªå®æ¶è¿è¡çä¾åï¼button-with-fallback.htmlï¼ä¹å¯ä»¥çæºä»£ç ï¼ã
该æé®æä¸äºæ ·å¼å£°æï¼ä½æä»¬ææå ´è¶£ç两个å¦ä¸ï¼
button {
/* ⦠*/
background-color: #ff0000;
background-color: rgb(255 0 0 / 100%);
box-shadow:
inset 1px 1px 3px rgb(255 255 255 / 40%),
inset -1px -1px 3px rgb(0 0 0 / 40%);
}
button:hover {
background-color: rgb(255 0 0 / 50%);
}
button:active {
box-shadow:
inset 1px 1px 3px rgb(0 0 0 / 40%),
inset -1px -1px 3px rgb(255 255 255 / 40%);
}
å¨è¿éï¼æä»¬æä¾äºä¸ä¸ª RGB background-colorï¼å®ä¼å¨æ¬åæ¶æ¹åéæåº¦ï¼ä»¥æç¤ºç¨æ·æé®æ¯äº¤äºå¼çï¼è¿æä¾äºä¸äºåéæçåµå
¥å¼ box-shadow é´å½±ï¼ä»¥èµäºæé®ä¸äºè´¨æå深度ã尽管 RGB é¢è²åçåé´å½±ç®åå·²å¾å°å¹¿æ³æ¯æï¼ä½å®ä»¬å¹¶éä¸ç´åå¨ââå®ä»¬ææ©æ¯å¨ IE9 ä¸å¼å
¥çã䏿¯æ RGB é¢è²çæµè§å¨ä¼å¿½ç¥ç¸å
³å£°æï¼è¿æå³ç卿§çæµè§å¨ä¸æé®èæ¯å°±ä¸ä¼æ¾ç¤ºï¼æå乿 æ³è¯»åï¼è¿æ¯é常ä¸å¥½çæ
åµï¼

为äºè§£å³è¿ä¸ªé®é¢ï¼æä»¬æ·»å äºç¬¬äºä¸ª background-color 声æï¼æå®äºä¸ä¸ªåå
è¿å¶é¢è²ââè¿å¨éå¸¸èæ§çæµè§å¨ä¸ä¹å¾å°æ¯æï¼å¯ä»¥ä½ä¸ºç°ä»£ç«é
·ç¹æ§çå夿¹æ¡ãæµè§å¨å¨è®¿é®æ¤é¡µé¢æ¶ï¼é¦å
ä¼åºç¨ç¬¬ä¸ä¸ª background-color å¼ï¼å½éå°ç¬¬äºä¸ª background-color å£°ææ¶ï¼å¦ææµè§å¨æ¯æ RGB é¢è²ï¼å°±ä¼ç¨è¿ä¸ªå¼è¦çä¹åçå¼ã妿䏿¯æï¼å®å°±ä¼å¿½ç¥æ´ä¸ªå£°æï¼ç»§ç»æ§è¡åç»æ ·å¼ã
夿³¨ï¼å¯¹äºå
¶ä» CSS ç¹æ§ï¼å¦åªä½æ¥è¯¢ã@font-face å @supports åæ¥è¯´ï¼ä¹æ¯å¦æ¤ââ妿ä¸è¢«æ¯æï¼æµè§å¨å°±ä¼å¿½ç¥å®ä»¬ã
鿩卿¯æ
å½ç¶ï¼å¦æä½ 没æä½¿ç¨åéç鿩卿¥éæ©ä½ æ³è¦è®¾ç½®æ ·å¼çå ç´ ï¼ä»»ä½ CSS ç¹æ§é½ä¸ä¼è¢«åºç¨ï¼
å¨ä¸ä¸ªä»¥éå·åéçéæ©å¨å表ä¸ï¼å¦æä½ åªæ¯é误å°ç¼åäºä¸ä¸ªéæ©å¨ï¼å®å¯è½æ æ³å¹é
ä»»ä½å
ç´ ã使¯ï¼å¦ææä¸ä¸ªéæ©å¨æ¯æ æçï¼æ´ä¸ªéæ©å¨åè¡¨ä»¥åæ´ä¸ªæ ·å¼åé½å°è¢«å¿½ç¥ãå æ¤ï¼å»ºè®®åªå¨å¯å®¹ééæ©å¨å表ä¸ä½¿ç¨å¸¦æ :-moz- åç¼ç伪类æä¼ªå
ç´ ï¼ä¾å¦ :where(::-moz-thumb)ã请é¿å
å¨éå·åéçéæ©å¨ç»ä¸ä½¿ç¨å¸¦æ :-moz- åç¼ç伪类æä¼ªå
ç´ ï¼é¤éå®å¨ :is() æ :where() å¯å®¹ééæ©å¨å表å
ï¼ï¼å 为é¤äº Firefox ä¹å¤çæææµè§å¨é½ä¼å¿½ç¥æ´ä¸ªæ ·å¼åãéè¦æ³¨æçæ¯ï¼:is() å :where() é½å¯ä»¥ä½ä¸ºåæ°ä¼ éç»å
¶ä»éæ©å¨å表ï¼å
æ¬ :has() å :not()ã
æä»¬æ³¨æå°ï¼å©ç¨æµè§å¨çå¼åè å·¥å ·æ¥æ£æ¥ç®æ å ç´ çæ ·å¼è®¾ç½®ï¼ä»¥åå®¡æ¥ DOM æ£æ¥å¨ææä¾ç DOM æ é¢å å±è·¯å¾ï¼éå¸¸è½ææå¸®å©æä»¬å¤ææç¨éæ©å¨æ¯å¦æ°å½ã
ä¾å¦ï¼å¨ Firefox çå¼åè å·¥å ·ä¸ï¼ä½ å¯ä»¥å¨ DOM æ£æ¥å¨çåºé¨è·å¾è¿æ ·çè¾åºï¼
![]()
å¦æä½ æ³ä½¿ç¨è¿ä¸ªéæ©å¨ï¼ä½ ä¼çå°å®æ æ³å¦é¢æéæ©è¾å ¥å ç´ ï¼
form > #date
ï¼å 为 date 表åè¾å
¥ä¸æ¯ <form> çç´æ¥åå
ç´ ï¼ä½ æå¥½ä½¿ç¨ä¸ä¸ªä¸è¬çå代鿩å¨è䏿¯åéæ©å¨ï¼ã
å¤ç CSS åç¼
å¦ä¸ç»é®é¢æ¥èª CSS åç¼ââè¿ç§æºå¶æåç¨äºå 许æµè§å¨ä¾åºåå¨å®éªç¶æä¸å®æ½èªå·±çæ¬ç CSSï¼æ JavaScriptï¼ç¹æ§ï¼è¿æ ·ä»ä»¬å°±å¯ä»¥è¯ç¨å¹¶ç¡®ä¿å ¶æ£å¸¸å·¥ä½ï¼èä¸ä¼ä¸å ¶ä»æµè§å¨çå®ç°ææç»æ åç¼çå®ç°åçå²çªã
ä¾å¦ï¼Firefox ä½¿ç¨ -moz-ï¼è Chrome/Edge/Opera/Safari ä½¿ç¨ -webkit-ãä½ å¯è½ä¼å¨æ§ä»£ç ä¸éå°çå
¶ä»ï¼ä½ å¯ä»¥å®å
¨å é¤ï¼çåç¼å
æ¬ -ms-ï¼å®ç± Internet Explorer åæ©æçæ¬ç Edge 使ç¨ï¼ï¼ä»¥å -oï¼å®ç¨äºæåç Opera çæ¬ï¼ã
请ä¸è¦å¨ç¨äºç产çç½ç«ä¸ä½¿ç¨åç¼ç¹æ§ââå®ä»¬å¯è½ä¼å¨æ²¡æè¦åçæ
åµä¸åçååæè¢«ç§»é¤ï¼å¯è½ä¼å¯¼è´éè¦è¿äºç¹æ§çæ§çæ¬æµè§å¨éå°æ§è½é®é¢ï¼å¹¶ä¸ä¸ç´æ¯è·¨æµè§å¨é®é¢ç罪é祸é¦ãä¾å¦ï¼å½å¼å人åå³å®ä»
ä½¿ç¨ -webkit- çæ¬ç屿§æ¶ï¼è¿æå³ç该ç½ç«å°æ æ³å¨å
¶ä»æµè§å¨ä¸æ£å¸¸å·¥ä½ãè¿ç§æ
åµå®é
ä¸åçè¿æ æ°æ¬¡ï¼ä»¥è³äºå
¶ä»æµè§å¨ä¾åºå为å ç§ CSS 屿§å®æ½äº -webkit- åç¼çæ¬ãè½ç¶æµè§å¨ä»ç¶æ¯ææäºåç¼å±æ§åç§°ã屿§å¼å伪类ï¼ä½ç°å¨å®éªæ§ç¹æ§éè¦ä½¿ç¨æ å¿æ¥å¯ç¨ï¼ä»¥ä¾¿ç½é¡µå¼å人åå¨å¼åè¿ç¨ä¸è¿è¡æµè¯ã
请确ä¿å°½å¨å¿ è¦æ¶ä½¿ç¨åç¼ï¼å±æ§æ¯å°æ°ä»é使ç¨åç¼çç¹æ§ä¹ä¸ãä½ å¯ä»¥æ¥ç MDN åè页é¢å caniuse.com çç½ç«ï¼äºè§£åªäºæµè§å¨éè¦ä½¿ç¨åç¼ãå¦æä½ ä¸ç¡®å®ï¼ä¹å¯ä»¥ç´æ¥å¨æµè§å¨ä¸è¿è¡æµè¯ã请å¨å¸¦æåç¼çæ ·å¼å£°æåå 嫿 åçä¸å¸¦åç¼ççæ¬ï¼å¦æä¸æ¯æï¼å®å°è¢«å¿½ç¥ï¼å½æ¯ææ¶å°è¢«ä½¿ç¨ã
.masked {
-webkit-mask-image: url(MDN.svg);
mask-image: url(MDN.svg);
-webkit-mask-size: 50%;
mask-size: 50%;
}
è¯è¯ä¸é¢è¿ä¸ªç®åçä¾åï¼
-
使ç¨è¿ä¸ªé¡µé¢ï¼æè å¦ä¸ä¸ªæææ¾æ é¢æå ¶ä»å级å ç´ çç½ç«ã
-
å³é®/Cmd + åå»è¦æ£æ¥çå ç´ ï¼éæ©âæ£æ¥/æ£æ¥å ç´ âï¼æä½ çæµè§å¨ä¸ç对åºé项ï¼ââè¿åºè¯¥ä¼å¨å¼åè å·¥å ·ä¸æå¼ DOM æ£æ¥å¨ï¼å¹¶é«äº®æ¾ç¤ºè¯¥å ç´ ã
-
æ¥æ¾å¯ç¨äºéæ©è¯¥å ç´ çç¹æ§ãä¾å¦ï¼å¨æ°åæ¬ææ¶ï¼MDN ä¸è¿ä¸ªé¡µé¢æä¸ä¸ª ID 为
mdn-docs-logoç logoã -
å¨ä¸ä¸ªåéä¸åå¨å¯¹è¿ä¸ªå ç´ çå¼ç¨ï¼ä¾å¦ï¼
jsconst test = document.getElementById("mdn-docs-logo"); -
ç°å¨å°è¯å¨è¯¥å ç´ ä¸è®¾ç½®æ°ç CSS 屿§å¼ï¼ä½ å¯ä»¥ä½¿ç¨å ç´ ç style 屿§æ¥å®ç°ï¼ä¾å¦è¯çå¨ JavaScript æ§å¶å°ä¸è¾å ¥ï¼
jstest.style.transform = "rotate(90deg)";
å½ä½ å¼å§å¨ç¬¬äºä¸ªç¹åè¾å ¥å±æ§å表示æ¶ï¼è¯·æ³¨æï¼å¨ JavaScript ä¸ï¼CSS 屿§åæ¯ç¨å°é©¼å³°å¼å½åæ³è䏿¯ç¤è串å¼å½åæ³ï¼ï¼JavaScript æ§å¶å°åºè¯¥è½å¤å¹é ä½ è¾å ¥çå 容ï¼å¹¶èªå¨å®æç®åæµè§å¨ä¸å·²åå¨ç屿§åãè¿å¯ä»¥å¸®å©ä½ åç°è¯¥æµè§å¨ä¸å®ç°äºåªäºå±æ§ã
妿éè¦ä½¿ç¨ç°ä»£ç¹æ§ï¼å¯ä»¥ä½¿ç¨ @supports è¿è¡ç¹æ§æ¯ææ£æµï¼å¹¶å¨ @supports åä¸åµå¥ä½¿ç¨å¸¦æåç¼çç¹æ§ææ°ç¹æ§ã
ååºå¼è®¾è®¡é®é¢
ååºå¼è®¾è®¡æ¯åå»ºå¯æ ¹æ®ä¸å设å¤å°ºå¯¸ï¼ä¾å¦ä¸åçå±å¹å®½åº¦ãæ¹åï¼çºµåææ¨ªåï¼æå辨çï¼èååçç½é¡µå¸å±çåæ³ãä¾å¦ï¼æ¡é¢å¸å±å¨ç§»å¨è®¾å¤ä¸ä¼çèµ·æ¥å¾ç³ç³ï¼æä»¥ä½ éè¦ä½¿ç¨åªä½æ¥è¯¢æä¾åéçç§»å¨å¸å±ï¼å¹¶ç¡®ä¿æ£ç¡®åºç¨è§å£ãä½ å¯ä»¥å¨æä»¬å ³äºååºå¼è®¾è®¡çæå䏿¾å°è¿äºå®è·µçè¯¦ç»æè¿°ã
å辨ç乿¯ä¸ªå¤§é®é¢ââä¾å¦ï¼ç§»å¨è®¾å¤ä¸å¤ªå¯è½éè¦å¤§çå¾åï¼ä½æ´æå¯è½æè¾æ
¢çäºèç½è¿æ¥ï¼çè³å¯è½ææè´µçæ°æ®æµé计åï¼è¿ä¼ä½¿æµªè´¹å¸¦å®½æä¸ºä¸ä¸ªé®é¢ãæ¤å¤ï¼ä¸åç设å¤å¯è½æåç§ä¸åçå辨çï¼è¿æå³çè¾å°çå¾åå¯è½ä¼åºç°åç´ åãæä¸äºææ¯å¯ä»¥è§£å³è¿äºé®é¢ï¼ä»åªä½æ¥è¯¢å°æ´å¤æçååºå¼å¾åææ¯ï¼å
æ¬ <picture> å
ç´ å <img> å
ç´ ç srcset å sizes屿§ã
寻æ¾å¸®å©
HTML å CSS è¿æå¾å¤å ¶ä»çé®é¢ãæéè¦çæ¯å¦ä½å¨ç½ä¸æ¾å°çæ¡ã
å ¶ä¸æå¥½çæ¯æä¿¡æ¯æ¥æºæ¯ Mozilla å¼åè ç½ç»ï¼ä½ ç°å¨å°±å¨è¿ï¼ï¼ãstackoverflow.com å caniuse.comã
ä¸ºä½¿ç¨ Mozilla å¼åè ç½ç»ï¼MDNï¼ï¼å¤§å¤æ°äººä¼æç´¢ä»ä»¬æ£å¨å°è¯æ¥æ¾çä¿¡æ¯çææ¯æ¯è¯å ä¸âmdnâï¼ä¾å¦âmdn HTML5 videoâãMDN å å«å ç§æç¨çå 容类åï¼
- 带æå®¢æ·ç«¯ web ææ¯æµè§å¨æ¯æä¿¡æ¯çåèèµæï¼ä¾å¦ <video> åè页é¢ã
- å ¶ä»çæ¯ææ§åèèµæï¼ä¾å¦ web åªä½ç±»ååæ ¼å¼æåã
- è§£å³ç¹å®é®é¢çæç¨æç¨ï¼ä¾å¦å建跨æµè§å¨çè§é¢ææ¾å¨ã
caniuse.com æä¾æ¯æä¿¡æ¯ï¼ä»¥åä¸äºæç¨çå¤é¨èµæºé¾æ¥ãä¾å¦ï¼è¯·åé https://caniuse.com/#search=videoï¼ä½ åªéå¨ææ¬æ¡ä¸è¾å ¥è¦æç´¢çç¹æ§ï¼ã
stackoverflow.comï¼SOï¼æ¯ä¸ä¸ªè®ºåç½ç«ï¼ä½ å¯ä»¥æåºé®é¢ï¼å¹¶è®©å¼å人åå享ä»ä»¬çè§£å³æ¹æ¡ï¼æ¥ç以åçå¸åï¼å¹¶å¸®å©å ¶ä»å¼å人åãå¨å叿°é®é¢ä¹åï¼å»ºè®®ä½ å ççæ¯å¦å·²ç»æäººåçäºä½ çé®é¢ãä¾å¦ï¼æä»¬å¨ SO ä¸æç´¢äºâdisabling autofocus on HTML dialogâï¼å¹¶ä¸å¾å¿«å¾å°äºä½¿ç¨ HTML 屿§ç¦ç¨ showModal èªå¨èç¦ã
餿¤ä¹å¤ï¼è¯·å°è¯ä½¿ç¨ä½ æåç±çæç´¢å¼ææ¥è§£å³ä½ çé®é¢ãå¦æä½ éå°é误信æ¯è¯ï¼æç´¢è¿äºç¹å®çé误信æ¯éå¸¸å¯¹ä½ æå¸®å©ââå ¶ä»å¼å人åå¯è½éå°è¿ä¸ä½ 䏿 ·çé®é¢ã
æ»ç»
ç°å¨ä½ åºè¯¥çæ Web å¼åä¸ä¸»è¦çè·¨æµè§å¨ HTML å CSS é®é¢ï¼ä»¥åå¦ä½è§£å³è¿äºé®é¢ã