有这个标记:
var $table = $('.table');
if ($table.length) {
var $tr = $table.find('.tr');
var minWidth = 1;
$tr.each(function() {
var $td = $(this).find('.td:nth-of-type(1)');
$td.each(function() {
var letWidth = $(this).outerWidth();
if (letWidth > minWidth) minWidth = letWidth;
});
});
$table.find('.td:nth-of-type(1)').css({
'width': minWidth
});
}
* {
box-sizing: border-box;
}
.tr {
display: flex;
align-items: center;
justify-content: space-between;
}
.td {
border: 1px solid;
padding: 2px 20px;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
flex: 1;
}
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<div class="table">
<div class="tr">
<div class="td">1</div>
<div class="td">22222222</div>
<div class="td">33</div>
<div class="td">4</div>
<div class="td">5555</div>
<div class="td">6</div>
<div class="td">7777777777</div>
<div class="td">88</div>
<div class="td">9</div>
<div class="td">100000</div>
</div>
<div class="tr">
<div class="td">11111111</div>
<div class="td">22</div>
<div class="td">3333333</div>
<div class="td">444</div>
<div class="td">555</div>
<div class="td">6</div>
<div class="td">77</div>
<div class="td">88</div>
<div class="td">9</div>
<div class="td">1000</div>
</div>
<div class="tr">
<div class="td">11</div>
<div class="td">22222</div>
<div class="td">3333</div>
<div class="td">444444</div>
<div class="td">55</div>
<div class="td">6</div>
<div class="td">77777</div>
<div class="td">8</div>
<div class="td">9</div>
<div class="td">100000</div>
</div>
</div>
现在计算第一列的宽度和最大宽度。
问题:如何计算每行每个单元格(列)的最小宽度并设置(不考虑内容)?使每一行中的列与表中的一样。
!!!没有为每列设置样式的宽度!
那些。例如,在第一列中,至少有“1” - 宽度为 20px,这意味着整个列应该有那么多。在第二个中,例如“22”,宽度为 40px 表示整列是 40px。我希望这很清楚
没有 jQuery
抱歉有很多代码和最少的 jQuery ......我想你会找到一个合适的选择: