1

CSS Navbar を作成しましたが、各「navbar-item」の間にスペースがほとんどありません。スペースがまったくないことを望みます!すべての navbar-item の margin-left を変更せずにこれを実現する方法はありますか?

    <!doctype html>
<html>
    <head>
        <title>Home - UnhandyFir9</title>
        <style>
            #wrapper {
                box-shadow: 0px 0px 20px 10px black;
                left: 0px;
                top: 0px;
                margin: auto;
                margin-top: 30px;
                width: 800px;
                background-color: rgb(200, 200, 200);
                font-family: sans-serif;
            }
            #top-notification {
                display: inline-block;
                width: 100%;
                height: 20px;
                background-color: lightblue;
                text-align: center;
            }
            #navbar-core {
                width: 100%;
                height: 30px;
                background-color: lightgreen;
            }
            #navbar-item {
                display: inline-block;
                width: 100px;
                height: 30px;
                text-align: center;
                background-color: green;
                color: white;
            }
        </style>
    </head>
    <body>
        <div id="wrapper">
            <span id="top-notification">== Hi! Our site was just recently launched, so you may expect alot of bugs! Sorry 'bout that! ==</span>
            <div id="navbar-core">
                <a href="home.html" id="navbar-item">Home</a>
                <a href="lessons.html" id="navbar-item">Lessons</a>
                <a href="aboutus.html" id="navbar-item">About Us</a>
                <a href="donate.html" id="navbar-item">Donate</a>
            </div>
        </div>
    </body>
</html>

ここに画像の説明を入力

4

6 に答える 6

1

問題はdisplay:inline-block、要素をインライン ブロックに縮小することです。つまり、HTML の他のすべてのインライン コンテンツと同じように動作します。アンカー要素の間に空白があるため、これは常に 1 つの空白に折りたたまれます。現在のフォント サイズでは、文章内の単語と単語の間のように、その間に実際の「空白」が表示されます。コンテナに適用することでこれを修正できますfont-size:0が、子のためにリセットする必要があるため、面倒です。推奨される方法は、float:left代わりに を使用して、親のサイズを手動で正しく設定し、項目を に設定することheight:100%です。

同じ ID を持つ複数の要素を使用することは間違っていますが、この問題は発生していません - それでも修正する必要があります。

于 2013-10-25T02:02:38.880 に答える
1

コメントで述べたように、ID は一意でなければならないため、代わりにクラスを使用してください。そうは言っても、リンクはインライン要素であり、空白の影響を受けやすいため、リンクを左にフロートさせるか、コード内の要素間の空白を削除してください。

元:

.navbar-item {
    display: inline-block;
    width: 100px;
    height: 30px;
    text-align: center;
    background-color: green;
    color: white;
    float:left;
}

jsFiddle の例

空白を削除したjsFiddle の例

于 2013-10-25T02:02:41.113 に答える
0

初め、

#navbar-item {
    display: inline-block;
    width: 100px;
    height: 30px;
    text-align: center;
    background-color: green;
    color: white;
}

これをclassではなく に変更しidます。Idは一意で、ページで 1 回しか使用できませんが、クラスは何度でも使用できます。

スペースはこれからだと確信していますが、テストするためにフィドルを作成します。

表示: インラインブロック;

あなたはスペースなしでそれを変更display: inline-block;して持つことができます。float: left;

JSFIDDLE

于 2013-10-25T01:59:06.087 に答える
0

これを試して;

.navbar-item {
  display:block;
  float:left;
  width: 100px;
  height: 30px;
  text-align: center;
  background-color: green;
  color: white;
}

<div id="wrapper">
<span id="top-notification">== Hi! Our site was just recently launched, so you may expect alot of bugs! Sorry 'bout that! ==</span>
<div id="navbar-core">
<a href="home.html" class="navbar-item">Home</a>
<a href="lessons.html" class="navbar-item">Lessons</a>
<a href="aboutus.html" class="navbar-item">About Us</a>
<a href="donate.html" class="navbar-item">Donate</a>
</div>
于 2013-10-25T02:03:48.513 に答える
-1

問題をすばやく解決するには、リンクをスパンで囲み、背景を暗くします。

<div id="navbar-core">
    <span class="navbar-inner-wrapper">
            <a href="home.html" id="navbar-item">Home</a>
            <a href="lessons.html" id="navbar-item">Lessons</a>
            <a href="aboutus.html" id="navbar-item">About Us</a>
            <a href="donate.html" id="navbar-item">Donate</a>
    </span>
</div>

次に、これを CSS に追加します。

.navbar-inner-wrapper {
    background-color: green;
}
于 2013-10-25T02:00:29.200 に答える