その中にul hasリストがあります。リストを3列に分割することは可能ですか?.
私のhtmlの構造は次のとおりです:
<ul>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
<li>Test</li>
</ul>
問題:ページを直接編集して、リストを3 ulに分割できません。 CSSで編集する必要があります。
出力:最終出力には3列が必要です。そしてCSSを介して編集
私を助けてください。
ul {
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3;
}
column-countの回答が気に入らない場合(私はそれが好きですが、特にIEではサポートが "iffy"であることは事実です)、次のように簡単に実行できます。
ul li{width:33.333333%; float:left;}
あるいは
ul{display:block;}
ul li{display:inline-block;}
しかし、このようにすると、順序は異なりますが、3つの列ができます。
1 4 7
2 5 8
3 6 9
あなたが持っているでしょう
1 2 3
4 5 6
7 8 9
したがって、長所と短所を検討してください。
個人的には、monkeyinsightの答えを使用しますが、別のオプションが必要な場合は、ここにあります
CSS3 flexbox
もこれを行うことができます:
ul {
flex-direction: column;
flex-wrap: wrap;
display: flex;
height: 100vh;
}
ul li {
flex: 1 0 25%;
}
上記のcssは次のレイアウトを作成します:
+--------------------+
| 01 | 05 | 09 |
+--------------------+
+--------------------+
| 02 | 06 | 10 |
+--------------------+
+--------------------+
| 03 | 07 | 11 |
+--------------------+
+--------------------+
| 04 | 08 | 12 |
+--------------------+
* {box-sizing: border-box;}
body {
margin: 0;
}
.list {
flex-direction: column;
list-style: none;
flex-wrap: wrap;
height: 100vh;
display: flex;
padding: 0;
margin: 0;
}
.list li {
border-bottom: 1px solid #fff;
border-right: 1px solid #fff;
flex: 1 0 25%;
padding: 10px;
color: #fff;
}
.col1 {
background: blue;
}
.col2 {
background: orange;
}
.col3 {
background: green;
}
<ul class="list">
<li class="col1">Test 1</li>
<li class="col1">Test 2</li>
<li class="col1">Test 3</li>
<li class="col1">Test 4</li>
<li class="col2">Test 5</li>
<li class="col2">Test 6</li>
<li class="col2">Test 7</li>
<li class="col2">Test 8</li>
<li class="col3">Test 9</li>
<li class="col3">Test 10</li>
<li class="col3">Test 11</li>
<li class="col3">Test 12</li>
</ul>
次のレイアウトが必要な場合:
+-----------------------+
| 1 | 2 | 3 | 4 |
+-----------------------+
+-----------------------+
| 5 | 6 | 7 | 8 |
+-----------------------+
+-----------------------+
| 9 | 10 | 11 | 12 |
+-----------------------+
次のcssを使用できます。
ul {
flex-wrap: wrap;
display: flex;
}
ul li {
flex: 1 0 25%;
}
* {box-sizing: border-box;}
body {
margin: 0;
}
.list {
list-style: none;
flex-wrap: wrap;
display: flex;
padding: 0;
margin: 0;
}
.list li {
border-bottom: 1px solid #fff;
flex: 1 0 25%;
padding: 10px;
color: #fff;
}
.list li:nth-child(4n + 1) {
background: blue;
}
.list li:nth-child(4n + 2) {
background: orange;
}
.list li:nth-child(4n + 3) {
background: green;
}
.list li:nth-child(4n + 4) {
background: purple;
}
<ul class="list">
<li>Test 1</li>
<li>Test 2</li>
<li>Test 3</li>
<li>Test 4</li>
<li>Test 5</li>
<li>Test 6</li>
<li>Test 7</li>
<li>Test 8</li>
<li>Test 9</li>
<li>Test 10</li>
<li>Test 11</li>
<li>Test 12</li>
</ul>