【问题标题】:How to scale tables at different resolutions如何以不同的分辨率缩放表格
【发布时间】:2016-03-29 14:02:27
【问题描述】:

这是我的网站:http://livyscupcakery.bitballoon.com/

在移动版本上(我正在使用 iPhone 5 查看该网站),“产品”和“联系方式”页面上的表格在 Chrome 上的屏幕分辨率 (~2000x1000) 之外的其他任何东西上看起来都不好。

我需要一些有关如何缩放“产品”表的帮助,以便将其固定在其周围的框上并根据不同的分辨率进行自我调整(例如,在某些分辨率下,只有一行,然后是两行行,然后是三个)。再说一次,在移动设备上的“联系”页面上,按钮是一行而不是一列。我猜这两个问题非常相似,可以用相同的代码解决。

几个月前我开始编写代码,对此我真的很陌生。如果您需要该网站的代码以提供帮助,请告诉我。非常感谢。

【问题讨论】:

  • 为此尝试 jquery footable
  • Bootstrap 列布局是此类任务的简单解决方案,并且被许多用例证明是可靠的 :) 我推荐它作为开箱即用的解决方案。

标签: html css responsive-design html-table


【解决方案1】:

您似乎正在尝试使您的网站具有响应性。

在这种情况下,我强烈建议使用响应式 Web 框架,例如 BootstrapFoundationMaterialize 等。

开发这些框架是为了让我们作为 Web 开发人员的生活更加轻松。

如果您确实采纳了我的建议并决定选择一个框架,我建议您使用他们的网格系统而不是表格来布局您的产品页面。

如果没有,您可以查看媒体查询here。它的 CSS 代码仅在给定条件下运行(例如:宽度小于 500 像素的屏幕尺寸)。

祝你好运。

【讨论】:

    【解决方案2】:

    首先你可以使用响应式框架

    通过在你的文件头中添加这个来包含引导程序。

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    

    然后对于产品将它们添加到此代码中 此块内的每个产品。

    <div class="col-md-3 col-sm-4">
        your product code here ... 
    </div>
    

    【讨论】:

    • “首先你需要响应式框架”不是真的,你也可以自己编码。这是你建议的,不是必须的。
    • 他是编程新手,并且在表格中制作网站......对他来说更好的框架或自己编写代码......我说首先不是唯一的解决方案。
    • 您在评论中写的内容应该包含在您的答案中,因为对于更高级的开发人员来说,这不是“必要的”。现在你的回答说你需要一个响应式框架来完成它。 @Alan 的回答做得很好。对于其他会阅读您的答案的人来说,了解他们有这种选择是必要的,但这不是必须的。这就是为什么它让我有点困扰:)
    • 正如您在我的回答中看到的那样,只要您了解响应式 CSS,就不需要为此建立响应式框架。我并不想把事情复杂化。很抱歉,如果您以任何方式感到恼火。我很高兴您愿意提供帮助,但另一方面,我也希望在 StackOverflow 上获得尽可能清晰的答案,这样每当其他人找到答案时,就可以确切地知道什么是必要的,什么是可选的/建议的。跨度>
    【解决方案3】:

    在父元素上使用display:table,在子元素上使用display:table-cell,这将非常容易。

    因此,对于 联系页面,您可以在 其他样式下添加此 CSS:

    // apply these styles at max-width:666px
    // or remove the media queries and keep this code instead of your old code.
    // keep in mind that if you use this you may have to adjust a few things
    // for it to look as smooth as possible transition-wise.
    
    @media only and screen (max-width:666px) { 
        table {
            display:block;
            margin:0;
            margin-top:15px;
            width:100%;
        }
        tbody {
            width:100%;
            display:table;
        }
        .button2 {
            top:0px;
            margin:0;
        }
        td.row2 {
            padding:0;
            display:table-cell;
        }
    }
    

    请记住,您的代码对此效率不高,因此我的代码基于您的代码。基础是在父元素上使用display:table,在子元素上使用display:table-cell。同时保留所有元素width:100%。希望这会有所帮助。

    输出图像:

    可以小到:

    【讨论】:

    • 表{显示:块;是个好主意......但是这个解决方案将如何出现在产品页面中?那里是真正的问题
    • 他可以使用多个表格行:&lt;tr&gt;display:table 并添加表格单元格 &lt;td&gt;display:table-cell 以获得所需内容的数量。更理想的是,您可以使用display:inline-block(或float:left)执行此操作,以便它自动下推到新行。而且您无需担心每行的行数和元素数。
    猜你喜欢
    • 2020-03-13
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多