2017-05-01 58 views
0

我正在使用基於Flexbox的Bootstrap 4。現在如果我完全放置其中一列或其細分,會發生什麼?他們會迴應或不響應?絕對定位元素的自舉響應

例子:

<div id="particles-js"> 
    <div class="container-fluid"> 
     <div class="row"> 
      <div class="col-sm-1"> 
       <img id="logo-small" src="img/logo-small.png" alt="logo"> 
      </div> 
      <div class="col-sm-2"> 
       <div id="navigation-buttons"> 
        <div class="nav-button"></div> 
        <div class="nav-button"></div> 
        <div class="nav-button"></div> 
        <div class="nav-button"></div> 
        <div class="nav-button"></div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

現在,如果我定位#導航按鈕絕,當瀏覽器大小的響應是行不通的。

CSS

#particles-js { 
     background-color: #252627; 
     height: 100vh; 
     position: relative; 
     width: 100%; 
    } 

    canvas { 
     display: block; 
    } 

    #logo-small { 
     position: absolute; 
     top: 50vh; 
    } 

    #navigation-buttons { 
     position: absolute; 
     top: 50vh; 
     width: 13px; 
     top: 50vh; 
     -webkit-transform: translate(0, -37%); 
    } 

PS:#顆粒-JS是一個帆布

+0

絕對位置元素都遵循它們的相對父母或身體是否相對父不可用。使用引導程序無法使它們響應,您需要使用媒體查詢來更改絕對定位元素的屬性以使其響應。 – Niraj

+0

@Niraj謝謝。因此,如果我將相對列和其細分絕對化,那麼調整大小會發生什麼?如果您有時間這麼做,我將非常感謝您是否可以製作CodePen!再次感謝你的回覆。 –

+0

如果列的屬性相對,則您的細分將位於列內。 您可以查看前兩個視頻,以便更好地理解https://www.youtube.com/watch?v=kejG8G0dr5U&index=1&list=PLqGj3iMvMa4L731ispRfGAabXeRpM4RL6 – Niraj

回答

1

你需要讓父母爲位置:相對現在任何一個孩子,你這是位置絕對的,它將被放置就其正常情況下的父母位置而言。 絕對位置只會改變位置,它與響應無關。它將像其他代碼的行爲一樣使用引導類。

請檢查: http://jsfiddle.net/x1hphsvb/7/

HTML:

<div class="container"> 
    <div class="row"> 
    <div class="columns col-sm-4"> 
    First 
    </div> 
    <div class="columns col-sm-4"> 
    Second 
    </div> 
    <div class="columns col-sm-4 third"> 
    Third 
    <div class="container test"> 
     <div class="row"> 
     <div class="col-sm-4"> 
     Test1 
     </div> 
     <div class="col-sm-4"> 
     Test2 
     </div> 
     <div class="col-sm-4"> 
     Test3 
     </div> 
     </div> 
    </div> 
    </div>  
    </div> 
</div> 

CSS:

body { 
    margin: 10px; 
} 

.third{ 
    position:relative; 
} 

.test{ 
    position: absolute; 
    top:10px; 
    left:-15px; 
} 
+0

非常感謝。正是我想知道的。實際上我很困惑,並且認爲無論父母是否親屬,絕對元素都是根據文檔的頂部定位的。最後要問的問題是:我應該避免將列絕對正確?因爲如果一列是絕對的而另一列是絕對的,那麼佈局會搞亂? –

+0

這取決於,如果你需要一個特定的部分應該放在頁面上的任何地方,那麼使用絕對位置進行佈局並沒有什麼壞處。 我會說,bootstrap與任何元素絕對或相對無關,它只是一般的CSS概念。 – Nitesh