html - 在不更改 HTML 的情况下为移动和桌面 View 重新安排 flex 元素

标签 html css flexbox angular-material

我正在为我的网页使用 Angular Material。我必须以不同的方式为桌面和移动设备显示相同的布局。以下是布局和相应的代码:

移动布局 Mobile Layout 手机代码

<div layout="column" style="text-align: center;">
    <div flex-order="0">
        <div class="child-1">Child 1</div>
    </div>
    <div flex-order="1">
        <div class="child-2">Child 2</div>
    </div>
    <div flex-order="2">
        <div class="child-3">Child 3</div>
    </div>
</div>

桌面布局 Desktop Layout 桌面代码

<div layout="row" style="text-align: center;">
    <div flex-order="0">
        <div class="child-2">Child 2</div>
    </div>
    <div flex>
        <div layout="column">
            <div flex-order="0">
                <div class="child-1">Child 1</div>
            </div>
            <div flex-order="1">
                <div class="child-3">Child 3</div>
            </div>
        </div>
    </div>
</div>

CSS 代码

.child-1, .child-2, .child-3 {
    border: 1px solid black; 
    background-color: gray; 
    margin-bottom: 10px;
}
.child-1, .child-3 {
    height: 20px;
}
.child-2 {
    height: 40px;
}

有一个明显的 HTML 代码重复来显示不同的布局。有没有什么方法可以在不重复代码的情况下显示这两种布局?

最佳答案

试试这个

   <div layout-sm="column" layout-gt-sm="row">
      <div hide-sm hide-xs style="background:grey" layout-margin> Child 2</div>
      <div layout="column" layout-align="space-around">
          <div  style="background:grey" layout-margin> Child 1</div>
          <div hide-gt-sm style="background:grey"layout-margin > Child 2</div>
          <div  style="background:grey" layout-margin> Child 3</div>
      </div>
   </div>

代码笔 here

关于html - 在不更改 HTML 的情况下为移动和桌面 View 重新安排 flex 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683411/

相关文章:

html - <按钮类型 ="submit"> 兼容性?

javascript - 为什么 will-change :opacity treat fixed elements differently than will-change:transform in chrome?

css - 向 dd 元素添加元素符号样式

html - CSS3 动画 : blinking overlay box

html - 子菜单边框没有与 parent 左对齐?

javascript - 如何将动态设置HTML的CSS封装在一个div中,使其不影响外部元素?

javascript - 使水平滚动父级占用其子级的宽度

ios - 显示 : flex; doesn't work on iPad (both Chrome and Safari)

html - 如何使用引导网格获得垂直间距?

html - 使用 Flexbox 的等高图像