2016-06-14 14 views
2

複数の列を持つ2つの行として表示したいリスト項目の順序付けられていないリストがあります。フレックスアイテムが折り返されたときにリストアイテムの箇条書きが重ならないようにする

問題は、各リストアイテムの箇条書きが前のリストアイテムと重なっていることです。

どうやってこれをやめるのですか?私はマージンを調整する面倒な解決策を見つけましたが、これに対してエレガントな修正があるかどうか疑問に思っていましたか?

私は弾丸を保持したいと思います。 リストアイテム内のテキストを箇条書きで囲む必要はありません。

私は現在、このようにそれをやっている:

body > ul { 
 
    background: #aaa; 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
} 
 
body > ul > li { 
 
    flex-grow: 1; 
 
    width: 33%; 
 
    height: 100px; 
 
} 
 
body > ul > li:nth-child(even) { 
 
    background: #23a; 
 
} 
 
body > ul > li:nth-child(odd) { 
 
    background: #49b; 
 
}
<ul> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
    <li></li> 
 
</ul>

http://jsfiddle.net/L4L67/55/

答えて

0

body > ul { 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
    background: #aaa; 
 
    columns:3; 
 
    column-gap:0; 
 
} 
 
body > ul > li { 
 
    list-style: none; 
 
    height: 100px; 
 
}
<ul> 
 
    <li>1</li> 
 
    <li>2</li> 
 
    <li>3</li> 
 
    <li>4</li> 
 
    <li>5</li> 
 
    <li>6</li> 
 
</ul>

+0

... –

+0

私は、おそらくそれはあなたにいくつかの助けを与えることができ、 "列" を試してみました。 –

+0

@jiandan私は弾丸を保持したいと思います。私は私の質問を編集します。 – miss9

0

あなたはCSS list-style-positionプロパティを探しているかもしれません。

このプロパティを使用すると、マーカーがボックスの外側にあるのか、内側にあるのかを制御できます。

初期値はoutsideです。スペックから

12.5 Lists

list-style-position

outside

マーカーボックスは、主要ブロックボックスの外側です。

inside

マーカーボックスは、要素の内容の前に、任意 :before擬似要素の前に、 主要ブロックボックスの最初のインラインボックスとして配置されています。あなただけの弾丸を取り出し

* { box-sizing: border-box; }   /* NEW */ 
 

 
body > ul { 
 
    background: #aaa; 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
} 
 

 
body > ul > li { 
 
    flex-grow: 1; 
 
    width: 33%; 
 
    height: 100px; 
 
    list-style-position: inside;  /* NEW */ 
 
    text-indent: -1em;     /* NEW */ 
 
    padding-left: 1em;     /* NEW */ 
 

 
} 
 

 
body > ul > li:nth-child(even) { 
 
    background: aqua; 
 
} 
 

 
body > ul > li:nth-child(odd) { 
 
    background: lightgreen; 
 
}
<ul> 
 
    <li>text text text text text text text text text text text text text text text text text text text text text text text text text text text text </li> 
 
    <li></li> 
 
    <li>text text text text text text text text text text text text text text</li> 
 
    <li>text text text text text text text text text text text text text texttext text text text text text text text text text text text text text text text</li> 
 
    <li></li> 
 
    <li></li> 
 
</ul>

+0

申し訳ありませんが、これを指定しておく必要があります。リスト項目のテキストに箇条書きを囲むことは望ましくありません。私は私の質問を編集します。私がこのために見つけた唯一の修正は、テキストの周囲にを折り返して表示と余白を変更することでした。私は何かが欠けていたことを望んでいました。よりエレガントな修正があります。ありがとう。 – miss9

+0

'text-indent'と' padding-left'プロパティを使って、テキストが行頭を囲むのを防ぐことができます。回答が改訂されました。 –

関連する問題