假設我們有一個水平的下拉菜單,像這樣的結構:使絕對定位的兒童沒有用完視口的邊界
<ul class="root">
<li class="root-item">
<ul class="submenu">
<li></li>
<li></li>
<li></li>
</ul>
</li>
...
<li class="root-item">
<ul class="submenu">
<li></li>
<li></li>
<li></li>
</ul>
</li>
</ul>
的CSS大致是這樣的:
.root-item{
position:relative;
display:inline-block;
}
.submenu{
position:absolute;
top:-1000px;
}
.root-item:hover .submenu{
top:100%;
}
的priblem這裏是:如果一些(比如,最後).submenu足夠寬,則可能走出.root國界的,最終出來的視口(如果.root的寬度是VP的100%)。
我想正在.submenu-S配入.root什麼;這意味着離開和右.sumbenu的不會得到否定的。但是 - 與純粹的css,只是很好奇,如果有可能在這裏跳過使用javascript。期望的結果就像ribbon menu here。那可能嗎?
謝謝!
感謝您的回覆! 有一兩件事,那複雜了一切:在項目的數量和(尤其是)submenues大小變化的動態菜單的情況下,我們不能預先知道,哪個項目_TO-right_和_TO-left_類應被應用於。 – bonflash
您可以爲您的子菜單設置最大寬度,然後您將能夠確切知道它們中有多少可以正確延伸,然後才能開始向左延伸。但是,如果你想要的是一個完全動態的,不受管制的寬度和行爲,基於這個寬度,我認爲你必須使用JavaScript。 CSS無法知道你需要知道什麼。 – davidtheclark
另外 - 你看過「:nth-child」版本嗎?因爲這不需要手動應用類,所以只需要知道有多少物品可以正確擴展,然後才能開始向左擴展。可能有幫助。 – davidtheclark