响应式表格设计

时间:2018-07-12 08:17:30

标签: html html-table responsive-design

在表单中,用户必须设置四个属性。我选择了一个布局表:

enter image description here

但是,这种布局在较小的屏幕上会出现问题。在这种情况下,我想拥有:

enter image description here

在非常小的屏幕上:

enter image description here

有什么主意吗?我正在使用HTML5,CSS3,jQuery 3.3.1和bootstrap 2。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您打算使用表格使表格保持良好的布局。 建议采用这种方式,因为您不能随意重新布置表格中的单元格。或者我应该说,不要使用表格进行响应式布局

Bootstrap网格系统默认情况下是响应式的,因此您应该使用它。 https://www.w3schools.com/bootstrap/bootstrap_grid_system.asp

在这种情况下,您可以像这样将元素放在四个div标签中

<div class="container">
  <div class="row">
    <div class="col-xs-12 col-sm-6 col-lg-3">
      <!-- your first element -->
    </div>
    <div class="col-xs-12 col-sm-6 col-lg-3">
      <!-- your second element -->
    </div>
    <div class="col-xs-12 col-sm-6 col-lg-3">
      <!-- your third element -->
    </div>
    <div class="col-xs-12 col-sm-6 col-lg-3">
      <!-- your fourth element -->
    </div>
  </div>
</div>

答案 1 :(得分:0)

我用flexbox解决了我的问题:

这是我的CSS:

    .flex-container {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }

        .flex-container > div {
            margin: 1px;
        }

        .flex-container > .label {
            padding-left: 8px;
            width: 20%;
            min-width: 100px;
        }

        .flex-container > .value {
            vertical-align: middle;
        }

    .line-break {
        width: 100%;
    }

    .cond-line-break {
        width: 100%;
        display: none;
    }

    @media screen and (max-width: 720px) {
        .cond-line-break {
            display: inline;
        }
    }

    @media screen and (max-width: 360px) {
        .cond-line-break {
            display: inline;
        }

        .flex-container > .label {
            width: 100%;
        }
    }

和我的HTML:

<div class="flex-container">
    <div class="label">Property 1:</div>
    <div class="value">
        <select>
            <option selected="selected">Value 1</option>
            <option>Value 2</option>
            <option>Value 3</option>
            <option>Value 4</option>
        </select>
    </div>
    <div class="cond-line-break"></div>
    <div class="label">Enter Property 2 here:</div>
    <div class="value">
        <select>
            <option>Value 1</option>
            <option selected="selected">Value 2</option>
            <option>Value 3</option>
            <option>Value 4</option>
        </select>
    </div>
    <div class="line-break"></div>
    <div class="label">Property 3:</div>
    <div class="value">
        <select>
            <option>Value 1</option>
            <option>Value 2</option>
            <option selected="selected">Value 3</option>
            <option>Value 4</option>
        </select>
    </div>
    <div class="cond-line-break"></div>
    <div class="label">Property 4:</div>
    <div class="value">
        <select>
            <option>Value 1</option>
            <option>Value 2</option>
            <option>Value 3</option>
            <option selected="selected">Value 4</option>
        </select>
    </div>
</div>

即使使用不同长度的标签,它也可以正常工作。