【问题标题】:Responsive columns not displaying correctly on mobile device响应式列未在移动设备上正确显示
【发布时间】:2015-07-17 13:33:11
【问题描述】:

我有一个四列页脚,它在平板电脑上折叠成两列,在移动设备上折叠成一列。

视口元标记和样式表如下:

<link rel="stylesheet" href="style/main.css" type="text/css" media="screen">
<link rel="stylesheet" href="style/tablet.css" type="text/css" media="screen and (max-width: 960px)">
<link rel="stylesheet" href="style/mobile.css" type="text/css" media="screen and (max-width: 640px)">

<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=0, width=device-width">

在桌面上更改屏幕尺寸时响应正常,如下所示:

但是,在移动设备上,页脚列显示为两列,而不是一列:

这是来自main.css的css:

div#footer div.wrapper div.column {
    float: none !important;
    display: table-cell;
    width:25%;
    box-sizing:border-box;
    padding: 0 10px;
    border-right: 1px solid rgba(255,255,255,0.1);
}

这是来自tablet.css的css:

div#footer { padding: 10px; }

div#footer div.wrapper div.column { width:50%; margin-bottom: 20px; border: none; float: left !important; }
div#footer div.wrapper div.column:nth-child(3) {
    clear:both;
}

...这是来自mobile.css的css:

div#footer { padding: 10px; }
    div.column {
        width:100% !important;
        float:none !important;
    }

最后是 HTML(带有占位符文本):

<div id="footer">
    <div class="wrapper">
        <div class="column">
            <h4>Important Links</h4>
            <ul>
                <li><a href="/">Homepage</a></li>
                <li><a href="/privacy">Privacy Policy</a></li>
                <li><a href="/terms">Terms of Use</a></li>
                <li><a href="/contact">Contact Us</a></li>
            </ul>
        </div>
        <div class="column">
            <h4>Important Links</h4>
            <ul>
                <li><a href="/">Homepage</a></li>
                <li><a href="/privacy">Privacy Policy</a></li>
                <li><a href="/terms">Terms of Use</a></li>
                <li><a href="/contact">Contact Us</a></li>
            </ul>
        </div>
        <div class="column">
            <h4>Important Links</h4>
            <ul>
                <li><a href="/">Homepage</a></li>
                <li><a href="/privacy">Privacy Policy</a></li>
                <li><a href="/terms">Terms of Use</a></li>
                <li><a href="/contact">Contact Us</a></li>
            </ul>           
        </div>
        <div class="column" style="border-right: none;" >           
            <h4>Header</h4>
            <p>Lorem ipsum dolor sit amet</p>
        </div>
        <div style="clear:both;"></div>
    </div>
</div>

如何确保移动设备显示来自mobile.css 的格式,就像我在桌面浏览器上模拟移动设备时一样?


更新:以下更新后的mobile.css css 代码仍会产生两列:

div.column {
    width:100% !important;
    float:none !important;
    clear: both !important;
    display: block !important;
}

【问题讨论】:

  • 为什么你在 main.css 上使用不同的类而不是移动类,即 div#footer div.wrapper div.column 用于 main? div.column 用于移动设备?
  • div.column 适用于网站上不同部分的列,这些列的主宽度可能不同,但是在移动设备上查看时,网站上的每个列都会变为 100% 宽度。
  • 你有一个外部链接我可以快速浏览一下我想我知道为什么但不想回答它被关闭大声笑?

标签: html css mobile responsive-design


【解决方案1】:

将此添加到 mobile.css

div#footer div.wrapper div.column {
    display: block;
}

当你使用 display: table-cell 时,它会导致

像 元素一样工作

【讨论】:

    【解决方案2】:

    我之前遇到过 display: table-cell; 的奇怪问题。对于移动 CSS 尝试重申平板电脑样式和display: block;

    div#footer { padding: 10px; }
    div#footer div.wrapper div.column:nth-child(3) {
        width:100% !important;
        float:none !important;
        clear: both;
        display: block;
    }
    

    【讨论】:

    • 我稍微编辑了我的代码。在平板电脑 css 中,您将页脚和包装器以及第三列设置为 50%,并且只将列改回而不是页脚或包装器。这可能是问题?看看修改后的代码是否有效。
    • 它最终成为修复它的display: block。谢谢!
    • 太棒了,很高兴我能帮上忙!
    【解决方案3】:

    脱掉你float:none !Important,它会起作用的

    在移动 CSS 上试试这个。

    div#footer { padding: 10px; }
    div#footer div.wrapper div.column {
            width:100% !important;
        }
    

    【讨论】:

    • 不知何故,这导致 四个 列,而不是一个 - 不幸的是倒退了一步!
    • 脱掉你的float:none!important 应该没问题然后编辑我的答案@BenPearlKahan 刚刚在浏览器中尝试过
    • 仍然没有运气 - 回到两列;一平方!
    • 你必须有缓存版本!! @BenPearlKahan 我现在可以在我面前看到它!
    • 我会在每次刷新之前一直清除缓存 - 您是在桌面上查看,还是在移动设备上查看?我使用的是 iPhone 5,它是特定于移动设备的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    相关资源
    最近更新 更多