CSS2 速查表 - overflow (深入理解)

語義
visible 默認(超出父元素部分顯示)
hidden 隱藏(超出父元素部分隱藏)
scroll 滾動條X,Y(父元素出現(xiàn)滾動條無論是否超出)
auto 智能模式 未超出父元素不顯示滾動條棚赔,反相同理
inherit ie8+ 一般不使用媒惕,有瀏覽器兼容問題

overflow-x 系吩、overflow-y ie8+(重要)

1. 情況1

 `overflow-x :hidden;`
 `overflow-y :hidden;`
  如果 `overflow-x`與 `overflow-y` 的值相同 = `overflow`
 上面的代碼等同于 : `overflow:hidden;`

2. 情況2

`overflow-x :visible;`
`overflow-y :hidden || auto || scroll;`
 如果 `overflow-x` 與 `overflow-y` 任意一項值是 = `visible`;
 另一項的值 = `hidden || auto || scroll`
 那么值為 `visible` 這一項的值將被重置為 `auto`
上面的代碼等同于 :
                 ` overflow-x :auto;`
                 ` overflow-y :hidden || auto || scroll;`

兼容性

生效 注意
display:inline水平
對應方位的尺寸限制 widthheight妒蔚、max-width穿挨、max-heightabsoule ie7max-widthmax-height bug
單元格td等肴盏,需要tabletable-layout:fixed

body/html與滾動條

1. 無論什么瀏覽器絮蒿,默認的滾動條均來自<html>而不是<body>

 IE7-瀏覽器默認:`html { overflow-y : scroll ; }`
 IE8+瀏覽器默認:`html { overflow-y : auto ; }`
 所以,如果想要去除頁面默認滾動條叁鉴,只需要: html { overflow : hidden ; }
 而沒必要把<body>也拉下水:html , **body**  { overflow : hidden ; }

2.js與滾動高度

- Chrome瀏覽器:`document.body.scrollTop`
- 其它瀏覽器:`document.documentElement.scrollTop`
- 建議寫法:`document.documentElement.scrollTop || document.body.scrollTop;`

3. overflowpadding-bottom 缺失現(xiàn)象

- Chrome瀏覽器:有
- 其它瀏覽器:無
- 從而導致了`scrollHeight` 元素內容高度不同

4. 滾動條的寬度 17px

    <style type="text/css">
      .body{
          width: 400px;
          overflow:scroll ;
      }
      .in{*zoom: 1; /*ie7*/}
    </style>
    <body>
      <div class="body">
        <div class="in"></div>
      </div>
      <script type="text/javascript">
          var  cw = 400- document.getElementsByClassName('in')[0].clientWidth;
          console.log(cw); //IE7+土涝、Chrome、FireFox(Win7)  cw = 17  !!!
       </script>
    </body>

5. 水平居中跳動問題

  一般網(wǎng)頁制作采用水平居中幌墓,這時候如果出現(xiàn)滾動條則會占用頁面寬度但壮,auto計算的值就會減小。
  發(fā)生水平跳動現(xiàn)象
  解決方法:ie9+
  html { overflow : scroll ; }
 .container { padding-left : calc( 100vw - 100% ) ; }
 .container {
      width: 1210px;
      color: #666;
      padding-left: calc(100vw - 100%);  
    /* 100vw : 瀏覽器寬度 ; 100% : 可用內容寬度  */
 }

6.自定義滾動條 - webkit

實際開發(fā)就用下面幾個:
/*血槽寬度*/
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
/*拖動條*/
::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, .3);
}
/*背景槽*/
::-webkit-scrollbar-track {
    background-color: #ddd;
    border-radius: 6px;
    }

overflow與BFC

1. 觸發(fā)BFC

1. `visible` -
2. `auto*`
3. `scroll*`
4. ` hidden*`

2. 作用

 清除浮動影響

 避免`margin`穿透問題

 兩欄自適應布局 

3. overflow失效

 原因 :絕對定位元素不總是被父級`overflow`屬性裁剪常侣,尤其當`overflow`在**絕對定位元素及其包含塊**之間的時候

包含塊 : 含 position:relative蜡饵、absolute、fixed聲明的父級元素胳施、沒有則body元素

4. 如何避免失效

overflow 元素自身為包含塊溯祸;

overflow 元素的子元素為包含塊;

任意合法`transform`聲明當作包含塊(**new**)舞肆;
<body>
    <div style="overflow: hidden; margin-top:20px ;  width: 200px; height: 300px;border: 5px   solid saddlebrown;">
        [站外圖片上傳中……(1)]
    </div>
 </body>
圖片設置 position: absolute;  父級元素是body 所以 overflow失效

5. resize拉伸

`ccs3`有個屬性名為`resize`焦辅,可以拉伸元素尺寸:
`resize:both` 水平垂直兩邊拉;
`resize:horizontal` 只有水平方向拉;
`resize:vertical` 只有垂直方向拉椿胯;
 但是筷登,此聲明要想其作用,元素的`overflow`屬性值不能是 `**visible**`

6. 拖拽的默認像素是 17px 與scroll邊框一致

7. ellipsis文字溢出點點點省略

  必須是 `overflow:hidden` 屬性哩盲,否則無法實現(xiàn)效果前方;
  <button style="width:200px;white-space:nowrap;textoverflow:ellipsis;overflow:hidden;">
        我是一個按鈕,寬度僅200像素
    </button>

妙用

1. overflow-visible 妙用

2. 失效妙用

疑問廉油?

文章中涉及效果示例

overflow 失效惠险、overflow妙用、兩欄布局
錨點選項卡示例1
target實現(xiàn)動畫選項卡示例2
target實現(xiàn)動畫選項卡示例3
target天氣預報示例

參考

錨點定位機制-應用-問題 張鑫旭
慕課網(wǎng) 張鑫旭 深入理解overflow

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末抒线,一起剝皮案震驚了整個濱河市班巩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌十兢,老刑警劉巖趣竣,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摇庙,死亡現(xiàn)場離奇詭異,居然都是意外死亡遥缕,警方通過查閱死者的電腦和手機卫袒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來单匣,“玉大人夕凝,你說我怎么就攤上這事』С樱” “怎么了码秉?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸡号。 經(jīng)常有香客問我转砖,道長,這世上最難降的妖魔是什么鲸伴? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任府蔗,我火速辦了婚禮,結果婚禮上汞窗,老公的妹妹穿的比我還像新娘姓赤。我一直安慰自己,他們只是感情好仲吏,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布不铆。 她就那樣靜靜地躺著,像睡著了一般裹唆。 火紅的嫁衣襯著肌膚如雪誓斥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天品腹,我揣著相機與錄音岖食,去河邊找鬼。 笑死舞吭,一個胖子當著我的面吹牛,可吹牛的內容都是我干的析珊。 我是一名探鬼主播羡鸥,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忠寻!你這毒婦竟也來了惧浴?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤奕剃,失蹤者是張志新(化名)和其女友劉穎衷旅,沒想到半個月后捐腿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡柿顶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年茄袖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘁锯。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宪祥,死狀恐怖,靈堂內的尸體忽然破棺而出家乘,到底是詐尸還是另有隱情蝗羊,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布仁锯,位于F島的核電站耀找,受9級特大地震影響,放射性物質發(fā)生泄漏业崖。R本人自食惡果不足惜野芒,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腻要。 院中可真熱鬧复罐,春花似錦、人聲如沸雄家。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趟济。三九已至乱投,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顷编,已是汗流浹背戚炫。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留媳纬,地道東北人双肤。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像钮惠,于是被迫代替她去往敵國和親茅糜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內容

  • Overflow基本屬性 visible(默認) hidden scroll auto inherit 假如ove...
    soojade閱讀 2,547評論 0 1
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案素挽? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,751評論 1 92
  • 1蔑赘,overflow的基本屬性 overflow作用的前提? (1),不能是內聯(lián)元素缩赛! (2)耙箍,對尺寸的限制。(w...
    Bennt閱讀 1,977評論 0 4
  • overflow是個非常神奇的屬性,表面上它只是用來處理超出部分隱藏的元素,實質上它有許多神奇的妙用! 1.ove...
    土豪碼農(nóng)閱讀 1,814評論 0 1
  • 有位認識不久的朋友H酥馍,每次來我這辩昆,都會說道他女兒的事。才匆匆忙忙幾次間物喷,我對他的女兒都有了一個大至的了解...
    南飛雨燕閱讀 641評論 5 17