2017-10-26 5 views
0

私のnavbarは、ページの中央に揃えられません。実際には、個々のリンクの間のマージンを変更するために追加したコードもうまくいきません、idkなぜそうですか。私は、ナビゲーションバーをバックグラウンド/私の側のスライドショー(ここには表示されていません)の前に移動する他の方法を見つけることができなかったので、ポジションを絶対にしました。私はフィドルを含んでいます。また、透明になる中心のナビゲーションバーを作ってみました。私の次の要素は後ろにあるようにしましたが、できませんでした。私のnavbarはページの中央に揃えられませんか?

https://jsfiddle.net/ep93zz08/

HTML:

<div id="navbar" class="li flex-container nav row"> 
      <a class="nav-link flex-item " href="index.html">PHOTOGRAPHER</a> 
      <a class="nav-link flex-item" href="#">PORTFOLIO</a> 
      <a class="hplogo-a flex-item " href="idex.html"><img id="logo" src="http://www.dynamicaudiovideo.com/_Media/samsung_logo_large.jpeg" alt=""></a> 
      <a class="nav-link flex-item" href="Investment.html">INVESTMENT + FAQ</a> 
      <a class="nav-link flex-item" href="#">BLOG</a> 
     </div> 

CSS: `

body{ 
    margin:0; 
    overflow-x: hidden; 
    font-family: Calibri; 
    font-style: normal; 
    font-variant: normal; 
    background:black; 

} 

.nav{ 
    position: absolute; 
    list-style-type: none; 
    display: inline; 
    z-index: 2; 
    text-align: center; 

} 

.resize-anchor{ 
    display: inline-block; 
    height: auto; 
    width: 300px; 
} 
.hplogo-a{ 
    display: inline-block; 
    height: auto; 
    width: 200px; 
    min-width: 200px; 
} 

a:hover{ 
    color:#D1946F; 
    text-decoration: none; 
} 

a:link{ 
    color:#D1946F; 
    text-decoration: none; 
} 

.navlink, .hplogo-a{ 
    text-align: center; 
    display:inline-block; 
    margin-left: 50px; 
    margin-right: 50px; 
    padding:0; 
} 
.nav-link{ 
    color:white; 
    text-decoration: none; 
    white-space: nowrap; 
    text-align: center; 
    font-family: Calibri; 
    font-size: 18px; 
    font-style: normal; 
    font-variant: normal; 
    line-height: 26.4px; 
    margin-top: 20px; 
} 

.sticky { 

    position: fixed; 
    top: 0; 
    width: 100% 
    z-index: 3; 
} 
.li{ 
    text-align: center; 

} 

.flex-container { 
    display: flex; 
    display: -webkit-flex; 
    -webkit-align-items: center; 
    align-items: center; 
} 

.flex-item { 
    margin: 5px; 
} 

img{ 
    width: 100%; 
} 
` 

答えて

0

#navbarセレクタのCSSルールを追加する方が良いでしょう。 .navのルールは、.navクラスのすべてのHTML要素に影響するためです。 #navbarセレクタを使用すると、ルールはそのIDを持つ特定のdivにのみ影響します。これは働い

#navbar a { 
    margin-right: 20px; 
} 

https://jsfiddle.net/ep93zz08/8/

+0

これは、すべてのクラスとIDの間に当てはまりますか?親クラスに適用されるすべてのCSSルールは、その子クラスにも適用されますが、idクラスには適用されませんか? – BrownBoii333

+0

#navbar * selectorのルールを設定すると、すべての子要素に影響します。 #navbar、#navbar *は#navbarに影響し、すべての子要素に影響します。 クラスセレクタでも同じです。しかし、クラスの代わりにidを使うことについて言及しました。これは、ドキュメント内にIDを持つ要素が1つしかなく、クラス属性を持つ要素がたくさんあるためです。 – camelsWriteInCamelCase

+0

あなたの問題を解決しましたか?@ BrownBoii333? – camelsWriteInCamelCase

0

は、ナビゲーションバーを中央にしようとしたとき、私は使用される一つの簡単な方法があるが.Li下またはul.li使用以下:

margin-left: auto; 
    margin-right: auto; 

か、次を使用して、それに独自のフレアを追加することができます。

#nav { 
     width:750px; 
     margin:0 auto; 
     list-style:none; 
} 
#nav li { 
     float:left; 
} 
#nav a { 
     display:block; 
     text-align:center; 
     width:150px; /* fixed width */ 
     text-decoration:none; 
} 

次のHTMLをフォローアップするために:

<ul id="nav"> 
    <li><a href="#">HOME</a></li> 
    <li><a href="#">CAPABILITIES</a></li> 
    <li><a href="#">ABOUT US</a></li> 
    <li><a href="#">RFQ</a></li> 
    <li><a href="#">CONTACT US</a></li> 
</ul> 
0

あなたはナビゲーションバーのIDにこのスタイルを追加することができます。あなたはナビゲーションバーのID上の絶対位置を使用し、その同じdiv要素のフレックスコンテナクラスのフレックス表示されているので、

left:50%; transform:translateX(-50%); 

あなたのCSSのいくつかを見なければなりません。 2つの異なる方法を使用してdivを中央に配置しようとしているようです。

+0

が、私はまだ間のマージンを調整するように見えることはできません:リンク間の余白を調整する

#navbar { position: relative; list-style-type: none; z-index: 2; justify-content: center; } 

.navのルールを削除し、これを追加しようnav内の要素は? – BrownBoii333

+0

@ BrownBoii333私は元のコードを取り、それを修正していくつかの重複したスタイルを取り除き、それをクリーンアップしました。このソリューションでは、絶対位置なしでフレックスボックスだけを使用して、センタリングされたナビを実現し、パディングしてリンク間のスペースを増減します。 http://jsfiddle.net/9x2gjeka/ –

関連する問題