2017-05-28 5 views
3

ナビゲーションセクションでは、space-betweenの正当な理由を使用します。ナビゲーションがラップしなければならないより小さいディスプレイでは、アイテムが自分の中心に来るようにしたいと思います。フレックスボックスの間のスペースにラップされたアイテムを中心に

nav { 
 
    display: flex; 
 
    width: 100%; 
 
    flex-flow: row wrap; 
 
    justify-content: space-between; 
 
}
<nav> 
 
    <div class='item'> 
 
    Item 1 is alone on its row if the window is small, but is not centered. 
 
    </div> 
 
    <div class='item'> 
 
    Item 2 is very much like item 1. 
 
    </div> 
 
</nav>

Codepenのデモは:https://codepen.io/anon/pen/MmdOMP?editors=1100#0

+0

これを達成するには、メディアクエリが必要です。 https://codepen.io/anon/pen/dWEJqW – LGSon

+0

私はそれを考え、場合によっては実行可能な解決策ですが、これはHexo(静的サイト生成プログラム)のテーマです。ユーザーは、モバイル上の1つの行に収まるように、またはデスクトップ上の1つの行に収まらない程度に小さい1つのnavを持つことができます。 – Jakob

+0

ここでの主な問題は、フレックスボックスのコンテナ/アイテムは、ラインを破るタイミングを知らないため、それに基づいて動作を変更できないことです。メディアクエリでそれができない場合は、ウィンドウのサイズ変更イベントでスクリプトを実行し、手動で2行に分割されているかどうかを確認する必要があります – LGSon

答えて

0

LGSon's commentは、私には理にかなっているが、おそらくOPはまたはコンテナ内に収まらない可能性があり、ダイナミックテキストを変更する機能に関係なく、望んでいますフレックスボックス設定またはメディアクエリの

行の折り返しを検出してから、アクションをトリガーする(たとえば、テキストの中央に配置するなど)JSを調べます。例えば

:自動的にコンテナ内に収まるようにテキストのサイズを変更しhttps://github.com/xdamman/js-line-wrap-detector

または、JS。すべての種類の状況に役に立たない。

例:http://www.fittextjs.com

関連する問題