希望你能帮忙!以下是参数:
HTML
<ol>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ol>
BOX MODEL
[-------------]
[-[1]-[4]-[7]-]
[-[2]-[5]-[8]-]
[-[3]-[6]-[9]-]
[-------------]
高度缩小后的BOX模型
[---------------------]
[-[1]-[3]-[5]-[7]-[9]-]
[-[2]-[4]-[6]-[8]-----]
[---------------------]
CSS / CSS3盒子型号可以实现吗?
谢谢!
答案 0 :(得分:2)
multi-column
执行不一致,虽然这听起来像是最简单,最标准的实现方式:
我应该注意,因为你可以控制容器的尺寸,所以你的情况中的实现之间的任何奇怪差异都可以大大减轻,所以你可以舍入到最接近的x像素或者其他什么,确保没有跳跃和重新渲染。
答案 1 :(得分:0)
我会说使用display: inline-block
但是如果父级设置了宽度,它们只会折叠到新行。你的参数说JS可以设置父级的宽度,所以如果你愿意计算盒子需要多宽才能正确折叠线条,那么你可以使用这种方法。
基本上,每个孩子都会设置为内嵌块的设置宽度/高度,然后你可以为每个孩子添加一个边距,使它们彼此分开,然后向父母添加一个边距 - 所以左边也有适当的间距。然后根据父级的高度,计算父级可以拥有的子行数,以计算父级需要多大的宽度才能使子级正确折叠(请记住,不应包括边距左侧)宽度中的父级)。它都是基本的CSS,不需要CSS3。
答案 2 :(得分:0)
我不相信可以在不使用CSS3列的情况下垂直填充然后水平填充;但是,我不知道如何从列中获得收缩到适合的行为。
这可以在WebKit中完成所需的一切(它在Gecko的底部溢出),除了缩小到适合并且它可能在li
的中间断开。
<!DOCTYPE html>
<html><head>
<title>untitled</title>
<style type="text/css" media="screen">
html, body { height: 100%; }
ol {
margin: 0;
padding: 0;
border: 1px solid blue;
height: 50%;
-webkit-column-width: 10em;
-webkit-column-fill: auto;
}
li {
-webkit-break-inside: avoid;
position: relative;
margin: 0;
padding: 0;
width: 10em;
height: 7em;
display: block;
border: 1px solid red;
}
</style>
</head><body>
<ol>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ol>
</body></html>