Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Flexbox布局问题-Flexbox项跨越多行_Css_Mobile_Layout_Responsive Design_Flexbox - Fatal编程技术网

Css Flexbox布局问题-Flexbox项跨越多行

Css Flexbox布局问题-Flexbox项跨越多行,css,mobile,layout,responsive-design,flexbox,Css,Mobile,Layout,Responsive Design,Flexbox,我最近发布了一个类似的问题,但是我没有得到我想要的答案。也许是因为这是不可能的。我想我应该再问一次更详细的问题。我现在有这个布局,使用flexbox,我很满意 但我希望ipad有这样的布局 使用此html <body> <header>Header</header> <p>image</p> <div class="main_content">Main Content</div> <di

我最近发布了一个类似的问题,但是我没有得到我想要的答案。也许是因为这是不可能的。我想我应该再问一次更详细的问题。我现在有这个布局,使用flexbox,我很满意

但我希望ipad有这样的布局

使用此html

<body>
  <header>Header</header>
  <p>image</p>
  <div class="main_content">Main Content</div>
  <div class="gallery_filter">Filter</div>
  <aside class="gallery_upload">Upload</aside>
  <div class="g_ads">Box</div>
  <footer>Footer</footer>
</body>

标题
形象

主要内容 滤器

小提琴不好看,但我希望你能理解。我就是找不到我想要的布局


谢谢您的帮助。

在不更改HTML的情况下,我想这可能是您想要的方向

这是一个

下面是代码,以防每次链接中断:

<body>
    <header>Header</header>
    <p>image</p>
    <div class="main_content">Main Content</div>
    <div class="gallery_filter">Filter</div>
    <aside class="gallery_upload">Upload</aside>
    <div class="g_ads">Box</div>
    <footer>Footer</footer>
</body>

* {
    margin:0;
    padding:0;
}

body {
    display: flex;
    flex-flow: row wrap;
    height:100%;
}
body > * {
    padding: 10px;
    margin-right:10%;
    flex: 1 90%;
}
header {
    background: #ED1B24;
    height:35px;
}
footer {
    background: #7F7F7F;
}

.main_content {
    text-align: left;
    background: #A349A3;
    min-height:200px;
}

.gallery_filter {
    background: #FEAEC9;
}
p {
    background: #FF7F26;
    height:50px;
}
.gallery_upload {
    background: #00A3E8;
}
.g_ads {
    padding: 0;
    margin: 0;
    flex: 4 10%;
    background: #7092BF;
    height:100%;
    width: 10%;
    position: absolute;
    right: 0;
}
.gallery_filter, .gallery_upload { flex: 0 2 44%; margin:0; }

.main_content   { flex: 3 90%; }
header          { order: 2; }
p               { order: 3; }
.gallery_filter { order: 4; }
.gallery_upload { order: 5; }
.main_content   { order: 6; }
footer          { order: 7; }
.g_ads          { order: 1; }

标题
形象

主要内容 滤器 上传 盒子 页脚 * { 保证金:0; 填充:0; } 身体{ 显示器:flex; 柔性流:行换行; 身高:100%; } 正文>*{ 填充:10px; 保证金权利:10%; 弹性:190%; } 标题{ 背景:#ED1B24; 高度:35px; } 页脚{ 背景#7F7F7F; } .主要内容{ 文本对齐:左对齐; 背景#A349A3; 最小高度:200px; } .图库过滤器{ 背景:#FEAEC9; } p{ 背景#FF7F26; 高度:50px; } .gallery_上传{ 背景:#00A3E8; } g_广告{ 填充:0; 保证金:0; 弹性:4.10%; 背景#7092BF; 身高:100%; 宽度:10%; 位置:绝对位置; 右:0; } .gallery_筛选器、.gallery_上载{flex:0 2 44%;边距:0;} .main_内容{flex:390%;} 标题{顺序:2;} p{顺序:3;} .gallery_过滤器{顺序:4;} .gallery_上传{顺序:5;} .main_内容{顺序:6;} 页脚{顺序:7;} .g_ads{顺序:1;}

正如您所看到的,我根本没有更改您的HTML。

如果不更改HTML,使用Flexbox恐怕无法做到这一点。要获得第二个布局,需要在最左侧区域周围放置一个容器,在其余区域周围放置一个容器。网格布局更容易解决这一问题,目前它缺乏任何合理的浏览器支持:啊,我很担心。最后我把它包在一个div标签上,它就这样工作了。好奇的是,在哪一点上,你会对自己说,“我现在将在网站上实现这一点,即使它没有得到广泛的支持”?例如,您会使用仅支持60%的产品吗?感谢@stephenhayI,我现在正在生产中使用Flexbox。你绝对可以也应该这样做。也就是说,我将它用于组件(这是它的优势所在),而不是页面布局。通常,回退很简单(display:table、display:inline block等),但您必须接受回退的工作方式有点不同。对于不会破坏站点的东西,我会在规范稳定后尽快使用它们。Flexbox是,Grid不是。