html table 设置td的宽度不生效

设置了每个td的宽度总宽度也相等为什么显示出来就不一样呢???<tableclass="mainTable"cellpadding="0"cellspacing="0">... 设置了每个td的宽度 总宽度也相等 为什么显示出来就不一样呢???

<table class="mainTable" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" class="title" >客户基本信息</td>
</tr>
<tr>
<td><input type="text"/></td>
<td>客户ID</td>
<td>客户注册码</td>
</tr>
</table>

css:

.mainTable tr td{
border: 1px solid #000;
text-align: center;
border-top-width: 0;
border-left-width: 0;
}
.mainTable tr:nth-child(1) td:nth-child(1){
width: 60px;
}
.mainTable tr:nth-child(2) td:nth-child(1){
width: 10px;
}
.mainTable tr:nth-child(2) td:nth-child(2){
width: 20px;
}
.mainTable tr:nth-child(2) td:nth-child(3){
width: 30px;
}

为什么显示出来不是10px 20px和30px呢????是不是和input有关系
除了设置cellpadding和cellspacing 还需要其他不为0的默认值吗???
展开
 我来答
言言言小鱼

推荐于2016-03-10 · 小小的鱼儿小小的我,我就是言小鱼。
言言言小鱼
采纳数:1335 获赞数:7608

向TA提问 私信TA
展开全部

  input有默认宽度的。

  你写的nth-child貌似不对吧。

.mainTable tr td{
    border: 1px solid #000;
    text-align: center;
    border-top-width: 0;
    border-left-width: 0;
}
.mainTable tr:nth-of-type(1) td:nth-of-type(1){
    width: 60px;
}
.mainTable tr:nth-of-type(2) td:nth-of-type(1){
    width: 10px;
overflow:hidden;
}
.mainTable tr:nth-of-type(2) td:nth-of-type(2){
    width: 20px;
}
.mainTable tr:nth-of-type(2) td:nth-of-type(3){
    width: 30px;
}
追问

css3里nth-child是没有问题的

重新设置了Input的宽度 现在Input的宽度是正常的

但发现上下左侧都有margin 我设置了margin-left 那上下的margin是怎么来的呢?

而且input的所在的蓝色部分一直往后延伸 是什么呢??

追答
  绿色的是padding,蓝色的是td的宽度。
  上下的margin分别为margin-top和margin-bottom。
  之所以有padding应该是你其他单元格的高度引起的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式