0

固定メニューバーを中央のコンテナのすぐ隣に配置したいのですが、その位置はコンテナではなくビューポートを基準にしているため、コンテナの隣に配置するのに問題があります。

コンテナの隣に固定要素を配置する最も簡単でクリーンな方法は何ですか?

これが私のテストです:https ://dl.dropbox.com/u/10378684/index.html

HTML:

<div id="container">
    <header>
        <hgroup>
            <h3>TIA1</h3>
            <h1>Contreformes</h1>
        </hgroup>

    </header>
    <nav>
        <ol>
            <li><a href="#">Grilles</a></li>
            <li><a href="#">Contreformes</a></li>
            <li><a href="#">Ligne de base</a></li>
        </ol>
    </nav>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse veritatis non autem blanditiis quo rerum sint quasi architecto quibusdam rem. Quibusdam dolores aliquid eum qui impedit architecto ipsum repellendus illum!</p>    

</div>

CSS:

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

body {
    background: black;
    color: white;
    font-size: 100%;
    font-family: "adelle", Helvetica, serif;
}

a {
    color: white;
    text-decoration: none;
    display: block;
    width: 100%;
    margin-bottom: 0px;
    font-size: 16px;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.8);
    padding:  8px ;
    border-bottom: 2px solid black;
    -webkit-transition: all 0.1s ease-out;
    -moz-transition: all 0.1s ease-out;
    -o-transition: all 0.1s ease-out;
    -ms-transition: all 0.1s ease-out;
    transition: all 0.1s ease-out;
}

a:hover {
    background: rgba(223, 207, 191, 0.4);
    padding-left: 10px;
}

ol {
    color: rgba(223, 207, 191, 0.8);
    position: relative;
    list-style-position: inside;
    padding: 0px;
    width: 139px;
    font-size: 14px;
    background: rgba(223, 207, 191, 0.15);
    position: relative;
    float: left;

}

#container {
    position: relative;
    margin: 0 auto;
    width: 960px;
    background: rgba(34, 34, 34, 1.0);
    height: 900px;
}

h1, h3 {
    text-align: center;
    font-weight: normal;
    margin: 0px;
}

h3 {
    padding-top: 15px;
}

h1 {
    padding-bottom: 35px;
}
4

1 に答える 1

2

これは実際には非常に簡単です。あなたがする必要があるのは、nav要素の配置で少し数学を使うことです。ライブデモ: http: //jsfiddle.net/3suYg/embedded/result/

nav{
    width: 139px;
    position: fixed;
    left: 50%;
    margin-left: -619px; /* 480(half width of 960px container) + 139(width of nav) */
}

明らかに、レイアウトの選択により、ナビゲーションが部分的または完全に表示されない可能性があるため、画面が小さい場合に問題が発生します。

于 2012-11-16T21:12:44.250 に答える