73

初めてのレスポンシブ レイアウトを作成しようとしています。幅に応じて、リスト項目を縦一列に表示したい。

<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

誰かが私を助けることができますか?私は何時間も試みてきましたが、何も得られません。テーブルを使ってみましたが、そのようにもできません。

4

7 に答える 7

107

これは、CSS3列を使用して非常に簡単に実行できます。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>

于 2012-09-08T16:39:12.893 に答える
23

次の例を見ると、固定幅の列が使用されており、これが要求された動作だと思います。

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>

于 2014-04-15T13:08:20.133 に答える
5

この例をありがとう、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);
于 2014-07-28T13:10:01.013 に答える
2

以下のようにcssのcolumn-widthプロパティを使用します

<ul style="column-width:135px">
于 2018-06-08T19:09:27.653 に答える
2

必要な数のリスト要素を含むリストを作成します。次に、リスト要素の情報と一致するように、style=column-width および style=column-gap を設定して、リストを div で囲みます。style=columns を設定しないでください。画面サイズに適応する完全にレスポンシブなリスト。プラグインは必要ありません。

于 2017-07-03T10:12:48.490 に答える