Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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
Html 如何仅使用CSS对div进行重新排序?_Html_Css - Fatal编程技术网

Html 如何仅使用CSS对div进行重新排序?

Html 如何仅使用CSS对div进行重新排序?,html,css,Html,Css,如果一个模板由于其他要求而无法修改HTML,那么当一个div在HTML中没有顺序时,如何在另一个div上显示(重新排列)?两个divs都包含高度和宽度不同的数据 <div id="wrapper"> <div id="firstDiv"> Content to be below in this situation </div> <div id="secondDiv"> Content to b

如果一个模板由于其他要求而无法修改HTML,那么当一个
div
在HTML中没有顺序时,如何在另一个
div
上显示(重新排列)?两个
div
s都包含高度和宽度不同的数据

<div id="wrapper">
    <div id="firstDiv">
        Content to be below in this situation
    </div>
    <div id="secondDiv">
        Content to be above in this situation
    </div>
</div>
Other elements
当维度固定时,很容易将它们定位到需要的位置,但我需要一些关于内容可变时的想法。为了这个场景,请考虑两者的宽度为100%。

我特别寻找的是一个只使用CSS的解决方案(如果没有成功,可能还需要其他解决方案)


接下来还有其他因素。考虑到我演示的有限场景,提出了一个很好的建议,这可能是最好的答案,但我也希望确保以下元素不会受到影响。

好吧,通过一点绝对定位和一些不可靠的保证金设置,我可以接近,但这并不完美:

#包装{位置:相对;边距顶部:4em;}
#firstDiv{位置:绝对;顶部:0;宽度:100%;}
#secondDiv{位置:绝对;底部:0;宽度:100%;}
“margintop:4em”是一个特别讨厌的地方:这个margin需要根据firstDiv中的内容量进行调整。根据您的具体要求,这可能是可能的,但我希望有人能够在此基础上构建一个固体解决方案


Eric关于JavaScript的评论可能应该继续进行。

如果您知道,或者可以强制执行to be up元素的大小,您可以使用

position : absolute;
在你的css中,给div他们的位置

否则javascript似乎是唯一的出路:

fd = document.getElementById( 'firstDiv' );
sd = document.getElementById( 'secondDiv' );
fd.parentNode.removeChild( fd );
sd.parentNode.insertAfter( fd, sd );
或者类似的东西


编辑:我刚刚发现这可能很有用:

正如其他人所说,这不是你想在CSS中做的事情。你可以用绝对定位和奇怪的边距来蒙混过关,但这不是一个可靠的解决方案。在您的情况下,最好的选择是使用javascript。在jQuery中,这是一项非常简单的任务:

$('#secondDiv').insertBefore('#firstDiv');
或者更一般地说:

$('.swapMe').each(function(i, el) {
    $(el).insertBefore($(el).prev());
});
这里有一个解决方案:

<style>
#firstDiv {
    position:absolute; top:100%;
}
#wrapper {
    position:relative; 
}

#第一组{
位置:绝对;顶部:100%;
}
#包装纸{
位置:相对位置;
}

但是我怀疑你有一些内容跟在包装器div后面。

负的顶部边距可以达到这个效果,但是它们需要为每个页面定制。例如,这个标记

<div class="product">
<h2>Greatest Product Ever</h2>
<p class="desc">This paragraph appears in the source code directly after the heading and will appear in the search results.</p>
<p class="sidenote">Note: This information appears in HTML after the product description appearing below.</p>
</div>
…将允许您将第二段拉到第一段上方


当然,您必须手动调整CSS以获得不同的描述长度,以便使介绍段落跳到适当的长度,但是如果您对其他部分的控制有限,并且对标记和CSS完全控制,那么这可能是一个选项。

CSS确实不应该用于重新构造HTML后端。但是,如果您知道这两个元素的高度,并且感到有点不舒服,这是可能的。此外,当在div之间切换时,文本选择会混乱,但这是因为HTML和CSS顺序相反

#firstDiv { position: relative; top: YYYpx; height: XXXpx; }
#secondDiv { position: relative; top: -XXXpx; height: YYYpx; }

其中XXX和YYY分别为第一个div和第二个div的高度。这将适用于后面的元素,与上面的答案不同。

在支持flexbox之前的用户代理()的同时,绝对没有办法通过CSS来实现您想要的内容,除非:

  • 您知道每个元素的精确渲染高度(如果知道,您可以完全定位内容)。如果你处理的是动态生成的内容,那你就倒霉了
  • 你知道这些元素的确切数量。同样,如果您需要对动态生成的多个内容块执行此操作,那么您的运气就不好,尤其是如果有三个以上的内容块
  • 如果上述情况属实,那么您可以通过绝对定位元素来做您想要做的事情--

    同样,如果您不知道至少firstDiv需要的高度,那么仅通过CSS是无法实现的。如果其中任何内容是动态的,则必须使用javascript。

    仅用于CSS解决方案 1.包装物的高度应固定或固定
    2.第二个div的高度应该是固定的

    在CSS中,将第一个div向左或向右浮动。将第二个div向左或向右浮动,与第一个相同。应用
    clear:left
    right
    与第二个div的上述两个div相同

    例如:

    #firstDiv {
        float: left;
    }
    
    #secondDiv {
        float: left;
        clear: left;
    }
    

    或者设置元素的绝对位置,并通过从页面边缘而不是对象边缘声明边距来计算边距。使用%作为它更适合其他屏幕尺寸等。这就是我如何克服这个问题的…谢谢,希望这就是你想要的…

    我有一个更好的代码,由我制作,它太大了,只是为了展示这两件事。。。创建一个4x4表格并垂直对齐多个单元格

    它不使用任何IE黑客,没有垂直对齐:中间;根本

    它不用于垂直定心显示工作台,显示:工作台rom;显示:表格单元格

    它使用了一个容器的技巧,该容器有两个div,一个隐藏(位置不正确,但使父容器具有正确的变量大小),一个在隐藏之后可见,但顶部为:-50%;所以它是移动到正确的位置

    请参见构成此技巧的div类: BloqueTipoContenedor BloqueTipoContenedor_Verticalmententerdo 眼球垂直中心 BloqueTipoContenido\u垂直中心可见

    请原谅在课程名称上使用西班牙语(这是因为我说西班牙语,这太棘手了,如果我使用英语,我会迷路)

    完整代码:

    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="en" />
    <meta name="language" content="en" />
    <title>Vertical Centering in CSS2 - Example (IE, FF & Chrome tested) - This is so tricky!!!</title>
    <style type="text/css">
     html,body{
      margin:0px;
      padding:0px;
      width:100%;
      height:100%;
     }
     div.BloqueTipoTabla{
      display:table;margin:0px;border:0px;padding:0px;width:100%;height:100%;
     }
     div.BloqueTipoFila_AltoAjustadoAlContenido{
      display:table-row;margin:0px;border:0px;padding:0px;width:100%;height:auto;
     }
     div.BloqueTipoFila_AltoRestante{
      display:table-row;margin:0px;border:0px;padding:0px;width:100%;height:100%;
     }
     div.BloqueTipoCelda_AjustadoAlContenido{
      display:table-cell;margin:0px;border:0px;padding:0px;width:auto;height:auto;
     }
     div.BloqueTipoCelda_RestanteAncho{
      display:table-cell;margin:0px;border:0px;padding:0px;width:100%;height:auto;
     }
     div.BloqueTipoCelda_RestanteAlto{
      display:table-cell;margin:0px;border:0px;padding:0px;width:auto;height:100%;
     }
     div.BloqueTipoCelda_RestanteAnchoAlto{
      display:table-cell;margin:0px;border:0px;padding:0px;width:100%;height:100%;
     }
     div.BloqueTipoContenedor{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:100%;position:relative;
     }
     div.BloqueTipoContenedor_VerticalmenteCentrado{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;position:relative;top:50%;
     }
     div.BloqueTipoContenido_VerticalmenteCentrado_Oculto{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;visibility:hidden;position:relative;top:50%;
     }
     div.BloqueTipoContenido_VerticalmenteCentrado_Visible{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;visibility:visible;position:absolute;top:-50%;
     }
    </style>
    </head>
    <body>
    <h1>Vertical Centering in CSS2 - Example<br />(IE, FF & Chrome tested)<br />This is so tricky!!!</h1>
    <div class="BloqueTipoTabla" style="margin:0px 0px 0px 25px;width:75%;height:66%;border:1px solid blue;">
     <div class="BloqueTipoFila_AltoAjustadoAlContenido">
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [1,1]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [1,2]
      </div>
      <div class="BloqueTipoCelda_RestanteAncho">
       [1,3]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [1,4]
      </div>
     </div>
     <div class="BloqueTipoFila_AltoAjustadoAlContenido">
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [2,1]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [2,2]
      </div>
      <div class="BloqueTipoCelda_RestanteAncho">
       [2,3]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [2,4]
      </div>
    </div>
     <div class="BloqueTipoFila_AltoRestante">
      <div class="BloqueTipoCelda_RestanteAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
         The cell [3,1]
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         Now&nbsp;is&nbsp;the&nbsp;highest&nbsp;one
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
         The cell [3,1]
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         Now&nbsp;is&nbsp;the&nbsp;highest&nbsp;one
         </div>
        </div>
       </div>
      </div>
      <div class="BloqueTipoCelda_RestanteAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
          This&nbsp;is<br />cell&nbsp;[3,2]
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
          This&nbsp;is<br />cell&nbsp;[3,2]
         </div>
        </div>
       </div>
      </div>
      <div class="BloqueTipoCelda_RestanteAnchoAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
          This is cell [3,3]
          <br/>
          It is duplicated on source to make the trick to know its variable height
          <br />
          First copy is hidden and second copy is visible
          <br/>
          Other cells of this row are not correctly aligned only on IE!!!
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
          This is cell [3,3]
          <br/>
          It is duplicated on source to make the trick to know its variable height
          <br />
          First copy is hidden and second copy is visible
          <br/>
          Other cells of this row are not correctly aligned only on IE!!!
         </div>
        </div>
       </div>
      </div>
      <div class="BloqueTipoCelda_RestanteAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
          This&nbsp;other is<br />the cell&nbsp;[3,4]
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
          This&nbsp;other is<br />the cell&nbsp;[3,4]
         </div>
        </div>
       </div>
      </div>
     </div>
     <div class="BloqueTipoFila_AltoAjustadoAlContenido">
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [4,1]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [4,2]
      </div>
      <div class="BloqueTipoCelda_RestanteAncho">
       [4,3]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [4,4]
      </div>
     </div>
    </div>
    </body>
    </html>
    
    
    CSS2中的垂直居中-示例(即FF和铬测试)-这太棘手了!!!
    html,正文{
    边际:0px;
    填充:0px;
    宽度:100%;
    身高:100%;
    }
    布卢克提波塔布拉分区{
    显示:表格;边距:0px;边框:0px;填充:0px;宽度:100%;高度:100%;
    
    #firstDiv {
        float: left;
    }
    
    #secondDiv {
        float: left;
        clear: left;
    }
    
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="en" />
    <meta name="language" content="en" />
    <title>Vertical Centering in CSS2 - Example (IE, FF & Chrome tested) - This is so tricky!!!</title>
    <style type="text/css">
     html,body{
      margin:0px;
      padding:0px;
      width:100%;
      height:100%;
     }
     div.BloqueTipoTabla{
      display:table;margin:0px;border:0px;padding:0px;width:100%;height:100%;
     }
     div.BloqueTipoFila_AltoAjustadoAlContenido{
      display:table-row;margin:0px;border:0px;padding:0px;width:100%;height:auto;
     }
     div.BloqueTipoFila_AltoRestante{
      display:table-row;margin:0px;border:0px;padding:0px;width:100%;height:100%;
     }
     div.BloqueTipoCelda_AjustadoAlContenido{
      display:table-cell;margin:0px;border:0px;padding:0px;width:auto;height:auto;
     }
     div.BloqueTipoCelda_RestanteAncho{
      display:table-cell;margin:0px;border:0px;padding:0px;width:100%;height:auto;
     }
     div.BloqueTipoCelda_RestanteAlto{
      display:table-cell;margin:0px;border:0px;padding:0px;width:auto;height:100%;
     }
     div.BloqueTipoCelda_RestanteAnchoAlto{
      display:table-cell;margin:0px;border:0px;padding:0px;width:100%;height:100%;
     }
     div.BloqueTipoContenedor{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:100%;position:relative;
     }
     div.BloqueTipoContenedor_VerticalmenteCentrado{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;position:relative;top:50%;
     }
     div.BloqueTipoContenido_VerticalmenteCentrado_Oculto{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;visibility:hidden;position:relative;top:50%;
     }
     div.BloqueTipoContenido_VerticalmenteCentrado_Visible{
      display:block;margin:0px;border:0px;padding:0px;width:100%;height:auto;visibility:visible;position:absolute;top:-50%;
     }
    </style>
    </head>
    <body>
    <h1>Vertical Centering in CSS2 - Example<br />(IE, FF & Chrome tested)<br />This is so tricky!!!</h1>
    <div class="BloqueTipoTabla" style="margin:0px 0px 0px 25px;width:75%;height:66%;border:1px solid blue;">
     <div class="BloqueTipoFila_AltoAjustadoAlContenido">
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [1,1]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [1,2]
      </div>
      <div class="BloqueTipoCelda_RestanteAncho">
       [1,3]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [1,4]
      </div>
     </div>
     <div class="BloqueTipoFila_AltoAjustadoAlContenido">
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [2,1]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [2,2]
      </div>
      <div class="BloqueTipoCelda_RestanteAncho">
       [2,3]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [2,4]
      </div>
    </div>
     <div class="BloqueTipoFila_AltoRestante">
      <div class="BloqueTipoCelda_RestanteAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
         The cell [3,1]
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         Now&nbsp;is&nbsp;the&nbsp;highest&nbsp;one
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
         The cell [3,1]
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         *&nbsp;*&nbsp;*&nbsp;*
         <br />
         Now&nbsp;is&nbsp;the&nbsp;highest&nbsp;one
         </div>
        </div>
       </div>
      </div>
      <div class="BloqueTipoCelda_RestanteAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
          This&nbsp;is<br />cell&nbsp;[3,2]
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
          This&nbsp;is<br />cell&nbsp;[3,2]
         </div>
        </div>
       </div>
      </div>
      <div class="BloqueTipoCelda_RestanteAnchoAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
          This is cell [3,3]
          <br/>
          It is duplicated on source to make the trick to know its variable height
          <br />
          First copy is hidden and second copy is visible
          <br/>
          Other cells of this row are not correctly aligned only on IE!!!
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
          This is cell [3,3]
          <br/>
          It is duplicated on source to make the trick to know its variable height
          <br />
          First copy is hidden and second copy is visible
          <br/>
          Other cells of this row are not correctly aligned only on IE!!!
         </div>
        </div>
       </div>
      </div>
      <div class="BloqueTipoCelda_RestanteAlto">
       <div class="BloqueTipoContenedor" style="border:1px solid lime;">
        <div class="BloqueTipoContenedor_VerticalmenteCentrado" style="border:1px dotted red;">
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Oculto">
          This&nbsp;other is<br />the cell&nbsp;[3,4]
         </div>
         <div class="BloqueTipoContenido_VerticalmenteCentrado_Visible" style="border:1px dotted blue;">
          This&nbsp;other is<br />the cell&nbsp;[3,4]
         </div>
        </div>
       </div>
      </div>
     </div>
     <div class="BloqueTipoFila_AltoAjustadoAlContenido">
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [4,1]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [4,2]
      </div>
      <div class="BloqueTipoCelda_RestanteAncho">
       [4,3]
      </div>
      <div class="BloqueTipoCelda_AjustadoAlContenido">
       [4,4]
      </div>
     </div>
    </div>
    </body>
    </html>
    
    <body>
        <div class="wrapper">
    
            <div class="header">
                header
            </div>
    
            <div class="content">
                content
            </div>
        </div>
    </body>
    
    .wrapper
    {
        [...]
    }
    
    .header
    {
        [...]
        z-index:9001;
        display:block;
        [...]
    }
    
    .content
    {
        [...]
        z-index:9000;
        [...]
    }
    
    //  changing the order of the sidebar so it goes after the content for mobile versions
    jQuery(window).resize(function(){
        if ( jQuery(window).width() < 480 )
        {
            jQuery('#main-content').insertBefore('#sidebar');
        }
        if ( jQuery(window).width() > 480 )
        {
            jQuery('#sidebar').insertBefore('#main-content');
        }
        jQuery(window).height(); // New height
        jQuery(window).width(); // New width
    });
    
    .move-wrap {
        display: table;
        table-layout: fixed; // prevent some responsive bugs
        width: 100%; // set a width if u like
        /* TODO: js-fallback IE7 if u like ms */
    }
    
    .move-down {
        display: table-footer-group;
    }
    
    .move-up {
        display: table-header-group;
    }
    
    <!--  HTML  -->
    
    <div class="wrapper">
    
        <div class="sm-hide">This content hides when at your layouts chosen breaking point.</div>
    
        <div>Content that stays in place</div>
    
        <div class="sm-show">This content is set to show at your layouts chosen breaking point.</div>
    
    </div>
    
    <!--  CSS  -->
    
        .sm-hide {display:block;}
        .sm-show {display:none;}
    
    @media (max-width:598px) {
        .sm-hide {display:none;}
        .sm-show {display:block;}
    }
    
    #main {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: start;
        -webkit-align-items: flex-start;
        align-items: flex-start;
    }
    
    #main > div#one{
        -webkit-box-ordinal-group: 2;
        -moz-box-ordinal-group: 2;
        -ms-flex-order: 2;
        -webkit-order: 2;
        order: 2;
        overflow:visible;
    }
    
    #main > div#two{
        -webkit-box-ordinal-group: 1;
        -moz-box-ordinal-group: 1;
        -ms-flex-order: 1;
        -webkit-order: 1;
        order: 1;
    }
    
    #wrapper {
      display: flex;
      flex-direction: column;
    }
    #firstDiv {
      order: 2;
    }
    
    <div id="wrapper">
      <div id="firstDiv">
        Content1
      </div>
      <div id="secondDiv">
        Content2
      </div>
    </div>
    
    <div style="height: 500px; width: 500px;">
    
    <div class="bottom" style="height: 250px; width: 500px; background: red; margin-top: 250px;"></div>
    
    <div class="top" style="height: 250px; width: 500px; background: blue; margin-top: -500px;"></div>
    
    <div>
      <div class="gridInverseMobile1">First</div>
      <div class="gridInverseMobile1">Second</div>
    </div>
    
    @media only screen and (max-width: 960px) {
      .gridInverseMobile1 {
        order: 2;
        -webkit-order: 2;
      }
      .gridInverseMobile2 {
        order: 1;
        -webkit-order: 1;
      }
    }
    
    Desktop: First | Second
    Mobile: Second | First