最初のレスポンシブレイアウトを作成しようとしています。リストアイテムを幅に応じて垂直線で表示したい。
<div style="height:800px;">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
</div>
1 5 2 6 3 7 4
ブラウザのサイズが変更された場合、私はそれがなるようにしたい
1 4 7 2 5 3 6
誰か助けてくれますか?何時間も試してみたが、何も手に入らない。私はテーブルを使ってみましたが、そのようにすることもできません。
これはCSS列を使用して非常に簡単に実行できます。次にHTMLの例を示します。
#limheight {
height: 300px; /*your fixed height*/
-webkit-column-count: 3;
-moz-column-count: 3;
column-count: 3; /*3 in those rules is just placeholder -- can be anything*/
}
#limheight li {
display: inline-block; /*necessary*/
}
<ul id = "limheight">
<li><a href="">Glee is awesome 1</a></li>
<li><a href="">Glee is awesome 2</a></li>
<li><a href="">Glee is awesome 3</a></li>
<li><a href="">Glee is awesome 4</a></li>
<li><a href="">Glee is awesome 5</a></li>
<li><a href="">Glee is awesome 6</a></li>
<li><a href="">Glee is awesome 7</a></li>
<li><a href="">Glee is awesome 8</a></li>
<li><a href="">Glee is awesome 9</a></li>
<li><a href="">Glee is awesome 10</a></li>
<li><a href="">Glee is awesome 11</a></li>
<li><a href="">Glee is awesome 12</a></li>
<li><a href="">Glee is awesome 13</a></li>
<li><a href="">Glee is awesome 14</a></li>
<li><a href="">Glee is awesome 15</a></li>
<li><a href="">Glee is awesome 16</a></li>
<li><a href="">Glee is awesome 17</a></li>
<li><a href="">Glee is awesome 18</a></li>
<li><a href="">Glee is awesome 19</a></li>
<li><a href="">Glee is awesome 20</a></li>
</ul>
次の例を見ると、固定幅の列が使用されており、これが要求された動作だと思います。
http://www.vanderlee.com/martijn/demo/column/
下の例が上の例と同じ場合、jquery列プラグインは必要ありません。
ul{margin:0; padding:0;}
#native {
-webkit-column-width: 150px;
-moz-column-width: 150px;
-o-column-width: 150px;
-ms-column-width: 150px;
column-width: 150px;
-webkit-column-rule-style: solid;
-moz-column-rule-style: solid;
-o-column-rule-style: solid;
-ms-column-rule-style: solid;
column-rule-style: solid;
}
<div id="native">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
</ul>
</div>
この例、SPRBRNに感謝します。助けてくれました。そして、上記のコードに基づいて使用したミックスインを提案できます。
//multi-column-list( fixed columns width)
@mixin multi-column-list($column-width, $column-rule-style) {
-webkit-column-width: $column-width;
-moz-column-width: $column-width;
-o-column-width: $column-width;
-ms-column-width: $column-width;
column-width: $column-width;
-webkit-column-rule-style: $column-rule-style;
-moz-column-rule-style: $column-rule-style;
-o-column-rule-style: $column-rule-style;
-ms-column-rule-style: $column-rule-style;
column-rule-style: $column-rule-style;
}
を使用して:
@include multi-column-list(250px, solid);
必要な数のリスト要素でリストを作成します。次に、リスト要素の情報と一致するように、style = column-widthとstyle = column-gapを設定して、リストをdivで囲みます。 style = columnsを設定しないでください。画面サイズに適応する完全にレスポンシブなリスト。プラグインは必要ありません。
以下のようなcssの列幅プロパティを使用
<ul style="column-width:135px">
CSS3を使用してそれを行うことができます。
HTMLコードスニペットは次のとおりです。
<ul id="listitem_ascolun">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
</ul>
&CSS3コードスニペットは次のとおりです。
#listitem_ascolun ul{margin:0;padding:0;list-style:none;}
#listitem_ascolun {
height: 500px;
column-count: 4;
-webkit-column-count: 4;
-moz-column-count: 4;
}
#listitem_ascolun li {
display: inline-block;
}