【发布时间】:2020-01-08 16:03:11
【问题描述】:
您将如何在移动版和桌面版布局中完全重构网页的各个部分? 我想实现类似于以下的布局:
Desktop:
--------
Primary | Complementary 1
| Complementary 2
Secondary |
Mobile:
-------
Complementary 1
Primary
Complementary 2
Secondary
注意:Desktop 中的分隔线应该是一条直线,Complementaries 具有固定宽度,最大宽度,Primary/Secondary 填充页面的其余部分。此外,所有部分的高度都不同。还要注意移动设备中的交错顺序。 所有这些都阻止了我使用简单的 flexbox 方法,使用 order 和 row/column 来实现这一点。
他们的看法是:桌面中清晰的水平分隔只有通过将两列都放在一个 div 中才真正可行 - 但这本质上会阻止移动布局。 如果有办法通过 css 完全忽略包装 div,那可能是可能的,但我从来没有想过。
感谢任何想法 - 使用 Javascript 这当然是可能的,但如果有一个聪明的、或多或少纯 CSS 的解决方案,我会非常喜欢。
【问题讨论】:
-
只需获得一个响应式 css 网格(或整个 UI 框架)并学习有关如何使用它的语义,总体上让您的生活更轻松。就像bootstrap、foundation,或者甚至是很好的'ol just plain grid。无论哪种方式,这都是一个非常广泛的问题。
-
这个网站的整个框架是不明智的,因为一半的 CSS 代码必须是定制的(否则我会用 DOM 复杂性来完成所有这些专业)。无论如何,忘记了网格(2年前的最后一个网站)。似乎他们也支持订单,所以我认为这可能是可能的......谢谢!
-
如下所述,网格似乎存在一个问题,即您必须明确说明 Primary 或 Complementary1 中的哪一个更大 - 除非有办法解决
-
我现在要研究的另一条路径:回到 flexbox,但强制分栏。垂直弹性盒,强制两列(只是模糊地知道如何通过基础/增长/等实现,也许这是不可能的,因为高度可以无限增长)然后他们可以轻松地垂直分配空间。在移动设备上,然后是简单的 flexbox,对项目进行排序。
-
虽然还有另一个限制,我不能做一个列跨度——这不是问题的一部分,但我计划在上面有另一个部分,要么跨越两列或在左边。使用网格容易,使用 flexbox 很难......
标签: html css media-queries responsive