0

2 つの部分で構成されるナビゲーション バーがあります。実際のリンクがある左側の領域。そして、検索ボックスだった右側の領域が表示されます。

左の領域は流動的ですが、右の領域は幅が固定されています。

私が理解しようとしているのは、左側の領域の完全な幅を使い果たすように、ナビゲーション リンクにパディングを設定する方法です。(ナビゲーションリンクはホバー効果のあるボタンです。幅に関係なく、ナビゲーションバー全体をカバーしたいと思います)

以下の例を参照してください

私がやろうとしていること (バーの幅に基づく流体/パーセンテージベースのパディング)

  width 300px
|========================================|========|
|---Link------Link------Link------Link---| Search |
|========================================|========|

  width 400px
  - padding on Links automatically adjusts to fill the bar
|================================================|========|
|----Link--------Link--------Link--------Link----| Search |
|================================================|========|

これを達成するにはどうすればよいですか?パディングのパーセンテージをいじってみましたが、希望どおりに機能させることができないようです。パディングのパーセンテージは、これを行うための最良の方法でもありますか?

4

2 に答える 2

1

パディングを使用してコンテナの幅を縮小し、パディング内に検索ボックスを絶対に配置します。これはjsbinの例です

HTML (スペースを占有するテキスト ノードがないように、一部の空白が意図的に削除されていることに注意してください。):

  <nav class="">
    <div class="nav-link-container">
            <div class="nav-link"><a >link</a>
      </div><div class="nav-link"><a >link</a>
      </div><div class="nav-link"><a >link</a>
      </div><div class="nav-link"><a >link</a>
      </div>
    </div><div class="search-box-container">
      <input class="search-box" placeholder="search">
    </div>
  </nav>

CSS:

nav {
  padding-right: 220px;
  position: relative;
  background: lightblue;
  line-height: 1.5em;
}
  .nav-link-container {
    display: inline-block;
    width: 100%;
    text-align: center;

  }
    .nav-link {
      display: inline-block;
      width: 25%;
      outline: 1px dashed grey;
    }
  .search-box-container {
    position: absolute;
    right: 0;
    top:0;

    width: 210px;
    display: inline-block;
  }
    .search-box {

      width: 200px;

      border-radius: 5px;
      border: 1px solid lightgrey;
      padding-left: 5px
    }

注意: リンクの場所を示すためにアウトラインを使用しただけで、実際にはそうしないでしょう。

于 2013-10-16T13:27:06.790 に答える
1

希望するサポート レベルに応じて、フレックスボックスを使用できます。

古いブラウザをサポートしたいと思っているだけだと思いますが、最善の解決策はおそらく通常の 2 列のレイアウトで、左側の列内のリンクはパーセンテージ幅 (この例では 25%) で、おそらくmin-width.

Heres a working fiddle . 簡単にデモンストレーションできるように、メイン ボックスのサイズを変更できるようにしました。

于 2013-10-16T13:15:53.180 に答える