2016-05-20 19 views
0

我試圖創建一個停留在頁面底部的div,並且在那裏不可見。我的意思是,你不能滾動到它。我試圖谷歌它,但我不能做到這一點,既沒有負底邊,也沒有負底,也沒有相對/絕對定位不能使它... 請問你們誰能幫助我嗎?如何使div停留在頁面底部,因此訪問者無法滾動到該頁面?

這是我的網站片段 - 我希望「菜單」圖像在底部(顯示區域外部)不可見,因此可以在需要時滑動。你也許可以做到這一點

body { 
 
    overflow-x: hidden; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.main-container { 
 
    width: 100vw; 
 
    height: 100vh; 
 
    background-color: #780d0d; 
 
    position: absolute; 
 
} 
 
.mainmenu { 
 
    width: 70vw; 
 
    height: 82vh; 
 
    position: relative; 
 
    top: 8vh; 
 
    left: 15vw; 
 
    -webkit-box-shadow: 0px 0px 66px 10px rgba(0, 0, 0, 0.75); 
 
    -moz-box-shadow: 0px 0px 66px 10px rgba(0, 0, 0, 0.75); 
 
    box-shadow: 0px 0px 66px 10px rgba(0, 0, 0, 0.75); 
 
} 
 
.menu-bottom { 
 
    height: 20%; 
 
    width: 33.2%; 
 
    background-color: red; 
 
    border: 1px solid; 
 
    display: inline-block; 
 
    margin: 0 -5px 0 0; 
 
} 
 
.menu-side-holder { 
 
    height: 80%; 
 
    width: 30%; 
 
    display: inline-block; 
 
} 
 
.menu-side { 
 
    height: 50%; 
 
    background-color: red; 
 
    border: 1px solid; 
 
    display: block; 
 
    margin: 0; 
 
    vertical-align: top; 
 
} 
 
#menu-img { 
 
    height: 80%; 
 
    width: 40%; 
 
    display: inline-block; 
 
    margin: 0 -4px; 
 
    vertical-align: top; 
 
    clear: none; 
 
} 
 
.menu-bottom-slider { 
 
    display: inline-block; 
 
    width: 100%; 
 
    background-color: green; 
 
} 
 
#slider { 
 
    position: absolute; 
 
    padding-left: 43.5%; 
 
    bottom: 0; 
 
    margin-bottom: -30vh; 
 
}
<div class="main-container"> 
 
    <div class="mainmenu"> 
 
    <div class="menu-side-holder"> 
 
     <div class="menu-side" id="ogloszenia"> 
 
     1 
 
     </div> 
 
     <div class="menu-side"> 
 
     3 
 
     </div> 
 
    </div> 
 
    <img id="menu-img" src="img/main4.jpg"> 
 
    <div class="menu-side-holder"> 
 
     <div class="menu-side"> 
 
     3 
 
     </div> 
 
     <div class="menu-side"> 
 
     4 
 
     </div> 
 
    </div> 
 
    <div class="menu-bottom"> 
 
     5 
 
    </div> 
 
    <div class="menu-bottom"> 
 
     6 
 
    </div> 
 
    <div class="menu-bottom"> 
 
     7 
 
    </div> 
 
    <div class="menu-bottom-slider"> 
 
     <img id="slider" src="http://s32.postimg.org/xrrmzmohx/slider.png"> 
 
    </div> 
 
    </div> 
 
</div>

回答

0

的一種方法是通過使絕對的,並給它等於元素的高度負底部,像這樣

.menu-bottom-slider{ 
    position: absolute; 
    bottom: -(height of element goes here)px 
} 
+0

有可能的工作,但不是很懂事,整潔。 –

1

地方您的目標div爲身體的直接子(不嵌套在其他div中)並使用以下風格:

position:absolute; 
bottom:-100% // or fixed size if height is known 
+0

我很害怕它沒有改變任何東西,你仍然可以滾動到它...我希望它保持在所有可顯示的內容下,所以無論頁面多長時間,它都停留在一切之下,不能可見。這裏是它如何與您的建議工作的小提琴:https://jsfiddle.net/6v4jw0c5/感謝您的幫助無論如何:) – kwojt

+0

在你的小提琴你給絕對位置的菜單底部滑塊和滑塊(圖像裏面) 。 div不在頁面中(可以通過檢查鉻中的元素來檢查)。只要從裏面的圖像中刪除絕對位置。 –

0

你爲什麼不把

opacity: 0

在你需要它的頁面元素,並將其位置上。然後,當你想使用它時,使用jQuery來改變不透明度並對其進行動畫處理。

+0

這不是kwojt想要的。如果使用「不透明」,隱藏元素後面的元素變得不可點擊。 – Aloso

0

這將是你的div部分的CSS。

#divname { 
    position:fixed; 
    height:50px; 
    background-color:red; 
    bottom:0px; 
    left:0px; 
    right:0px; 
    margin-bottom:0px; 
} 

你的身體是這樣的。

**body{ 
    margin-bottom:50px; 
}** 
0

您的代碼幾乎工作,但使用的是overflow-x,你需要overflow-y

編輯:

的另一種方法是將滑塊的位置設置爲fixed。這意味着該位置不依賴於滾動位置,所以你不能滾動到它:

body { 
 
    overflow-x: hidden; /* you could also change this to overflow-y */ 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.main-container { 
 
    width: 100vw; 
 
    height: 100vh; 
 
    background-color: #780d0d; 
 
    position: absolute; 
 
} 
 
.mainmenu { 
 
    width: 70vw; 
 
    height: 82vh; 
 
    position: relative; 
 
    top: 8vh; 
 
    left: 15vw; 
 
    -webkit-box-shadow: 0px 0px 66px 10px rgba(0, 0, 0, 0.75); 
 
    -moz-box-shadow: 0px 0px 66px 10px rgba(0, 0, 0, 0.75); 
 
    box-shadow: 0px 0px 66px 10px rgba(0, 0, 0, 0.75); 
 
} 
 
.menu-bottom { 
 
    height: 20%; 
 
    width: 33.2%; 
 
    background-color: red; 
 
    border: 1px solid; 
 
    display: inline-block; 
 
    margin: 0 -5px 0 0; 
 
} 
 
.menu-side-holder { 
 
    height: 80%; 
 
    width: 30%; 
 
    display: inline-block; 
 
} 
 
.menu-side { 
 
    height: 50%; 
 
    background-color: red; 
 
    border: 1px solid; 
 
    display: block; 
 
    margin: 0; 
 
    vertical-align: top; 
 
} 
 
#menu-img { 
 
    height: 80%; 
 
    width: 40%; 
 
    display: inline-block; 
 
    margin: 0 -4px; 
 
    vertical-align: top; 
 
    clear: none; 
 
} 
 
.menu-bottom-slider { 
 
    display: inline-block; 
 
    width: 100%; 
 
    background-color: green; 
 
} 
 
#slider { 
 
    position: fixed; /* This fixes the slider, you can't scroll to it! */ 
 
    padding-left: 43.5%; 
 
    bottom: 0; 
 
    margin-bottom: -30vh; 
 
}
<div class="main-container"> 
 
    <div class="mainmenu"> 
 
    <div class="menu-side-holder"> 
 
     <div class="menu-side" id="ogloszenia"> 
 
     1 
 
     </div> 
 
     <div class="menu-side"> 
 
     3 
 
     </div> 
 
    </div> 
 
    <img id="menu-img" src="img/main4.jpg"> 
 
    <div class="menu-side-holder"> 
 
     <div class="menu-side"> 
 
     3 
 
     </div> 
 
     <div class="menu-side"> 
 
     4 
 
     </div> 
 
    </div> 
 
    <div class="menu-bottom"> 
 
     5 
 
    </div> 
 
    <div class="menu-bottom"> 
 
     6 
 
    </div> 
 
    <div class="menu-bottom"> 
 
     7 
 
    </div> 
 
    <div class="menu-bottom-slider"> 
 
     <img id="slider" src="http://s32.postimg.org/xrrmzmohx/slider.png"> 
 
    </div> 
 
    </div> 
 
</div>

+0

嗯,實際上我需要overflow-x作爲別的東西,並且我試圖避免溢出-y,因爲網站將會變得更長,並且它不會讓用戶滾動到任何東西,而不僅僅是那一個元素; P – kwojt

+0

您想要垂直滾動?然後你需要修復這個元素。 – Aloso

+0

呃,不完全是。想象一下紙卷。你可以滾動瀏覽它,不管它多長時間,但是這個div低於紙卷的末端,所以你永遠不能滾動到它。我不知道如何解釋這個更清晰的xD – kwojt

相關問題