2017-10-24 11 views
1

トップにタブナビゲーション付きのページがあります(page here;タブは「制作」、「ストーリーと開発」など)。私は、タブの行がページ上で水平に配置されていることを確認したいと思います。どうすればそれを達成できますか?私が間違っていないならば、それは現在おなかが中心です。 W3 Schools page on CSS centeringの指示に従うことによりCSS:この特定の要素をページ上で水平にどのように配置するのですか?

は、私が設定することで、近くに来た:

display: block; 
margin: auto; 
width: 99%; 

しかし、私はそれが適切な/最善の解決策だかはわかりません。 width: 99%を設定する必要がないソリューションはありますか?

重要なのは、サイトがWordPressで構築されていることです。

ありがとうございました。

+0

マージンとパディングのすべてのブラウザのデフォルトが引き続き適用されると仮定すると、99%は安全です。 – zer00ne

+0

フレックスを試しましたか?何かのように: '.ut-nav-tabs {display:flex; justify-content:center;} ut-nav-tabs li {margin:0 1px;}'? –

+0

flexメソッドがあなたのために働きます。上記のスタイルを使うことができます – Uttam

答えて

1

あなたはこの近づく可能性が二つの方法があります。

text-align: center方法

.ut-nav-tabs li { 
    display: inline-block; 
    float: none; 
    vertical-align: top; 
} 

.ut-nav-tabs li:last-child { 
    margin-right: 0px; 
} 

.ut-nav-tabs { 
    text-align: center; 
} 

をこれは、あなたがtext-align: centerを宣言する場合にのみ機能します親の要素は、ブロック要素でなければなりません。。入れ子の子要素は、floatの規則が宣言されていないインラインブロック要素(たとえば、display: inline-block)でなければなりません。floatは、この方法とほとんどの方法で水平方向の中央揃えを試みます。

display: flex方法

.ut-nav-tabs { 
    display: flex; 
    justify-content: space-around; 
} 

.ut-nav-tabs li { 
    float: none; 
    margin-right: 0px; 
} 

これは、これらの日CSSに関する任意のアライメント問題のブロックと「ホットフィックス」の「新しい子供」ですが、私はそれが "だと言ってハザードうCSSの "jQuery" とにかく、それは正当な理由で、flex-boxのルールでは、一般的な配置(水平および垂直)を指定できるようになり、ブラウザーは正確な配置のためにすべての計算を行うことができます。

ブラウザの互換性:それは心配になる場合は、生産コードで注意して使用する必要がありますのでヘッドアップは、しかし、flex-boxは、古いブラウザはあなたに予期しない結果を与える可能性があり、従来のブラウザの貧弱または非常に限定的なサポートを持っています。

+0

よろしくお願いいたします。私は 'text-align:center'メソッドを使っていました。これは、' flex-box 'のサポートが限定されているというあなたの警告のためです。もし両方のメソッドがちゃんと動作すれば、私はちょっとサポートしてくれるでしょう。 1つの小さな長引く問題は、画面の幅が狭いレイアウトです。要素は、少し外れてしまいます(スクリーンショット:https://imgur.com/uTIaT0D)。あなたはそれが特に〜445ピクセルの画面の幅を見ることができます。それについての考え? – cag8f

+0

よろしくお願いします。それらはあなたのリストアイテムに対して宣言したマージンです。それらを完全に削除するか、以下のようなルールを宣言することができます: '.ut-nav-tabs li:nth-​​child(even){ margin-right:0px; } 'となります。いくつかの解像度を縮小するには、このようにルールを調整する必要があります。これはレスポンシブデザインの一部です(ただし、この質問の範囲を超えています)。これを処理するには、設定した画面サイズに必要な新しい規則を宣言するように '@ media'ブレークポイントを設定してください(例えば、*' @media(max-width:445px) ') – UncaughtTypeError

+0

**参照:** https ://www.smashingmagazine.com/2011/01/guidelines-for-responsive-web-design/ – UncaughtTypeError

0

私はこの方法が優れていると思う:

.ut-nav-tabs { 
    width: 100%; 
    text-align: center; 
} 
.ut-nav-tabs li { 
    width: 179px; 
    float: none; 
    display: inline-block; 
    zoom: 1; 
    vertical-align: middle; 
} 
+0

ありがとうございます。私は@UncaughtTypeErrorによって提案された解決策に行きました。それはうまくいきましたが、私は 'zoom'プロパティを使うことを少し躊躇しました。私はそれを見たことがないので、私は少しそれを研究した。このページ(https://css-tricks.com/almanac/properties/z/zoom/)で、私はそれを使用することを怖がっていました。それを使用するあなたの動機は何でしたか? IEでのレンダリングの問題を解決するのは確かですか(記事参照) – cag8f

関連する問題