首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应式表格设计

问响应式表格设计
EN

Stack Overflow用户
提问于 2018-07-12 16:17:30
回答 2查看 38关注 0票数 0

在表单中,四个属性必须由用户设置。我选择了一个类似于layout的表格:

​

​

然而,这种布局在较小的屏幕上会产生问题。在这种情况下,我想要:

​

​

在非常小的屏幕上:

​

​

有什么想法吗?我使用的是HTML5、CSS3、jQuery 3.3.1和bootstrap 2。

EN

回答 2

Stack Overflow用户

发布于 2018-07-12 16:34:39

如果我理解正确的话,您打算使用表使您的表单保持良好的布局。不推荐使用而不是,因为您不能自由地重新排列表格中的单元格。或者我应该说,不要使用表来制作响应式布局。

Bootstrap网格系统默认情况下是响应的,所以你应该利用它。https://www.w3schools.com/bootstrap/bootstrap_grid_system.asp

在本例中,可以将元素放在四个div标记中,如下所示

​

代码语言:javascript
复制
<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>

​

票数 0
EN

Stack Overflow用户

发布于 2018-07-12 17:57:45

我用flexbox解决了我的问题:

下面是我的CSS:

代码语言:javascript
复制
    .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:

代码语言:javascript
复制
<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>

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51300541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档