つまり、サイドバーをページの最上部に配置し、ナビゲーションバーの上から右に向かって、次のようにします。
... 2つの簡単な方法と、他の利点をもたらすもう1つの難しい方法があります。
1。 position: absolute;
これが最も簡単な方法です。
- 追加
top: 0;
、position: absolute;
ニーズがページ(#beta)の最上部に座って、そして交換することを要素にfloat: right;
してright: 0;
(float: right;
動作しませんposition: absolute;
が、right: 0;
このコンテキストで同じ効果を作成します)
- 持っていません
position: relative;
(だあなたのサイト上で、ページ全体を含む要素の上に#container-inner
)、との間には要素(あなたからそれを削除する必要があるので、#pagebody
-それを試してみましたが、それが何かを破壊しません)。
要素のtop: 0;
は、を持つ最も近い親にposition: absolute;
基づきます。position: relative;
2。 margin-top: -XXXpx;
なんらかの理由でposition: relative;
真ん中のdivで必要になった場合(理由はわかりませんが、発生する可能性があります)、別のあまりクリーンでない代替手段があります。
ナビゲーション/ヘッダーセクションの高さは固定されているので、サイドバーを上に移動したいピクセル数がわかります。したがって、サイドバー(#beta
)にその数のピクセルの負の上マージン(のようにmargin-top: -350px;
)を与えることができます。この計画の唯一の問題は、ヘッダーの高さを変更する場合、そのマージントップを調整する必要があることです。
3.コンテンツ優先レイアウト
最後に、最良の(しかし、最も単純ではない)ソリューションは、HTMLテンプレートを編集し、#nav要素をhtmlの下に移動して、#betaサイドバーのようにページコンテンツの下に配置し、次にアルファに大きなマージントップを配置することです。見出し#navセクションのサイズのギャップを作成し、#nav要素と#betaサイドバーの両方を作成position: absolute;
しtop: 0;
(position: relative;
上記のようにsをチェック)、穴を埋めるのに#navが正確に適切なサイズであることを確認します。
HTMLのメインコンテンツの下にコンテンツ以外の要素を配置するほうが一般的には適切です。つまり、スクリーンリーダーを使用している人は、次に進むべきリンクのリストの前に、興味のあるコンテンツを聞いて、一部の検索エンジンは重要度が高くなります。マークアップの早い段階での用語に(これはまだ真実だと確信しています)。
詳しくは、コンテンツファーストレイアウトに関する簡単な記事をご覧ください。モバイルとデスクトップで機能する「レスポンシブ」デザインのコンテキストでの例を示します。