<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        CSS中百分比的問題解析

        來源:懂視網 責編:小采 時間:2020-11-27 18:48:40
        文檔

        CSS中百分比的問題解析

        CSS中百分比的問題解析:這篇文章主要介紹了淺談CSS中的百分比,在定義CSS樣式的時候經常會用的 %這個長度單位,但是這個百分比到底是相對于誰的百分比呢本文介紹了淺談CSS中的百分比,分享給大家,具體如下:結論:標準流中的元素,看其屬性有沒有繼承性。對于width和marg
        推薦度:
        導讀CSS中百分比的問題解析:這篇文章主要介紹了淺談CSS中的百分比,在定義CSS樣式的時候經常會用的 %這個長度單位,但是這個百分比到底是相對于誰的百分比呢本文介紹了淺談CSS中的百分比,分享給大家,具體如下:結論:標準流中的元素,看其屬性有沒有繼承性。對于width和marg
        這篇文章主要介紹了淺談CSS中的百分比,在定義CSS樣式的時候經常會用的 “%”這個長度單位,但是這個百分比到底是相對于誰的百分比呢

        本文介紹了淺談CSS中的百分比,分享給大家,具體如下:

        結論:

        1. 標準流中的元素,看其屬性有沒有繼承性。對于width和margin-left,它是可以繼承的,它會參照父元素或者祖先元素(其實是包含塊);對于height,它沒有繼承性,父元素或者祖先元素會自適應其所有子元素的高度和(這點是需要注意的)。

        2. 絕對定位參照的是離它最近的父元素或祖先元素,如果沒有父元素或祖先元素,那么參照的是初始包含塊(不同的瀏覽器可能不一樣,因為W3C沒有規定瀏覽器具體如何去實現)。但實際上,大部分瀏覽器將可視區當作絕對定位的包含塊。

        3. 固定定位參照可視區

        width設置成百分比

        一般子元素通常將繼承父元素計算過的值當作百分比的參照,對于不可繼承的屬性和根元素,則使用初始值作為參照

        比如.box沒有設置寬度,但默認繼承了body計算過的值,又因為.box是.item的父元素,因此.item又繼承了.box計算過的值。當一個塊級元素不設置寬度時,則它的寬度默認為全屏,就是因為它繼承了包含塊的寬度。

        height設置成百分比

        結論

        高度設置成百分比時,高度不像寬度一樣會繼承父元素或者祖先元素,相反,父元素或者祖先元素會根據子元素的實際高度(高度計算值)來自適應,一般為所有子元素的內容加起來的高度和。而子元素會根據文字行高來設置高度具體值(在子元素高度不設置具體值的情況下)。對于有absolute定位的元素,其高度為百分比時會參照父元素或祖先元素的高度,絕對定位參照的是離它最近的父元素或祖先元素,如果沒有父元素或祖先元素,那么參照的是初始包含塊(不同的瀏覽器可能不一樣,因為W3C沒有規定瀏覽器具體要如何實現)。但實際上,大部分瀏覽器將可視區當作絕對定位的包含塊。

        我們一般喜歡將寬度設置成百分比,但在將高度設置成百分比的時候要注意。

         <style>
         body,p{
         margin:0;
         padding:0;
         }
         .box{
         width:100px;
         height:100%;
         background-color: #58d3e2;
         }
         </style>
        <p class="box">height 100%</p>

        html為什么會出現height等于21呢?是不是這21是從祖先元素繼承過來的?當我們把body的高度設置成100%結果還是一樣。其實這里的高度為行高的高度,也就是說,在高度為0或者不設置高度的情況下,高度是文字的行高,當我們在.box中加上line-height:20px;時,box,body和html的高度都會變成20px;當我們把.box高度設置成具體值時:

         <style>
         body,p{
         margin:0;
         padding:0;
         }
         .box{
         width:100px;
         height:100px;
         background-color: #58d3e2;
         }
         </style>
        <p class="box">height 100%</p>

        可以發現,body和html竟然跟.box高度一樣為100px.所以可以得出父元素在不設置高度的情況下,是自適應子元素高度的(在不設置高度的情況下,html和body的高度是所有內容加起來的高度),如果父元素設置了高度,則是另外一種情況了:

         <style>
         body,p{
         margin:0;
         padding:0;
         }
        
         .d{
         height: 100px;
         width: 200px;
         background-color: #9d9d9d;
         }
         .box{
         width:100px;
         height:100px;
         background-color: #58d3e2;
         }
         </style>
        <p class="d">
        <p class="box">height</p>
        </p>

        可以發現d,body,html的高度都變成了100px(本來應該是200px),說明父元素或祖先元素時被動自適應子元素高度的,它們的高度值不會繼承給自元素。

        當有absolute定位時

        1.絕對定位沒有定位的祖先元素

        這時絕對定位參照的是一個視口的高度,注意視口這個概念。

         <style>
         body,p{
         margin:0;
         padding:0;
         }
         .box{
         position:absolute;
         width:100px;
         height:100%;//改變百分比為50%
         background-color: #58d3e2;
         }
         </style>
        <p class="box">height 100%</p>

        改變height分別為100%和50%,可以發現html的高度為0,并沒有自適應p的高度,因為p已經徹底脫離標準流了,我們說過,如果絕對定位沒有定位的祖先元素,則包含塊為初始包含塊,這里的初始包含塊即為可視區,所以這里的百分比是參照可視區的大小來計算的。所以為50%時占視口的一半。注意這只是一個視口的高度,把滾動條往下拉拉就知道了。

        2.絕對定位的元素在另外一個定位元素里面(除static外)

        這時百分比參照的是父元素生成的包含塊計算出來的值

        所以想讓定位元素的高度占滿整個屏幕,可以:

        body{
         position:relative;
        }

        margin-left設置成百分比

         <style>
         body,p{
         margin:0;
         padding:0;
         }
         .box{
         position:absolute;
         width:100px;
         height:100px;
         margin-left: 100%;
         background-color: #58d3e2;
         }
         </style>
        <p class="box">margin-left</p>

        這時出現了滾動條,這是因為將p的margin-left設置成了100%,而百分比是參照其包含塊body的寬度,body又是參照的html(某些瀏覽器將它當作初始包含塊)。而html的初始包含塊是可視區,所以可視區的寬度再加上元素的100%,自然就超出了屏幕了。

        解決方法:

        (1)利用calc函數

        <style>
         body,p{
         margin:0;
         padding:0;
         }
         .box{
         position:absolute;
         width:100px;
         height:100px;
         margin-left: calc(100%-100px);
         background-color: #58d3e2;
         }
         </style>
        <p class="box">margin-left</p>

        (2)讓body的寬度減去100px,因為p的百分比是參照其父元素的寬度計算的,因此這里將它的父元素的寬度減小,那么它的margin-left的100%自然就小了

        <style>
         body,p{
         margin:0;
         padding:0;
         }
         body{
         margin-right;100px;
         }
         .box{
         position:absolute;
         width:100px;
         height:100px;
         margin-left: 100%;
         background-color: #58d3e2;
         }
         </style>
        <p class="box">margin-left</p>

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        CSS中百分比的問題解析

        CSS中百分比的問題解析:這篇文章主要介紹了淺談CSS中的百分比,在定義CSS樣式的時候經常會用的 %這個長度單位,但是這個百分比到底是相對于誰的百分比呢本文介紹了淺談CSS中的百分比,分享給大家,具體如下:結論:標準流中的元素,看其屬性有沒有繼承性。對于width和marg
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲第一网站免费视频| 国产一级一片免费播放| 亚洲国产精品热久久| 中文字幕av无码不卡免费| 黑人大战亚洲人精品一区| 无套内谢孕妇毛片免费看看| 日本高清免费中文字幕不卡| 光棍天堂免费手机观看在线观看| 亚洲国产午夜福利在线播放| 国产精品黄页免费高清在线观看| 国产亚洲精品久久久久秋霞| 丰满人妻一区二区三区免费视频 | 国产免费拔擦拔擦8X高清在线人| 久久久久一级精品亚洲国产成人综合AV区 | 日本亚洲免费无线码| 国产美女被遭强高潮免费网站| 亚洲色大成网站www| 免费看a级黄色片| 亚洲视频一区在线| 亚洲国产精品免费观看| 亚洲中文字幕AV每天更新| 免费国产成人午夜电影| 亚洲国产91在线| 国产gav成人免费播放视频| 久久毛片免费看一区二区三区| 亚洲AV无码久久精品蜜桃| 手机看黄av免费网址| 国产AV日韩A∨亚洲AV电影 | 精品国产日韩亚洲一区在线| 亚洲综合另类小说色区色噜噜| 免费高清国产视频| 亚洲综合色一区二区三区| 亚洲国产精品成人一区| 久久午夜无码免费| 国产AV无码专区亚洲AVJULIA| xxxxx免费视频| eeuss影院免费92242部| 亚洲电影免费观看| 亚洲精品tv久久久久久久久久| 久久免费公开视频| 亚洲a∨无码一区二区|