欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

css溢出機(jī)制的示例分析

這篇文章主要為大家展示了“css溢出機(jī)制的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“css溢出機(jī)制的示例分析”這篇文章吧。

在特克斯等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,特克斯網(wǎng)站建設(shè)費(fèi)用合理。

為什么需要深入學(xué)習(xí)CSS溢出機(jī)制?

在實(shí)際開發(fā)的過程中,內(nèi)容溢出是經(jīng)常見到的。如果不深入了解這個(gè)機(jī)制,你經(jīng)常會(huì)碰到這樣的問題:為什么這個(gè)元素沒有受到祖先元素的overflow:hidden的影響?這里出現(xiàn)的滾動(dòng)條是哪個(gè)元素的?如果消除這個(gè)滾動(dòng)條?如何在指定的元素上增加滾動(dòng)功能?

在這篇文章,我們將會(huì)從CSS標(biāo)準(zhǔn)出發(fā),討論CSS溢出機(jī)制的細(xì)節(jié)。

溢出

當(dāng)一個(gè)盒子(block container box)的內(nèi)容(子元素、孫子元素等后裔)超過盒子本身的大小的時(shí)候,就會(huì)出現(xiàn)溢出。這個(gè)時(shí)候CSS屬性overflow決定如何處理溢出。這個(gè)css屬性大家都知道,在這里不討論了,在這里指出需要注意的幾點(diǎn):

overflow會(huì)影響所在元素的所有內(nèi)容的裁剪、滾動(dòng),但是有一種情況例外:"It affects the clipping of all of the element's content except any descendant elements (and their respective content and descendants) whose containing block is the viewport or an ancestor of the element." 也就是說,overflow的所在元素必須是內(nèi)容元素的直接或間接containing block,這時(shí)overflow屬性才會(huì)影響這個(gè)內(nèi)容元素。比如<A><B><C><C/><B/><A/>,一般來說,B的overflow會(huì)影響C,但是如果C是相對(duì)于viewport或者A定位的(比如使用了position:absolute),那么C的顯示就不受B的裁剪、滾動(dòng)的影響。

當(dāng)需要滾動(dòng)條的時(shí)候,滾動(dòng)條會(huì)放在border與padding之間。父元素產(chǎn)生滾動(dòng)條以后,它產(chǎn)生的containing block的尺寸會(huì)減少,以便給滾動(dòng)條騰出空間。

在<html>和<body>上的overflow屬性存在冒泡現(xiàn)象: "UAs must apply the 'overflow' property set on the root element to the viewport. When the root element is an HTML "HTML" element or an XHTML "html" element, and that element has an HTML "BODY" element or an XHTML "body" element as a child, user agents must instead apply the 'overflow' property from the first such child element to the viewport, if the value on the root element is 'visible'. The 'visible' value when used for the viewport must be interpreted as 'auto'. The element from which the value is propagated must have a used value for 'overflow' of 'visible'. "

可以推斷出:

一般來說只有元素才能擁有滾動(dòng)條(更準(zhǔn)確地說,只有產(chǎn)生block container box的元素才能擁有滾動(dòng)條)。但visual viewport是個(gè)例外。它雖然不是一個(gè)元素,但是也可以擁有滾動(dòng)條。如果在<html>和<body>上都沒有設(shè)置overflow屬性而使用默認(rèn)值visible(大部分場景都是這樣),那么,visual viewport的overflow就是auto:當(dāng)網(wǎng)頁中有內(nèi)容超出visual viewport時(shí),visual viewport上會(huì)出現(xiàn)滾動(dòng)條。

<html>的最終overflow永遠(yuǎn)都是visible。也就是說,<html>元素永遠(yuǎn)不可能擁有滾動(dòng)條。

如果你想要為<body>設(shè)置非visible的overflow,需要先為<html>設(shè)置一個(gè)非visible的值來冒泡,從而<body>的overflow不會(huì)被冒泡。小練習(xí)

小練習(xí):

利用以上原理,使visual viewport和<body>都擁有橫、豎滾動(dòng)條,總共4個(gè)滾動(dòng)條。不能使用overflow: scroll(這樣就太簡單了)。

步驟:

  • 使visual viewport和<body>的最終overflow值都為auto,從而可以出現(xiàn)滾動(dòng)條。

  • 觸發(fā)visual viewport和<body>的溢出。通過【為內(nèi)容設(shè)置一個(gè)更大的尺寸】來做到。

代碼+注釋:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <title>test</title>
  <style>
    * {
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }

    html {
      /* 使html的尺寸始終與visual viewport相同(即使你縮放、調(diào)整瀏覽器窗口的大?。瑥亩鴅ody可以設(shè)置一個(gè)比visual viewport還大的尺寸(110%)。
      對(duì)于默認(rèn)為block的元素可以省略width: 100%; */
      width: 100%;
      height: 100%;
      /* 非visible的值冒泡到visual viewport上,使visual viewport可以出現(xiàn)滾動(dòng)條 */
      overflow: auto;
      border: 15px solid red;
    }

    body {
      /* 使得body可以出現(xiàn)滾動(dòng)條 */
      overflow: auto;
      /* body溢出html,從而溢出initial containning block,從而溢出visual viewport,使得visual viewport出現(xiàn)滾動(dòng)條。
      當(dāng)然,你也可以通過很多其他的方式來觸發(fā)visual viewport的溢出,比如增大html元素,或者在body中弄一個(gè)position: absolute的div */
      width: 110%;
      height: 110%;
      border: 15px solid green;
    }

    main {
      /* main溢出body,使得body出現(xiàn)滾動(dòng)條 */
      width: 110%;
      height: 110%;
      border: 15px solid blue;
    }
  </style>
</head>

<body>
  <main>
  </main>
</body>

</html>

結(jié)果:

css溢出機(jī)制的示例分析

自己在chrome中打開以上代碼,能更加清晰地看出是怎么做到的。

也可以通過absolute的方式來溢出initial containing block:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <title>test</title>
  <style>
    * {
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }

    html {
      /* 使html的尺寸始終與visual viewport相同(即使你縮放、調(diào)整瀏覽器窗口的大?。?,從而body可以設(shè)置一個(gè)比visual viewport還大的尺寸(110%)。
      對(duì)于默認(rèn)為block的元素可以省略width: 100%; */
      width: 100%;
      height: 100%;
      /* 非visible的值冒泡到visual viewport上,使visual viewport可以出現(xiàn)滾動(dòng)條 */
      overflow: auto;
      border: 15px solid red;
    }

    body {
      /* 使得body可以出現(xiàn)滾動(dòng)條 */
      overflow: auto;
      /* 為body設(shè)置一個(gè)尺寸,從而main可以設(shè)置一個(gè)比body還大的尺寸(110%)。
      對(duì)于默認(rèn)為block的元素可以省略width: 100%; */
      height: 100%;
      border: 15px solid green;
    }

    main {
      /* main溢出body,使得body出現(xiàn)滾動(dòng)條 */
      width: 110%;
      height: 110%;
      border: 15px solid blue;
    }

    .abs {
      /* 通過absolute的方式來溢出initial containing block,從而溢出viewport */
      position: absolute;
      width: 100px;
      height: 100px;
      right: -100px;
      bottom: -100px;
      border: 15px solid blueviolet;
    }
  </style>
</head>

<body>
  <main>
  </main>

  <div class="abs"></div>
</body>

</html>

結(jié)果:

css溢出機(jī)制的示例分析

自己在chrome中打開以上代碼,能更加清晰地看出是怎么做到的。

如何看出某個(gè)滾動(dòng)條是屬于哪個(gè)元素的?

通過Chrome DevTools就可以看出滾動(dòng)條的所屬元素。

前面已經(jīng)說過,滾動(dòng)條的位置在元素的border與padding之間。當(dāng)你使用Chrome DevTools選中某個(gè)元素,發(fā)現(xiàn)滾動(dòng)條恰好在高亮區(qū)域(border)內(nèi)部時(shí),滾動(dòng)條就屬于當(dāng)前元素。

css溢出機(jī)制的示例分析

要判斷滾動(dòng)條是否屬于visual viewport,首先先將右邊、下邊的滾動(dòng)條分別滾動(dòng)到最下、最右(這一步很重要,它保證沒有內(nèi)容藏在滾動(dòng)條下面)。然后,Ctrl+Shift+C選擇右邊或下邊的滾動(dòng)條,如果高亮的區(qū)域不包含這個(gè)滾動(dòng)條,就說明這個(gè)滾動(dòng)條不屬于任何元素,也就是屬于visual viewport。

css溢出機(jī)制的示例分析

以上是“css溢出機(jī)制的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁名稱:css溢出機(jī)制的示例分析
文章起源:http://aaarwkj.com/article48/pdppep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、定制開發(fā)、服務(wù)器托管、小程序開發(fā)、響應(yīng)式網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
欧美aⅴ精品一区二区三区| 日韩永久免费av网站| 日本欧美一区二区二区视频免费| 成人爱爱视频在线免费观看| 欧美日韩精品一区二区视频永久免 | 日韩精品在线观看不卡| 亚洲国产日韩欧美在线| 久久精品国产亚洲av高清一区 | 国产一区二区三区av网站| 一区二区三区日韩欧美在线| 蜜桃传媒18传媒在线| 高潮的毛片激情久久精品| 国产精品国产三级国产av野外| 亚洲av产在线精品亚洲第| 欧美日韩欧美国产精品| 国产三级在线观看91| 久草热不卡的av在线| 97乱碰视频在线观看| 日韩精品人妻一区二区三区蜜桃臀| 国产午夜福利片新视觉| 国产精品播放一区二区三区| 刘亦菲毛片一区二区三区| 国产有码日产一区在线观看| 正在播放老肥熟妇露脸| 午夜欧美激情在线视频| 亚洲国产成人精品女人| 韩国av网址在线观看| 狠狠久久五月综合色和啪| 哈昂~不要啊在线观看| 日本一区二区三区免费不卡视频| 男人天堂插插综合搜索| 一区二区三区毛片av网站| 精品人妻一区二区三区| 亚洲精品一二三区免费| 日本女同一区二区高清| 亚洲欧美日韩颜射极品| 亚洲成色在线综合剧情网站 | 一区二区三区毛片免费| 日本黄色大波少妇网站| 国产女主播在线观看视频| 亚洲日本韩国一区二区|