私は本当にイライラする問題に遭遇しました。の中にあるメニュードロワーを作成しようとしています<ul>
。<div>
テーブル内のネストされた が の場合、display: {fixed,absolute}
別のテーブル セルがある場所に空白のプレースホルダーが表示されます。理由や回避方法がわかりません。
コードの CodePen はこちら: http://codepen.io/quicksnap/pen/gsHrbで、一番上のクラスを切り替えて、私が話していることを確認できます。
このマークアップ構造を保持し、親テーブルの表示を変更せずに固定/絶対を表示する理由または方法についての洞察に感謝します。
マークアップ:
<ul>
<li>
<a href=""><span>Lorem</span></a>
</li>
<li>
<a href=""><span>Lorem</span></a>
</li>
<li>
<a href=""><span>Lorem</span></a>
</li>
<li>
<a href=""><span>Lorem</span></a>
</li>
<div class="fixed"/>
</ul>
CSS:
/*
Why does the display: table show an empty placeholder for
an element inside that is position: fixed/absolute?
*/
/* Comment out/remove !important to see bug */
.fixed { display: none !important; }
.fixed {
display: block;
position: fixed; top: 60px; left: 0;
width: 100%; height: 100px;
background: salmon;
}
ul {
padding: 0;
margin: 0;
width: 100%;
height: 60px;
display: table;
table-layout: fixed;
position: relative;
background: #ccc;
}
ul > li {
display: table-cell;
text-align: center;
vertical-align: middle;
}