【发布时间】:2021-12-28 22:29:22
【问题描述】:
我正在开发一个有两种布局(移动和桌面)的网页。在桌面布局中,我希望有一个垂直拆分页面,其中主要内容位于右侧,页眉、页脚和内容图像位于左侧(请查看下图)。
在移动设备上,我希望布局看起来有所不同,页面不再拆分,组件流从页眉开始,然后是主要内容,最后是页脚。内容图像不再显示(检查下图)。
我遇到的问题在于移动布局。我想重新排列显示的组件,而不必使用反应钩子重新渲染它们,因为创建的组件的结构是这样的:
Page
├─ Left Pane
│ ├─ Header
│ ├─ Image
│ ├─ Footer
│
│
├─ Right Pane
├─ Main content
所需的移动结构如下所示:
Page
├─ Header
├─ Main Content
├─ Footer
我尝试使用 display/padding/margin 属性根据媒体查询设置不同的 CSS 样式,并让它有点工作,但是当页脚的内容太长时,这是一个 hacky 解决方案,它会与主要内容重叠内容和页面无法正确显示组件。
有什么方法可以做到这一点而不必触发 React 重新渲染?或者对于我的页面是否有更好的结构建议,以确保桌面版本中的左右窗格完全相互隔离并正确显示移动网站?
【问题讨论】:
标签: css reactjs responsive-design frontend