CSS 屿§å¼å¤ç
å¯¹äºææ¡£æ ä¸çæ¯ä¸ªå ç´ ï¼æµè§å¨é½ä¼ä¸ºéç¨äºè¯¥å ç´ çæ¯ä¸ª CSS 屿§èµå¼ãç¹å®å ç´ æçåçæ¯ä¸ª CSS 屿§ç渲æå¼é½æ¯åºäºæ ·å¼è¡¨å®ä¹ãç»§æ¿ãå±å ãä¾èµå ³ç³»ãåä½è½¬æ¢åæ¾ç¤ºç¯å¢ç计ç®ç»æãæ¬æåéè¿æ¢è®¨æå®å¼ã计ç®å¼ãåºç¨å¼åå®é å¼çå ³é®æ¦å¿µï¼æ¦è¿°äºç¨äºå®ä¹æ¯ä¸ª CSS 弿ç»å¦ä½æ¸²æçå¤çæ¥éª¤ã
屿§å¼
æ¯ä¸ª CSS 屿§çå¼é½æ¥èªå
·ææå¤§ specificity ç声æãå¦æä¸¤ä¸ªæä¸¤ä¸ªä»¥ä¸å
·æç¸åä¼å
级ç声æä¸ºåä¸å
ç´ æä¾äºä¸åç屿§å¼ï¼åä¼åºç¨éæ©å¨å
·ææå¤§ç®æ³æéç声æå¼ã
æ¯ä¸ªå±æ§å¼é½æ¥èªä¸ä¸ªå±æ§å¼å¯¹ï¼æ¯ä¸ªå±æ§é½åºç¨äºä¸ä¸ªå¼ãå³ä½¿å¼æ¯ä¸ä¸ªéå·åéçå¼å表ï¼è¯¥å¼åè¡¨ä¹æ¯æ¥èªä¸ä¸ªåä¸ç声æã
为确å®åºç¨åªä¸ªæå®å¼ï¼ç¨æ·ä»£ç伿¶éå¹¶å¤çæ¥èªä¸åæ¥æºçæææ ·å¼ï¼å¦å èæ ·å¼ãå é¨åå¤é¨æ ·å¼è¡¨ã
æäºå±æ§ä¼ç»§æ¿ç¶å ç´ çå¼ï¼é¤éæç¡®è¦åãå½å ç´ ä¸çç¹å®å±æ§æ²¡ææ ·å¼ä¿¡æ¯æ¶ï¼å°±ä¼åºç°ç»§æ¿ã妿屿§è¢«ç»§æ¿ï¼å ¶å¼å°è¢«è®¾ç½®ä¸ºç¶å ç´ ç计ç®å¼ã妿屿§æ²¡æè¢«ç»§æ¿ï¼å ¶å¼å°è¢«è®¾ç½®ä¸ºè¯¥å ç´ çåå§å¼ã
å±å å³å®äºå½å¤ä¸ªç¸äºå²çªçæ ·å¼é对åä¸å
ç´ æ¶è¯¥åºç¨åªä¸ªå¼ã级èç®æ³å®ä¹äºç¨æ·ä»£çå¦ä½ç»åæ¥èªä¸åæ¥æºãä½ç¨åå/æå±ç屿§å¼ãå½éæ©å¨ä¸å
ç´ å¹é
æ¶ï¼å³ä½¿ä¼å
级è¾ä½çæ¥æºæå±çéæ©å¨å
·ææ´å¤§ç specificityï¼ä¹ä¼åºç¨ä¼å
级æé«çæ¥æºç屿§æå®å¼ã
å¨éæ¥åºç¨å±å è§ååè§£æå¼åï¼æµè§å¨ä¼ç¡®ä¿è§è§åç°ä¸å¤çè¿ç CSS ç¸å¹é ã
å¤çé¶æ®µ
ä½ä¸ºææ¡£æå¹³åå
ç´ æ ä¸é¨åçææå
ç´ é½æå£°æå¼ã级èå¼ãæå®å¼ã计ç®å¼ãåºç¨å¼åå®é
å¼ã对äºç¹å®å±æ§ï¼è¿äºå¼å¯è½ç¸åï¼ä¹å¯è½ä¸ç¸åãä¾å¦ï¼å¦æå¤§å代ç åºå
å« CSS p { font-size: 1.25em; }ï¼è HTML å
å« <p>CSS is fun!</p>ï¼font-size å¼ä¼ç»è¿å ä¸ªé¶æ®µï¼ä»æå®ç em å¼å为渲æç px å¼ã
è¿äºå¼ç¨äºå³å®æç»ç渲æå¼ã
åå§å¼
屿§çåå§å¼ï¼initial valueï¼æ¯å ¶é»è®¤å¼ï¼å¦å ¶å®ä¹è¡¨ä¸æåãåå§å¼ç使ç¨åå³äºå±æ§æ¯å¦è¢«ç»§æ¿ï¼
- 对äºç»§æ¿å±æ§ï¼åªè¦æ²¡ææä¾æå®å¼ï¼åå§å¼åªè½è¢«ç¨äºæ²¡ææå®å¼çæ ¹å ç´ ä¸ã
- 对äºéç»§æ¿å±æ§ï¼åªè¦æ²¡ææä¾æå®å¼ï¼åå§å¼å¯ä»¥è¢«ç¨äºä»»ææ²¡ææå®å¼çå ç´ ä¸ã
ä½ å¯ä»¥ä½¿ç¨ initial å
³é®åæç¡®æå®åå§å¼ã
夿³¨ï¼åå§å¼å¯å¨æ¯ä¸ª CSS 屿§åè页é¢çå½¢å¼è¯æ³é¨åæ¾å°ãä¾å¦ï¼font-size çåå§å¼ä¸º mediumãåå§å¼ä¸åºä¸æµè§å¨æ ·å¼è¡¨æå®çå¼ç¸æ··æ·ã
æå®å¼
屿§çæå®å¼ï¼specified valueï¼æ¯ CSS æä»¶æ style 屿§æååé
çå¼ãç»å®å±æ§çæå®å¼æ ¹æ®ä»¥ä¸è§åç¡®å®ï¼
- å¨å½åææ¡£çæ ·å¼è¡¨ä¸ç»è¿ä¸ªå±æ§èµçå¼ï¼ä¼è¢«ä¼å 使ç¨ã
- 妿å¨å½åææ¡£çæ ·å¼è¡¨ä¸æ²¡æç»è¿ä¸ªå±æ§èµå¼ï¼é£ä¹å®ä¼å°è¯ä»ç¶å ç´ é£ç»§æ¿ä¸ä¸ªå¼ã
- 妿ä¸é¢ç两ç§éå¾é½ä¸å¯è¡ï¼å使ç¨å ç´ çåå§å¼ã
å¨ç¤ºä¾ p { font-size: 1.25em; } ä¸ï¼é¤é代ç åºä¸å
å«äº specificity æ´å¤§ç font-size 声æï¼å¦åæå®å¼ä¸º 1.25emã
计ç®å¼
屿§ç计ç®å¼ï¼computed valueï¼æ¯æè¿ä¸ªå±æ§å¨ç±ç¶ç±»è½¬ååç±»çç»§æ¿ä¸çå¼ãè¿æ¯å¨å°ç¸å¯¹åä½åèªå®ä¹å±æ§è½¬æ¢ä¸ºç»å¯¹å¼çå 容åï¼ä½å¨èèç¹å®å¸å±ä¿¡æ¯ä¹åå¾åºçç»æã
计ç®å¼ç±æå®å¼è®¡ç®å¾åºï¼è®¡ç®æ¹æ³æ¯ï¼
- å¤çç¹æ®å¼
inheritãinitialãunsetãrevertãrevert-layeråunsetã - è¿è¡è®¡ç®ï¼ä»¥è¾¾å°å±æ§æè¦ä¸â计ç®å¼âä¸æè¿°çå¼ã
计ç®å¼æéè¦ç计ç®é常å
æ¬å°ç¸å¯¹å¼è½¬æ¢æç»å¯¹å¼ï¼å¦ em å使ç¾åæ¯ï¼ãä¾å¦ï¼å¦ä¸ä¸ªå
ç´ ç屿§å¼ä¸º font-size:16px å padding-top:2emï¼å padding-top ç计ç®å¼ä¸º 32pxï¼åä½å¤§å°ç 2 åï¼ã
ç¶èï¼å¯¹äºæäºå±æ§ï¼è¿äºå
ç´ çç¾åæ¯ä¸éè¦å¸å±ç¡®å®åæè½ç¥éç弿å
³ï¼å¦ widthãmargin-rightãtext-indent å topï¼ï¼å®ä»¬çâç¾åæ¯å¼âä¼è½¬æ¢æâç¾åæ¯ç计ç®å¼âãå¦å¤ï¼line-height 屿§å¼å¦æ¯æ²¡æåä½çæ°åï¼å该å¼å°±æ¯å
¶è®¡ç®å¼ãè¿äºè®¡ç®å¼ä¸çç¸å¯¹å¼ä¼å¨ä½¿ç¨å¼ç¡®å®åè½¬æ¢æç»å¯¹å¼ã
ç»å® p { font-size: 1.25em; }ï¼å¦æ em 对åºäº 16pxï¼å段è½åä½å¤§å°ç计ç®å¼å°ä¸º 20pxã
åºç¨å¼
屿§çåºç¨å¼ï¼used valueï¼æ¯å¨å¯¹è®¡ç®å¼è¿è¡äºææè®¡ç®ï¼å¹¶æ ¹æ®å¸å±çå ·ä½ç»èï¼ä¾å¦ï¼å°ç¾åæ¯è§£æä¸ºå®é åç´ å¼ï¼å¯¹å ¶è¿è¡ç»ååç屿§å¼ã
æ¯ä¸ª CSS 屿§é½æä¸ä¸ªåºç¨å¼ã尺寸ï¼å¦ width æ line-heightï¼ç使ç¨å¼ä»¥åç´ ä¸ºåä½ãç®å屿§ï¼å¦ backgroundï¼ç使ç¨å¼ä¸å
¶ç»ä»¶å±æ§ï¼å¦ background-color æ background-sizeï¼ä»¥å position å float çåºç¨å¼ä¸è´ã
å
ç´ ç width æ inline-size çåºç¨å¼æ¯åç´ å¼ï¼å³ä½¿å±æ§çæå®å¼æ¯ç¨ç¾åæ¯æå
³é®åå¼è®¾ç½®çã
妿æä»¬æä¸ä¸ªå®½åº¦åå«è®¾ç½®ä¸º autoã50% å inherit ç容å¨å
ç´ ï¼
#no-width {
width: auto;
}
#width-50 {
width: 50%;
}
#width-inherit {
width: inherit;
}
/* ä½¿ç»ææ´æäºæ¥ç */
div {
border: 1px solid red;
padding: 8px;
}
è½ç¶ä¸ä¸ªæå®å¼ autoã50% å inherit 齿¯å
³é®åå <percentage> å¼ï¼ä½ä½¿ç¨ window.getComputedStyle(el)[âwidthâ]; è·å width æ¶ï¼è¿åçæ¯ç»å¯¹é¿åº¦ px å¼ï¼
æ¹åçªå£å°ºå¯¸ææè½¬ç§»å¨è®¾å¤ä»¥æ¹å尺寸ååºç¨å¼ã
渲æå¼
渲æçå¼ç§°ä¸ºå®é å¼ï¼èéè¿èæ¬è·åçå¼ç§°ä¸ºè§£æå¼ã
å®é å¼
屿§çå®é å¼ï¼actual valueï¼æ¯åºç¨å¼ï¼used valueï¼è¢«åºç¨åçè¿ä¼¼å¼ãä¾å¦ï¼ä¸ä¸ªç¨æ·ä»£çå¯è½åªè½æ¸²æä¸ä¸ªæ´æ°åç´ å¼çè¾¹æ¡ï¼å®é å¼ï¼ï¼å¹¶ä¸è¯¥å¼å¯è½è¢«å¼ºå¶è¿ä¼¼äºè¾¹æ¡ç计ç®å®½åº¦å¼ã
计ç®åä¸ºä¸æ¥ï¼
- é¦å ï¼æ ¹æ®çº§èãç»§æ¿æä½¿ç¨åå§å¼çç»æç¡®å®æå®å¼ã
- æ¥ä¸æ¥ï¼è®¡ç®å¼å°æ ¹æ®è§èè¿è¡è®¡ç®ï¼ä¾å¦ï¼å
·æ
position: absoluteçspanå°æå ¶è®¡ç®çdisplayæ´æ¹ä¸ºblockï¼ã - ç¶å计ç®å¸å±ï¼å¾åºåºç¨å¼ã
- æåï¼æ ¹æ®æ¬å°ç¯å¢çéå¶å¯¹å·²ç¨å¼è¿è¡è½¬æ¢ï¼å¾åºå®é å¼ã
è§£æå¼
屿§çè§£æå¼ï¼resolved valueï¼æ¯åºç¨æ´»å¨æ ·å¼è¡¨å¹¶è§£æè¿äºå¼å¯è½å
å«çä»»ä½åºæ¬è®¡ç®åçå¼ãgetComputedStyle() æ¹æ³ä¼è¿åä¸ä¸ªå®æ¶ç CSSStyleDeclaration 对象ï¼å
¶ä¸å
å«åºç¨å°æå®å
ç´ çææ CSS 屿§çè§£æå¼ãæ¯ä¸ªè§£æå¼é½æ¯è®¡ç®å¼æä½¿ç¨å¼ï¼å
·ä½åå³äºå±æ§ã
ä¸ç´ä»¥æ¥ï¼getComputedStyle() è¿åå
ç´ æä¼ªå
ç´ ç计ç®å¼ãéç CSS çåå±ï¼â计ç®å¼âçæ¦å¿µä¹åçäºååï¼ä½ä¸ºäºååå
¼å®¹å·²é¨ç½²çèæ¬ï¼getComputedStyle() è¿åçå¼å¿
é¡»ä¿æä¸åãè¿äºå¼å°±æ¯âè§£æå¼âã
对äºå¤§å¤æ°å±æ§ï¼è§£æå¼å°±æ¯è®¡ç®å¼ï¼ä½å¯¹äºå°æ°ä¼ ç»å±æ§ï¼å
æ¬ width å heightï¼ï¼è§£æå¼å°±æ¯åºç¨å¼ãCSSOM è§è æä¾äºæ¯ä¸ªå±æ§ç详ç»ä¿¡æ¯ã
CSS 2.0 å°è®¡ç®å¼å®ä¹ä¸ºå±æ§è®¡ç®çæå䏿¥ãCSS 2.1 å¼å
¥äºâåºç¨å¼âçç¬ç¹å®ä¹ãè¿æ ·ï¼ä¸ä¸ªå
ç´ å°±å¯ä»¥æç¡®å°ç»§æ¿å
¶ç¶å
ç´ ç宽度/é«åº¦ï¼å
¶è®¡ç®å¼æ¯ä¸ä¸ªç¾åæ¯ã对äºä¸ä¾èµå¸å±ç CSS 屿§ï¼å¦ displayãfont-size æ line-heightï¼ï¼è®¡ç®å¼ååºç¨å¼æ¯ç¸åçãä¸é¢ååºç CSS 2.1 屿§ä¾èµäºå¸å±ï¼å æ¤è®¡ç®å¼ååºç¨å¼ä¸åï¼æèª CSS 2.1 åæ´ï¼æå®å¼ã计ç®å¼åå®é
å¼ï¼ï¼
åè§
- æ§å¶ç»§æ¿ç CSS å¼ï¼
inheritãinitialãrevertãrevert-layeråunset - CSS å±å ä¸ç»§æ¿æ¨¡å
- CSS è¯æ³æ¨¡å