Internet explorer css:跨浏览器、回流、自上而下、多列列表
看 另见 我想要一个多列列表,其中:Internet explorer css:跨浏览器、回流、自上而下、多列列表,internet-explorer,list,css,Internet Explorer,List,Css,看 另见 我想要一个多列列表,其中: 不使用JS 窗口大小上的回流 使尽可能多的列适合封闭元素 因此,不需要将列表批处理为手动列组 适用于所有浏览器 适用于任意数量的未知宽度(但单行高度)元素 使每列适合其(动态)内容的宽度 不会产生滚动条或其他溢出问题 尽可能从上到下排序 我的代码当前为: ul.multi, ol.multi { width: 100%; margin: 0; padding: 0; list-style: none; -moz-column-width
- 不使用JS
- 窗口大小上的回流
- 使尽可能多的列适合封闭元素
- 因此,不需要将列表批处理为手动列组
- 适用于所有浏览器
- 适用于任意数量的未知宽度(但单行高度)元素
- 使每列适合其(动态)内容的宽度
- 不会产生滚动条或其他溢出问题
- 尽可能从上到下排序
ul.multi, ol.multi {
width: 100%;
margin: 0;
padding: 0;
list-style: none;
-moz-column-width: 12em;
-webkit-column-width: 12em;
column-width: 12em;
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
column-gap: 1em;
}
ul.multi li, ol.multi li {
<!--[if IE]>
float: left;
<![endif]-->
width: 20em;
margin: 0;
padding: 0;
}
ul.multi,ol.multi{
宽度:100%;
保证金:0;
填充:0;
列表样式:无;
-moz列宽:12em;
-webkit列宽:12em;
列宽:12em;
-莫兹柱间距:1米;
-webkit柱间距:1米;
柱间距:1米;
}
ul.multi-li,ol.multi-li{
宽度:20em;
保证金:0;
填充:0;
}
虽然这可以正常工作,但也存在一些问题:
- 我得猜一下内容的宽度
- 它在IE中是从右向左的(尽管这是一种优雅的降级模式)
- 它在非IE、非Moz/Webkit/CSS3浏览器中根本不起作用
如何改进这一点?我将避免在任何结构化网站设计中使用CSS3。我最好的猜测是尝试下面的方法,基本上就是删除CSS3的东西。如果我理解正确,这里的大问题是不知道你的物品的宽度。对于一个固定的宽度,像这样的东西应该是您所需要的,但是对于您所描述的内容,您似乎需要我们的老朋友Javascript的一些帮助:)
正文,html
{
保证金:0;
填充:0;
}
ul.multi
{
宽度:100%;
列表样式:无;
保证金:0;
填充:0;
}
ul.multi-li
{
浮动:左;
宽度:10em;
线高:1;
保证金:0;
填充:0;
}
- a
- b
- c
- d
- e
- f
- g
- h
我会避免在任何结构化网站设计中使用CSS3。我最好的猜测是尝试下面的方法,基本上就是删除CSS3的东西。如果我理解正确,这里的大问题是不知道你的物品的宽度。对于一个固定的宽度,像这样的东西应该是您所需要的,但是对于您所描述的内容,您似乎需要我们的老朋友Javascript的一些帮助:)
正文,html
{
保证金:0;
填充:0;
}
ul.multi
{
宽度:100%;
列表样式:无;
保证金:0;
填充:0;
}
ul.multi-li
{
浮动:左;
宽度:10em;
线高:1;
保证金:0;
填充:0;
}
- a
- b
- c
- d
- e
- f
- g
- h
不幸的是,如果没有一些js或后端魔法/黑客,我认为这在IE中是不可能的。下面是一个有用的演示,提供了一点黑客技巧:
但这显然不是完美的
或使用JS:
同样,您最好的选择是在服务器上做一些计算,然后正确地进行计算,或者,如果您愿意放弃IE,则使用列宽或列计数,但这取决于需要支持的内容。不幸的是,我们仍然停留在80年代p不幸的是,如果没有一些js或后端魔法/黑客,我认为这在IE中是不可能的。下面是一个有用的演示,提供了一点黑客技巧: 但这显然不是完美的 或使用JS:
同样,您最好的选择是在服务器上做一些计算,然后正确地进行计算,或者,如果您愿意放弃IE,则使用列宽或列计数,但这取决于需要支持的内容。不幸的是,我们仍然停留在80年代p这几乎和我以前的情况一模一样。但它在从上到下的过程中失败了-跳到底。。。是的,你肯定需要javascript来排序你的数据。这当然是可行的,但没有javascript是不行的。这几乎就是我以前所拥有的。但它在从上到下的过程中失败了-跳到底。。。是的,你肯定需要javascript来排序你的数据。这当然是可行的,但没有javascript不行。这段代码是在服务器上生成的还是静态HTML页面?如果是动态页面,您可以在服务器上进行HTML格式化。此代码是在服务器上生成的还是静态HTML页面?如果是动态页面,您可以在服务器上进行HTML格式化。
<style>
body, html
{
margin: 0;
padding: 0;
}
ul.multi
{
width: 100%;
list-style: none;
margin: 0;
padding: 0;
}
ul.multi li
{
float: left;
width:10em;
line-height: 1;
margin: 0;
padding: 0;
}
</style>
<ul class="multi">
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
<li>h</li>
</ul>