ランディングページをBootstrapからSemantic-UIに変換しています。ページの位置は固定トップナビゲーションバーになっています。メインコンテンツは2列(3列と9列)に分かれています。左側の列はサイドバーを表示するために使用され、右側の列は現在のコンテンツに使用されます。
Semantic-UIのデモページをコピー&ペーストしてみました。ナビゲーションバーの高さは45ピクセルです。メインコンテンツの最初の45pxが重複していることに気づきました。
<link href="//semantic-ui.com/dist/semantic.min.css" rel="stylesheet"/>
<script src="//semantic-ui.com/dist/semantic.min.js"></script>
<div id="navbar" class="ui fixed inverted main menu">
<div class="container">
<div class="title item">
<b>Dashboard</b>
</div>
</div>
</div>
<div id="maincontent" class="ui bottom attached segment pushable">
<div id="sidebar" class="ui visible left vertical sidebar menu">
<a class="item">First Item</a>
<a class="item">Second Item</a>
<a class="item">Third Item</a>
<a class="item">Fourth Item</a>
<a class="item">Fifth Item</a>
</div>
<div id="content" class="pusher">
<div class="ui basic segment">
<h3 class="ui header">Application Content</h3>
<p>First paragraph...</p>
<p>Second paragraph...</p>
<p>Third paragraph...</p>
</div>
</div>
</div>
私の現在の回避策は、navbarの後に45pxの高さのプレースホルダーを追加することです。
<div style="height:45px"></div>
私はいくつかの優れたCSSスタイル名がコンテンツの重複を修正できると確信しています。
解決策ははるかに簡単です。メインコンテナにパディングを追加するだけです。
<div id="navbar" class="ui fixed inverted main menu">
<!-- header content here -->
</div>
<div id="content" class="ui container">
<!-- main content here -->
</div>
そしてあなたのCSSに追加してください:
.ui#content{
// padding should be the same as header height
padding-top: 55px;
}
ページコンテンツをグリッドクラスでラップする必要があります。
<link href="//semantic-ui.com/dist/semantic.min.css" rel="stylesheet"/>
<script src="//semantic-ui.com/dist/semantic.min.js"></script>
<div id="navbar" class="ui fixed inverted main menu">
<div class="container">
<div class="title item">
<b>Dashboard</b>
</div>
</div>
</div>
<div class="ui grid">
<div class="row">
<div class="column">
<div id="maincontent" class="ui bottom attached segment pushable">
<div id="sidebar" class="ui visible left vertical sidebar menu">
<a class="item">First Item</a>
<a class="item">Second Item</a>
<a class="item">Third Item</a>
<a class="item">Fourth Item</a>
<a class="item">Fifth Item</a>
</div>
<div id="content" class="pusher">
<div class="ui basic segment">
<h3 class="ui header">Application Content</h3>
<p>First paragraph...</p>
<p>Second paragraph...</p>
<p>Third paragraph...</p>
</div>
</div>
</div>
</div>
</div>
</div>
あなたができることはコンテンツのdivに高さを設定してからoverflow:scrollを設定することです。このようにして、長いコンテンツはdiv内でスクロールし、ページの上およびナビゲーションバーの下に移動しません。