代码之家  ›  专栏  ›  技术社区  ›  Behrang Saeedzadeh

如何使5px填充的输入元素填充整个<td>?

  •  3
  • Behrang Saeedzadeh  · 技术社区  · 14 年前

    我有一个文本输入在 <td> 有填充物的 5px ;将其宽度设置为 100% 它来自于 <TD & GT; 对于 10px . 有办法让它填满整个 <TD & GT; (即在实践中,其宽度应变为 100% - 10px )不使用javascript?

    提前谢谢

    4 回复  |  直到 12 年前
        1
  •  6
  •   Behrang Saeedzadeh    12 年前

    我早在2010年就提出过这个问题,据我所知当时还没有一个合理的解决方案。

    但是,由于CSS3,现在有两种解决方案可供选择:

    使用 box-sizing

    box-sizing: border-box;
    width: 100%;
    

    使用 calc

    width: calc(100% - 10px);
    

    一些浏览器可能需要供应商预处理(例如 width: -moz-calc(100% - 10px); )

        2
  •  0
  •   Puru    14 年前

    检查为列指定的宽度。可能是因为这个问题。

        3
  •  0
  •   John Sheehan    14 年前

    如果你把它改成 display: block 它将展开以填充父级的宽度。

        4
  •  0
  •   ManiacZX    14 年前

    http://www.w3schools.com/css/css_boxmodel.asp

    这听起来似乎不太管用,因为CSS的宽度仅限于内容,而且填充也是附加的。

    因此,如果您将内容指定为100%,填充为5px,那么总计为100%+5px。

    在这种情况下,您似乎真的不需要填充,因为它是td中唯一的元素,所以我可能会考虑重写元素上继承的填充值,至少是左右两边,例如:

    <input type="text" style="width:100%; padding-left:0px; padding-right:0px;"/>
    

    另一种方法是使用较小的百分比,如95%或90%。