私のプロジェクトでは、このようなものが必要でした。私は古いブラウザをサポートする必要があったので、HTML5を使用せず、処理できる行の総幅/総数を確認するためのjavascriptが必要でした:
http://pastebin.com/raw.php?i=umFWx3mK(HTMLファイル内にコピーしてブラウザで開くだけです) CSS2.1のよう
$(window).resize(distribute)
$(document).ready(function(){
allboxes = $(".box");
$('#container').delegate(".box","mouseenter",function(){
$(this).addClass('current')
}).delegate(".box","mouseleave",function(){
$(this).removeClass('current')
});
table = $("#table");
distribute();
})
var lastfit, allboxes, table
function distribute(){
var fitAmount = Math.floor($("#container").width()/180);
if(lastfit!=fitAmount){
if(fitAmount<1){fitAmount=1}
lastfit = fitAmount;
var clones = allboxes.clone(),
emptycells = "", emptyrows = "",
trs = table.find("tr");
for(var i=0;i<fitAmount;i++){
emptycells += "<td> </td>";
}
trs.html(emptycells)
var count = trs.length*fitAmount
if(count < allboxes.length){
var newRows = Math.ceil((allboxes.length - count)/fitAmount);
for(var j=0;j<newRows;j++){
emptyrows += "<tr>"+emptycells+"</tr>";
}
}
table.append(emptyrows)
var tds = table.find("td"), trs = table.find("tr");
clones.each(function(index){
tds.eq(index).html("").append($(this))
})
allboxes = $(".box");
trs.filter(function(){ return !/box/gi.test(this.innerHTML) }).remove()
}
}
function boxmouseover(box){
$(box).css("background","red")
}
function boxmouseout(box){
$(box).css("background","#CCC")
}
あなたが最初の下で流動する第二/第三/第四 'td'要素の意味?それが表示目的のみの場合(表形式のデータではない場合)は、浮動小数点の 'div'を使うほうが良いでしょう。テーブルの 'td'要素の[' display:inline-block'] –
が動作する可能性がありますが、本当に 'table td'を変更していると思われますsを通常の 'div'のような要素に表示します。 –
私は信じられないほど*壊れた行のテーブルで混乱しています。 – You