Javascript 垂直排序div

Javascript 垂直排序div,javascript,jquery,css,Javascript,Jquery,Css,我目前正在研究一种设计,它需要多个元素垂直排序,但同时保持其响应能力 示例: 宽幅布局 更高的布局 我使用了浮动、内联块显示,甚至还粗略地将其与jQuery组合在一起,但所有元素都是水平排序的 环顾四周,我似乎找不到任何其他具有相同问题或解决方案的人,因此任何帮助都将是非常好的。您必须稍微修改一下html结构。为了做到这一点,您必须将子容器添加到主容器中,以“分组”您的内容。大概是这样的: // first example <div id="main"> <div

我目前正在研究一种设计,它需要多个元素垂直排序,但同时保持其响应能力


示例:

宽幅布局

更高的布局


我使用了浮动、内联块显示,甚至还粗略地将其与jQuery组合在一起,但所有元素都是水平排序的


环顾四周,我似乎找不到任何其他具有相同问题或解决方案的人,因此任何帮助都将是非常好的。

您必须稍微修改一下html结构。为了做到这一点,您必须将子容器添加到主容器中,以“分组”您的内容。大概是这样的:

// first example
<div id="main">
  <div class="group2">
    <span>1</span>
    <span>2</span>
  </div>
  ...
</div>

// second example
<div id="main">
  <div class="group3">
    <span>1</span>
    <span>2</span>
    <span>3</span>
  </div>
  ...
</div>
//第一个示例
1.
2.
...
//第二个例子
1.
2.
3.
...

使用css限制组容器的宽度,您可能会得到想要的效果

您必须稍微修改一下html结构。为了做到这一点,您必须将子容器添加到主容器中,以“分组”您的内容。大概是这样的:

// first example
<div id="main">
  <div class="group2">
    <span>1</span>
    <span>2</span>
  </div>
  ...
</div>

// second example
<div id="main">
  <div class="group3">
    <span>1</span>
    <span>2</span>
    <span>3</span>
  </div>
  ...
</div>
//第一个示例
1.
2.
...
//第二个例子
1.
2.
3.
...

使用css限制组容器的宽度,您可能会得到想要的效果

如果您不太关心跨浏览器支持(只是想在兼容/最新的浏览器中使其更美观),或者乐于使用某种JavaScript垫片来支持其他浏览器,您可以使用
column width
定义列的宽度,然后允许浏览器回流这些列以容纳内容:

.gridbox {
    display: block;
    -webkit-column-width: 4em;
    -moz-column-width: 4em;
    -o-column-width: 4em;
    -ms-column-width: 4em;
    column-width: 4em;
    /* aesthetics, adjust to taste,
       only the above is important */
    margin: 1em auto;
    padding: 1em;
    border: 1px solid #f90;
    border-radius: 1em;
}

显然,为了演示的目的,我使用了
li
ul
元素,但是如果您愿意,这可以直接转移到
div
元素。只需按照与上述
ul
元素相同的方式设置父元素/容器的样式,并根据需要设置子元素的样式

参考资料:


如果您不太关心跨浏览器支持(只是想在兼容/最新的浏览器中使其更美观),或者很乐意使用某种JavaScript垫片来支持其他浏览器,您可以使用
column width
定义列的宽度,然后允许浏览器回流这些列以容纳内容:

.gridbox {
    display: block;
    -webkit-column-width: 4em;
    -moz-column-width: 4em;
    -o-column-width: 4em;
    -ms-column-width: 4em;
    column-width: 4em;
    /* aesthetics, adjust to taste,
       only the above is important */
    margin: 1em auto;
    padding: 1em;
    border: 1px solid #f90;
    border-radius: 1em;
}

显然,为了演示的目的,我使用了
li
ul
元素,但是如果您愿意,这可以直接转移到
div
元素。只需按照与上述
ul
元素相同的方式设置父元素/容器的样式,并根据需要设置子元素的样式

参考资料:


这些示例看起来像是垂直“排序”的。有什么问题吗?例子是我希望它看起来如何。结果总是水平的。你应该真正展示你尝试过的东西(即使它不起作用),你也应该告诉用户你到底遇到了什么问题。另外,我们无法帮助您向我们展示您尝试过的代码,最好是在JSFIDLE或CodePen上。我尝试使用jQuery为它们创建一个足够大的区域,但垂直排序让我感到困惑:这些示例看起来像是垂直“排序”的。有什么问题吗?例子是我希望它看起来如何。结果总是水平的。你应该真正展示你尝试过的东西(即使它不起作用),你也应该告诉用户你到底遇到了什么问题。另外,我无法帮助您向我们展示您尝试过的代码,最好是在JSFIDLE或CODEPEN上。我尝试使用jQuery为它们创建一个足够大的区域,但垂直排序让我感到困惑:这是一个很好的建议,但我希望有一个随页面尺寸变化的响应性布局。我想通过jQuery on resize可以将内容移动到不同的组中。这是一个很好的建议,但我希望有一个随页面尺寸变化的响应性布局。我想可以使用jQuery on resize将内容移动到不同的组中。非常感谢!我以前没有使用过
列宽
。在这个项目中,旧浏览器不是我主要关心的问题。我的分析显示,当前流量中约有1%不符合要求。非常感谢!我以前没有使用过
列宽
。在这个项目中,旧浏览器不是我主要关心的问题。我的分析显示,当前流量中约有1%不符合要求。