1

我们可以通过使 display : inline 使元素换行到下一行。例如,如下图所示

每个元素都是一个最小宽度为 20% 的跨度

我们如何使内容与保持最小宽度一致。我们还需要其他元素从前一个元素结束的地方开始。 最小宽度需要为 20%

使用的CSS是:

 span.block {
                display:inline;
                width:auto;
                min-width:20%;
                border:1px solid #cfcfcf;
                line-height:25px;
                margin:3px;
                background-color:#3f3f3f;
                color:#f1f1f1;
                border-radius:3px;
                padding-right:20px;
}

这是提琴手http://jsfiddle.net/yCvhB/57/

4

1 回答 1

0

我能想到的唯一解决方案是添加尽可能多的空格以使元素足够长。

var minWidth = 300;

var blocks = document.getElementsByClassName( 'block' );
var numOfBlocks = blocks.length;

for( var i = 0; i < numOfBlocks; ++i ) {
    var block = blocks[ i ];

    // make text not wrap temporarily so that the width is
    // calculated correctly
    block.style.whiteSpace = 'nowrap';

    while( block.offsetWidth < minWidth ) {
        block.innerHTML += ' &nbsp;';
    }

    // reset whitespace style    
    block.style.whiteSpace = 'normal';
}

演示:http: //jsfiddle.net/yCvhB/61/

于 2013-05-10T10:14:33.350 回答