在HTML中垂直包装

我正在寻找一种垂直包装的好方法。 我的目标是将复选框列表放入div中。 我有复选框按字母顺序排序,我希望列表从顶部流到底部,然后在新列到达底部时重新开始。 现在,我可以通过在服务器端将列表分成预定义大小的块,然后将其提供到我的html模板中。 但是,当列表变得很长以至于你不得不滚动时,事情会变得很混乱。 我希望强制它只能水平滚动。 这并不容易,因为我将每个块都保存在一个浮动div中,所以white-space:nowrap似乎不会削减它。 目前,我使用javascript计算列表块的数量并扩展中间容器的宽度(在作为视口的div的内部,但包含包含数据的div)。 我想要的东西大概是这样的:

 __________________________
| []..... []..... [].....  |
| []..... []..... [].....  |
| []..... [].....          |
| []..... [].....          |
|__________________________|
|<|_____________|___||___|>|

所以我想我有两个问题:

  • 有没有一种很好的方式来垂直包装清单?
  • 当数据太大而无法使用视口时,是否有强制水平滚动的好方法?

  • 我会使用CSS3列。 但是,到目前为止,只有WebKit(Safari,Chrome,...)和Gecko(Firefox,...)已经实现了它,并且您必须添加它们各自的供应商前缀( -moz-column-width:...; -webkit-column-width:...; )使其工作。

    如果IE必须获得列,浮动div可能是最好的方式。


    我会因为说这个而陷入低谷,但是......用桌子

    那么这不是最漂亮的方式,但它可以解决你的问题,我猜


    我使用这块Xsl来生成一个固定行数的表格: -

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="UTF-8" />
    <xsl:variable name="rowCount" select="6" />
    <xsl:template match="/*">
        <table rules="all">
            <xsl:for-each select="item[position() &lt;= $rowCount]">
                <tr>
                    <xsl:for-each select=". | following-sibling::item[position() mod $rowCount = 0]">
                        <td><xsl:value-of select="." /></td>
                    </xsl:for-each>
                </tr>               
            </xsl:for-each>
        </table>
    </xsl:template>
    
    </xsl:stylesheet>
    

    您可以用参数替换rowCount变量。 所有你需要计算的视图端口的垂直客户端高度需要多少行(记住你松动了一些水平滚动条出现时,我会让它始终可见)。

    这可以适应一组浮动div,但我不打扰。 您的视口只需要具有固定高度/宽度和overflow-x:scroll的div; 溢出-Y:隐藏。

    链接地址: http://www.djcxy.com/p/42239.html

    上一篇: Vertical Wrapping in HTML

    下一篇: Run new process as different user in vb.net