如何在CSS中使用position:fixed和margin-top-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何在CSS中使用position:fixed和margin-top,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

目前創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、來賓網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

問題描述

想用CSS實現(xiàn)頂部固定的效果:

如何在CSS中使用position:fixed和margin-top

嘗試margin-top加position:fixed實現(xiàn),代碼如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Test</title>
  <style type="text/css">
      .header {
          position: fixed;
          height: 20px;
          width: 100%;
      }
      .content {
          margin-top: 30px;
      }
      .aside {
          float: left;
          width: 200px;
          background: orange;
      }
      .main {
          overflow: auto;
          background: yellow;
      }
  </style>
</head>
<body>
    <div class="header">123</div>
    <div class="content">
        <div class="aside">aside</div>
        <div class="main">main</div>
    </div>
</body>
</html>

結(jié)果header沒有定位在頂部,而是空出了content的margin-top距離:

如何在CSS中使用position:fixed和margin-top

按照position:fixed的定義,header已經(jīng)脫離文檔流,應(yīng)該不會受到content布局影響,但結(jié)果并非如此。

問題探究

1.content的margin-top改為padding-top:可實現(xiàn)預(yù)期效果。
2.content同時設(shè)置margin-top和padding-top:仍會空出margin-top的距離。
3.body設(shè)置padding-top:會空出body的padding-top的距離,可實現(xiàn)預(yù)期效果。
4.body設(shè)置margin-top:會空出max(body->margin-top,content->margin-top)的距離。
5.給header設(shè)置top,如top: 0;:不受body和content的布局影響。

TBD:之后補充詳細的測試代碼和效果圖( ̄&nabla; ̄)...

總結(jié)

歸根結(jié)底是margin-top塌陷問題對position:fixed的影響。首先,對于position:fixed元素,如果不指定top,它在垂直方向上的參考原點是body盒模型的content的上邊界。如果指定top,它在垂直方向上的參考原點才是我們常說的視窗(viewport)的上邊界,left和水平方向同理。這里的參考原點是指fixed元素布局時的參考對象,一旦確定,即便頁面被下拉,body上邊界上移,fixed元素位置也不再改變。其次,因為margin-top塌陷問題,設(shè)置content的margin-top后,body的content部分會下移,即參考原點下移,所以fixed元素會空出margin-top的距離。

所以,可以從兩方面解決這個問題:

1.將參考原點改為視窗:給fixed元素設(shè)置top。

2.解決margin-top塌陷問題,更多方法見下方鏈接:

1)給body設(shè)置padding-top。
2)給body設(shè)置border,border顏色和背景色一致。
3)給body設(shè)置position:fixed,這種會導致body的滾動條消失。

先將就看著呀~忙過這陣來完善(允悲)(允悲)。。。
TBD:content名字和盒模型content重啦待改...

  • 不懂position:fixed?=> position|MDN

  • 不懂margin-top塌陷?=> margin-top塌陷問題的現(xiàn)象與解決

上述就是小編為大家分享的如何在CSS中使用position:fixed和margin-top了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁題目:如何在CSS中使用position:fixed和margin-top-創(chuàng)新互聯(lián)
文章分享:http://muchs.cn/article46/ddsseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化標簽優(yōu)化、移動網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計

廣告

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

成都定制網(wǎng)站網(wǎng)頁設(shè)計