2016-08-27 12 views
0

私は検索するのが面倒すぎるため、誰かに私のコードをフィードして欲しいと思うように、この質問がどのように聞こえるか分かります。そうではありません。css - リストの中央に配置された画像を整列する

私はこのようなメニューを作成しようとしています: What I want it to look like そして私はその効果を得ることができません。

イメージがインラインになってテキストが隠れないようにしたいのですが、ダイナミックにしたいのですが、私は6つの要素がなくてもイメージを整えています。リスト、私は常にそこにいるイメージをしたい。それ以外のイメージは、私が望むものをかなり描写しています。私が今取得したのはこれです:

ここに私が持っているものがあります: what I got それは私が欲しいものではありません。それは私の例のように反応しません。どこに5つのアイテムがありますか(サイズが違うとオプションです)、イメージはまだ中央に位置しています。それをどうすれば実現できますか?

編集:コードが少し更新されましたので、現在は青いリボンバーが実際に画像の真中にあります。 pxを定義するのではなく、より良い方法がありますか?

私のコードはhereです。チェックアウトしてください。事前に

おかげで、NonameSL

+0

お試しいただいた内容の例をご提供ください。リンクでは十分ではありません。 – user1725382

+0

「イメージが注文された」とはどういう意味ですか?画像は常に中央に表示されますが、リスト項目には何が起こるのかは分かりません。どのように「ダイナミック」なのでしょうか?異なるユースケースのいくつかの例は、長い道のりを行くでしょう... – memo

+0

'li'は、幅と表示タイプtable-cellを持つ必要があります。チェックアウト[こちら](http://output.jsbin.com/lofisevoyo) – SaidbakR

答えて

0

あなたの中に私は、このファイルを考える行番号26のtest2.htmlファイルを次のように変更します。

div#menu ul li a { 
    background-color: #f8fad4; 
    border-color: #136866; 
    border-radius: 4px 4px 0 0; 
    border-style: solid; 
    color: #555533; 
    font-weight: bold; 
    text-decoration: none; 

    //new changes 
    white-space: nowrap; 
    width: 120px; 
    overflow: hidden; 
    display: inline-block; 
} 
1

あなたは垂直にしたい場合は、フレキシボックスを使用することができますアイテムも合わせてください。

ペン:http://codepen.io/tomanagle/pen/zBgdAX

<nav> 
<ul> 
    <li>List item 1</li> 
    <li>A quite longer list item</li> 
    <li>An extremely long list item makes the logo un-centered.</li> 
    <li><img src="https://upload.wikimedia.org/wikipedia/commons/f/f7/English_Pok%C3%A9mon_logo.svg 
    "></li> 
    <li>Shorter</li> 
    <li>List</li> 
    <li>Items</li> 
</ul> 
    </nav> 

はCSS:

nav > ul{ 
    list-style: none; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
} 

nav > ul > li{ 
    float: left; 
    padding: 1rem 2rem; 
    width: 100%; 
    max-width: 12rem; 
} 
nav > ul > li > img{ 
    max-width: 100%; 
} 
+0

などの比例単位を使用して、フォントサイズ、パディング、余白の幅と高さに関連するプロパティを設定しようとする可能性があります。これは素晴らしいですが、サイズの異なるリストアイテムでは機能しません。私のペン:http:// codepenを見てください。io/NonameSL/pen/OXKOoR/ – NonameSL

+0

これは簡単に修正できます。あなたのリスト項目に幅:100%と最大幅を単に加えてください。あなたのimgにも最大幅:100%を追加することを忘れないでください。もう一度Codepenを見てください:http://codepen.io/tomanagle/pen/zBgdAX – Tom

0

最終的に私は非常に似ている、このコードを思い付きました。

width:100px; 
display: inline-block; 

を、リスト項目の数が奇数かどうちょうど小さい側にvisibility: hidden;空の要素を追加します:div#menu ul li aにこれを追加しました。

関連する問題