Html CSS网格:不展开网格项

Html CSS网格:不展开网格项,html,css,grid-layout,css-grid,Html,Css,Grid Layout,Css Grid,我正在为手机和桌面设计。当处于移动状态时,所有元素都堆叠在彼此的顶部。在桌面上时,元素位于两列中。在移动设备和桌面上,元素的顺序不同 我想用CSS网格创建它 HTML 。。。结果是: 这是我的问题。在桌面上,封面网格项展开时,头部网格项也展开 当详图网格项展开时,desc网格项也展开 等等 显然,这造成了一个非常丑陋的布局。 我开始认为CSS网格可能是错误的方法。 我需要指导。我整个上午都在玩这个,但没有成功。如果你想保持左侧项目的高度独立于同一行上的右侧项目,这与网格的设计目的完全相反 实际

我正在为手机和桌面设计。当处于移动状态时,所有元素都堆叠在彼此的顶部。在桌面上时,元素位于两列中。在移动设备和桌面上,元素的顺序不同

我想用CSS网格创建它

HTML

。。。结果是:

这是我的问题。在桌面上,封面网格项展开时,头部网格项也展开

当详图网格项展开时,desc网格项也展开

等等

显然,这造成了一个非常丑陋的布局。 我开始认为CSS网格可能是错误的方法。
我需要指导。我整个上午都在玩这个,但没有成功。

如果你想保持左侧项目的高度独立于同一行上的右侧项目,这与网格的设计目的完全相反

实际上,任何其他布局都会做得更好。例如,这里有一个使用flexbox的,所以我们可以设置元素的顺序

确保添加

    align-items:flex-start;
这样他们就不会拉伸来匹配旁边的跳水


如您所见,将flex flow从mobile的第一列切换到桌面的换行,可以轻松切换布局,而order属性和一些简单的边距可以保证每个项目都正确无误。

如果您希望保持左侧项目的高度独立于同一行的右侧项目,这与网格的设计目的完全相反

实际上,任何其他布局都会做得更好。例如,这里有一个使用flexbox的,所以我们可以设置元素的顺序

确保添加

    align-items:flex-start;
这样他们就不会拉伸来匹配旁边的跳水


正如您所看到的,将flex flow从移动设备的列上一列切换到桌面的行换行,可以轻松切换布局,而order属性和一些简单的边距可以保证每个项目都正确无误。

这里真正的挑战是更改标题的位置。如果在下一个项目的页边空白处使用已知的高度页眉,则可以使用最简单的网格,即1fr-2fr左右列,每列各有一行

@media screen and (min-width: 700px) {
  .container{
    grid-template-columns:1fr 2fr;
    grid-template-rows:1fr;
    grid-template-areas:"left right";
  } 

这里真正的挑战是改变头球的位置。如果在下一个项目的页边空白处使用已知的高度页眉,则可以使用最简单的网格,即1fr-2fr左右列,每列各有一行

@media screen and (min-width: 700px) {
  .container{
    grid-template-columns:1fr 2fr;
    grid-template-rows:1fr;
    grid-template-areas:"left right";
  } 

我只是想了想。。。asnwer再简单不过了:桌面使用良好的ol浮动,移动使用flex,这样您就可以根据需要重新订购物品:

@media screen and (min-width: 700px) {
  .container { display:block; }
  .cover, .detail{ width:33%; }
  .head, .desc, .media, .comment { width:66%; float:right; }
}

检查JSFIDLE,我认为这次它会工作得很好

我只是想了一下。。。asnwer再简单不过了:桌面使用良好的ol浮动,移动使用flex,这样您就可以根据需要重新订购物品:

@media screen and (min-width: 700px) {
  .container { display:block; }
  .cover, .detail{ width:33%; }
  .head, .desc, .media, .comment { width:66%; float:right; }
}

检查JSFIDLE,我认为这次它会工作得很好

如果您希望保持左侧项目的高度独立于同一行中的右侧项目,则这与网格的设计目的完全相反do@FacundoCorradini你建议我用什么?我有点被卡住了……如果你想让左边的项目和右边的项目在同一行上保持独立的高度,那几乎与网格的设计完全相反do@FacundoCorradini你建议我用什么?我有点被卡住了…看看发生了什么,在桌面上,当覆盖网格区域扩展时,头部也会扩展。。。另外,如果你注意到我的问题,桌面和移动设备上的网格区域有不同的定义order@Marco您可以将订单设置为任何您想要的。在我的例子中,我把头从第三个换到第二个,我想你可以自己找到剩下的。不管怎样,我只是按照你想要的顺序编辑了我的答案。至于展开,头部没有展开,间隔是。如果您想要完全独立的左列和右列。。。然后你应该先使用:独立的左和右div,然后根据你的喜好布置内部项目。但到那时,你将失去项目定位的灵活性。我需要完全独立的左栏和右栏。左栅格区域一半为空是没有意义的,因为右栅格区域之一会扩展。。。反之亦然。从我所看到的,网格和flexbox解决方案几乎可以工作,但不是我想要的方式。我觉得没有办法解决一个非常基本的问题problem@Marco当您需要移动高度未知的项目的顺序时,它就不再是一个非常基本的问题。CSS充满了非常基本的东西,应该比它们简单一百万倍,但我不认为这是其中之一看看发生了什么,在桌面上,当覆盖网格区域扩大时,头部也会扩大。。。另外,如果你注意到我的问题,桌面和移动设备上的网格区域有不同的定义order@Marco您可以将订单设置为任何您想要的。在我的例子中,我把头从第三个换到了第二个
你不能自己找出其余的。不管怎样,我只是按照你想要的顺序编辑了我的答案。至于展开,头部没有展开,间隔是。如果您想要完全独立的左列和右列。。。然后你应该先使用:独立的左和右div,然后根据你的喜好布置内部项目。但到那时,你将失去项目定位的灵活性。我需要完全独立的左栏和右栏。左栅格区域一半为空是没有意义的,因为右栅格区域之一会扩展。。。反之亦然。从我所看到的,网格和flexbox解决方案几乎可以工作,但不是我想要的方式。我觉得没有办法解决一个非常基本的问题problem@Marco当您需要移动高度未知的项目的顺序时,它就不再是一个非常基本的问题。CSS充满了非常基本的东西,应该比它们简单一百万倍,但我不认为这是其中之一感谢你的奉献。我可能不得不重新考虑我的布局,使其与网格和/或flexbox一起工作。感谢您的奉献。我可能不得不重新考虑我的布局,使其与网格和/或flexbox一起工作。哇!你就是从不放弃,是吗?米尔格雷西亚斯,朋友,今天是阿尤达。哇!你就是从不放弃,是吗?我是格雷西亚斯,朋友,我是今天的阿尤达。