我有这样的DOM结构:
div#holder > table > tbody > tr > td
我已将td
指定为15px
的固定宽度。但是当我调整#holder
的宽度大小时,td
的宽度改变了。
我想知道:
td
的宽度?谢谢
setInterval(function(){
var w = 300*Math.random();
$('#holder').css('width', w + 'px');
},500)
td {
width:15px;
height:50px;
background:#f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="holder">
<table>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
答案 0 :(得分:2)
setInterval(function(){
var w = 300*Math.random();
$('#holder').css('width', w + 'px');
},500)
发生这种情况是因为您编写了Javascript。 在这种情况下,td会适应父表的宽度(#holder),并且每隔0.5秒就会更改15px的静态宽度。 如果您对td使用max-width:15px而不是width:15px。那么根据您的代码,只有表格宽度会发生变化,而您的td将保持15px固定,问题将得到解决。
td{
max-width:15px;
height:50px;
background:#f00;
}
#holder{
border:2px solid black;
}
然后,td不会相对于其父对象增大或缩小。 如下所示。
答案 1 :(得分:2)
您可以使用min-width
和max-width
设置元素的精确宽度。您可以在这里查看结果。
setInterval(function(){
var w = 300*Math.random();
$('#holder').css('width', w + 'px');
},500)
td {
min-width: 15px;
max-width: 15px;
width: 15px;
height: 50px;
background: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="holder">
<table>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>