使用CSS Grid在移动设备上重新定位div

泰森·伯德

我有一个网格布局,它是几个复制块以及一个伴随的图像(链接到jsfiddle)。

<div class="story-body">

    <div class="body-copy">
         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus iaculis felis, molestie tincidunt est hendrerit vel. Aenean mattis convallis malesuada. Donec nec risus sem. Mauris mi urna, dictum in pulvinar vehicula, rutrum in elit. Sed pulvinar, elit sit amet sollicitudin imperdiet, mauris velit sollicitudin velit, nec lacinia dui massa vitae tellus. </p>
    </div>

    <div class="regular-photo">
         <img src="http://placehold.it/500x500">
    </div>


    <div class="body-copy">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus iaculis felis, molestie tincidunt est hendrerit vel. Aenean mattis convallis malesuada. Donec nec risus sem. Mauris mi urna, dictum in pulvinar vehicula, rutrum in elit. Sed pulvinar, elit sit amet sollicitudin imperdiet, mauris velit sollicitudin velit, nec lacinia dui massa vitae tellus. </p>
    </div>

    <div class="regular-photo">
         <img src="http://placehold.it/500x500">
    </div>

</div>

它完美地显示在桌面上-图像在随附的复印块顶部旁边对齐。问题是,在移动设备上,图像显示在主体复制部分之后,考虑到我以这种方式组织了HTML,这是有道理的。

.story-body {
    display: grid;
    grid-template-columns: 50% 50%;
    grid-auto-flow: row;
}

.body-copy {
    justify-self: center;
    max-width: 80%;
}

.regular-photo {
justify-self: left;
}

@media screen and (max-width: 500px) {
    .story-body {
    grid-template-columns: 100%;
    }
    .regular-photo {
    justify-self: center;
    }
}

有没有一种方法可以将.regular-photodiv定位.body-copy在移动设备上div之前,而无需重新组织HTML?

omukiguy

我对您的代码做了一些重构。对不起。但是这里是解决方案。您可以order property与包含以下内容的类的孩子一起使用display: grid

.story-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-flow: row;
  justify-self: center;
}

.story-body p {
  justify-self: center;
  max-width: 80%;
}

.regular-photo {
  justify-self: left;
  display: inline-block;
  width: 100%;
  height: auto;
}

@media screen and (max-width: 500px) {
  .story-body {
    grid-template-columns: 1fr;
  }
  .photo1 {
    order: 1;
  }
  .p1 {
    order: 2;
  }
  .photo2 {
    order: 3;
  }
  .p2 {
    order: 4;
  }
}
<div class="story-body">
  <p class="p1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus iaculis felis, molestie tincidunt est hendrerit vel. Aenean mattis convallis malesuada. Donec nec risus sem. Mauris mi urna, dictum in pulvinar vehicula, rutrum in elit. Sed pulvinar,
    elit sit amet sollicitudin imperdiet, mauris velit sollicitudin velit, nec lacinia dui massa vitae tellus. </p>
  <div class="regular-photo photo1">
    <img src="http://placehold.it/500x500">
  </div>

  <p class="p2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dapibus iaculis felis, molestie tincidunt est hendrerit vel. Aenean mattis convallis malesuada. Donec nec risus sem. Mauris mi urna, dictum in pulvinar vehicula, rutrum in elit. Sed pulvinar,
    elit sit amet sollicitudin imperdiet, mauris velit sollicitudin velit, nec lacinia dui massa vitae tellus. </p>
  <div class="regular-photo photo2">
    <img src="http://placehold.it/500x500">
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

HTML / CSS查询-似乎无法为移动设备重新定位ul元素

由于滚动菜单消失,使用flexbox的固定元素在iPhone移动Safari上重新定位

仅使用CSS重新定位?

重新定位 CSS 容器

CSS - 移动设备上的 2 个 div

如何使用 css 媒体查询仅在移动设备上定位谷歌浏览器

在桌面和移动设备 css 上使用 word-space 定位文本

如何在CSS中对重新定位的div进行z索引

在移动设备上使用 jquery 隐藏 div

仅在移动设备与桌面设备上的小空间(使用 pos absolute / css 堆叠 div)

使用getBoundingClientRect()数据重新定位项目

使用 tidyverse 重新定位行

使用鼠标滚轮滚动时Chrome闪烁,将div重新定位到$(document).scrollTop()

如何使用媒体查询将 div 元素重新定位到图像底部

使用 react-bootstrap 在折叠的导航栏上重新定位徽标和汉堡菜单

使用CSS定位div

如何使用CSS使用线性渐变重新定位图像?

仅使用CSS进行元素重新定位(卷详细信息)

CSS-重新定位元素而不更改HTML

如何在CSS中重新定位响应式导航

如何在移动设备上使用CSS截断文本

在移动设备上使用 CSS 强制文本换行

仅使用CSS在移动设备上隐藏图像

是否可以在移动设备上安全使用“ zoom” CSS属性?

如何仅使用CSS在移动设备上显示文本?

使用HTML / CSS在移动设备上使表响应

使用 CSS 在移动设备上设置访问密钥?

如何使用 Boostrap Dual Listbox 插件重新定位按钮?

如何使用网格重新定位侧边栏