2011-03-06 85 views
33

我在我的搜索中看到過這樣的幾個問題,但是這個問題沒有得到正確回答,也沒有給出答案。所以,我會再問一次。CSS overflow-y:visible,overflow-x:scroll

<style> 
.parent { overflow-y:scroll; overflow-x:visible; width:100px; } 
.child { position:relative; } 
.child-menu { position:absolute; top:0px; left:-100px; display:inline-block; } 
</style> 

    <div class="parent"> 
    <!-- Lots of the following divs --> 
    <div class="child"> 
    Text Line 
    <div class="child-menu">some pop out stuff</div> 
    </div> 
</div> 

好的,這只是一個例子。但基本上,我試圖完成的是.child類可以在y軸上滾動...上下滾動。但是我想要x軸....子菜單的在.parent容器之外是可見的。

這有道理嗎?所以發生的事情是,當頁面呈現時,瀏覽器將溢出解釋爲自動完成,而不是尊重單獨的軸。我做錯了什麼,或者瀏覽器還沒有達到CSS3規範呢?大多隻在Chrome上進行測試。 enter image description here

回答

28

我想通了!

父應該溢出:auto; .child應該是position:relative; .child-menu應該是position:fixed;與頂部或左側定位。 如果你這樣做,它會保持它與內容的內聯。

如果您需要移動子菜單的使用邊距而不是頂部或左側。示例margin-left:-100px;

+0

不滾動時這不是工作?在我看來,滾動會滾動.child,但不會.child-menu。如果是這樣的話,那麼這似乎不是一個合理的解決方案。 – dchapman 2014-02-24 17:47:44

+1

你知道,我不記得了。我想你是對的。我使用過的這些時間適用於單頁應用程序,這不是問題。合理?沒有其他答案,所以對於那些需要這種功能的人來說,是的,這是非常合理的。滾動時,您始終可以移動div。 – 2014-02-25 15:12:27

+10

如果將來他們看到這個答案時只是爲了節省任何人的時間,這*不會導致彈出窗口在側欄滾動時滾動。所以如果你使用這樣的東西,你將不得不使用JS來跟蹤滾動。 – Andrew 2014-06-12 16:33:26