overflow
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
overflow æ¯ CSS çç®å屿§ï¼å
¶è®¾ç½®äºå
ç´ æº¢åºæ¶æéçè¡ä¸ºââå³å½å
ç´ çå
å®¹å¤ªå¤§èæ æ³éåºå®çåºåæ ¼å¼åä¸ä¸ææ¶ã
å°è¯ä¸ä¸
overflow: visible;
overflow: hidden;
overflow: clip;
overflow: scroll;
overflow: auto;
<section class="default-example" id="default-example">
<p id="example-element">
Michaelmas term lately over, and the Lord Chancellor sitting in Lincoln's
Inn Hall. Implacable November weather. As much mud in the streets as if the
waters had but newly retired from the face of the earth.
</p>
</section>
#example-element {
width: 15em;
height: 9em;
border: medium dotted;
padding: 0.75em;
text-align: left;
}
ææç屿§
è¿ä¸ªå±æ§æ¯ä»¥ä¸ CSS 屿§çç®åï¼
è¯æ³
/* Keyword values */
overflow: visible;
overflow: hidden;
overflow: clip;
overflow: scroll;
overflow: auto;
overflow: hidden visible;
/* Global values */
overflow: inherit;
overflow: initial;
overflow: revert;
overflow: revert-layer;
overflow: unset;
ä»ä¸é¢åè¡¨ä¸æå®ä¸ä¸ªæè
两个å
³é®åæ¥ä½ä¸º overflow 屿§ã妿æå®ä¸¤ä¸ªå
³é®åï¼ç¬¬ä¸ä¸ªå
³é®åç¨äº overflow-xï¼ç¬¬äºä¸ªå
³é®åç¨äº overflow-yãå¦åï¼overflow-x å overflow-y 设置为ç¸åç屿§å¼ã
å¼
visible-
å 容ä¸è½è¢«è£åå¹¶ä¸å¯è½æ¸²æå°è¾¹è·çï¼paddingï¼çå¤é¨ã
-
妿éè¦ï¼å 容å°è¢«è£å以éåºè¾¹è·ï¼paddingï¼çã䏿便»å¨æ¡ï¼ä¹ä¸æ¯æå è®¸ç¨æ·æ»å¨ï¼ä¾å¦éè¿ææ½æè ä½¿ç¨æ»è½®ï¼ãå 容å¯ä»¥ä»¥ç¼ç¨çæ¹å¼æ»å¨ï¼ä¾å¦ï¼éè¿è®¾ç½®
scrollLeftç屿§ç弿scrollTo()æ¹æ³ï¼, å æ¤è¯¥å ç´ ä»ç¶æ¯ä¸ä¸ªæ»å¨ç容å¨ã clip-
类似äº
hiddenï¼å 容å°ä»¥å ç´ çè¾¹è·ï¼paddingï¼çè¿è¡è£åªãclipåhiddenä¹é´çåºå«æ¯clipå ³é®åç¦æ¢æææ»å¨ï¼å æ¬ä»¥ç¼ç¨æ¹å¼çæ»å¨ã该çå䏿¯ä¸ä¸ªæ»å¨ç容å¨ï¼å¹¶ä¸ä¸ä¼å¯å¨æ°çæ ¼å¼åä¸ä¸æãå¦æä½ å¸æå¼å¯ä¸ä¸ªæ°çæ ¼å¼åä¸ä¸æï¼ä½ å¯ä»¥ä½¿ç¨display: flow-rootæ¥è¿æ ·åã scroll-
妿éè¦ï¼å 容å°è¢«è£å以éåºè¾¹è·ï¼paddingï¼çãæ è®ºæ¯å¦å®é è£åªäºä»»ä½å å®¹ï¼æµè§å¨æ»æ¯æ¾ç¤ºæ»å¨æ¡ï¼ä»¥é²æ¢æ»å¨æ¡å¨å 容æ¹åæ¶åºç°æè æ¶å¤±ãæå°æºå¯è½ä¼æå°æº¢åºçå 容ã
auto-
åå³äºç¨æ·ä»£çã妿å 容éåºè¾¹è·ï¼paddingï¼çï¼å®çèµ·æ¥ä¸
visibleç¸åï¼ä½æ¯ä»ç¶å»ºç«äºä¸ä¸ªæ°çåçº§æ ¼å¼åä¸ä¸æã妿å 容溢åºï¼åæµè§å¨æä¾æ»å¨æ¡ã overlay-
è¡ä¸ºä¸
autoç¸åï¼ä½æ¯æ»å¨æ¡ç»å¶å¨å 容ä¹ä¸ï¼è䏿¯å æ®ç©ºé´ã
Mozilla æ©å±
-moz-scrollbars-none-
请使ç¨
overflow: hidden代æ¿ã -moz-scrollbars-horizontal-
请使ç¨
åoverflow-x: scrollï¼æä½¿ç¨overflow-y: hiddenoverflow: scroll hidden代æ¿ã -moz-scrollbars-vertical-
请使ç¨
åoverflow-x: hiddenï¼æä½¿ç¨overflow-y: scrolloverflow: hidden scroll代æ¿ã -
请使ç¨
overflow: clip代æ¿ã
å¨ Firefox 63 ä¸ï¼-moz-scrollbars-noneã-moz-scrollbars-horizontal å -moz-scrollbars-vertical ä½äºç¹æ§é¦é项ä¸ãå³éè¦å¨ about:config ä¸ï¼å° layout.css.overflow.moz-scrollbars.enabled 设置为 trueã
æè¿°
overflow éé¡¹å æ¬è£åãæ¾ç¤ºæ»å¨æ¡ï¼æè æ¾ç¤ºä»å®¹å¨æµåå¨å´åºåçå 容ã
æå® visibleï¼é»è®¤ï¼æ clip 以å¤çå¼ï¼ä¼å建ä¸ä¸ªæ°çåºåæ ¼å¼åä¸ä¸æãç±äºææ¯åå ï¼è¿æ¯å¿
è¦çââå¦ææµ®å¨å
嫿»å¨å
ç´ ï¼å®å°å¨æ¯ä¸ªæ»å¨æ¥éª¤å强å¶éæ°å
è£
å
容ï¼ä»è导è´ä¸ä¸ªç¼æ
¢çæ»å¨ä½éªã
为使 overflow å
·æææï¼å级水平ç容å¨å¿
é¡»æä¸ä¸ªè®¾å®çé«åº¦ï¼height æ max-heightï¼æ white-space 设置为 nowrapã
设置ä¸ä¸ªè½´ä¸º visibleï¼é»è®¤å¼ï¼ï¼è设置å¦ä¸ä¸ªè½´ä¸ºä¸åç弿¶ï¼visible çè¡ä¸ºä¼å auto 䏿 ·ã
JavaScript ç Element.scrollTop 屿§å¯ç¨äºæ»å¨ HTML å
ç´ ï¼å³ä½¿å½ overflow 设置为 hidden æ¶ã
å½¢å¼å®ä¹
| åå§å¼ | visible |
|---|---|
| éç¨å ç´ | Block-containers, flex containers, and grid containers |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| 计ç®å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| å¨ç»ç±»å | 离æ£å¼ |
å½¢å¼è¯æ³
overflow =
<'overflow-block'>{1,2}
<overflow-block> =
visible |
hidden |
clip |
scroll |
auto
示ä¾
>ä¸ºææ¬è®¾ç½®ä¸åç overflow å¼
HTML
<div>
<code>visible</code>
<p class="visible">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium.
</p>
</div>
<div>
<code>hidden</code>
<p class="hidden">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium.
</p>
</div>
<div>
<code>scroll</code>
<p class="scroll">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium.
</p>
</div>
<div>
<code>auto</code>
<p class="auto">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium.
</p>
</div>
CSS
body {
display: flex;
justify-content: space-around;
}
div {
margin: 1em;
font-size: 1.2em;
}
p {
width: 8em;
height: 5em;
border: dotted;
}
p.visible {
overflow: visible;
}
p.hidden {
overflow: hidden;
}
p.scroll {
overflow: scroll;
}
p.auto {
overflow: auto;
}
ç»æ
è§è
| è§è |
|---|
| CSS Overflow Module Level 3> # propdef-overflow> |
| Scalable Vector Graphics (SVG) 2> # OverflowAndClipProperties> |
æµè§å¨å ¼å®¹æ§
åè§
- ç¸å
³ CSS 屿§ï¼
text-overflowãwhite-spaceãoverflow-xãoverflow-yãoverflow-inlineãoverflow-blockãclipãdisplay - CSS Overflow å Debug scrollable overflow