2011-08-15 82 views
-1

我已经得到了被应用到表下面的CSS:无法覆盖CSS填充

.myTable 
{ 
    width: 99%; 
    border-collapse:collapse; 
    word-wrap:break-word; 
    border:1px solid #28282C; 
    background-color: #F7F6F3; 
} 

.myTable td 
{  
    padding: 16px 4px 0px 4px; 
    text-align:left; 
    vertical-align:top;  
} 

因为我不想应用于形成在我的表元素的填充,我也有这个CSS:

.myTable td input 
{  
    padding:0px 0px 0px 0px !important;  
} 

但是,这是行不通的。填充顽固地保持,除非我放入更大的填充物。例如,如果我这样做:

.myTable td input 
{  
    padding:50px 50px 50px 50px !important;  
} 

然后,窗体元素被更新的,巨大的填充正确覆盖。我在这里错过了什么?如何覆盖/取消使用CSS的子元素的填充?

编辑:在挖掘呈现的HTML之后,我想出了它。输入元素很好,原因是ASP.NET在自己的TD中的checkboxlist中呈现每个复选框,它从样式表中接收填充并使其看起来像输入被填充。谢谢大家

+0

不能看到效果:http://jsfiddle.net/snMtK/。 –

+0

@eskimoblood:记住要在jsFiddle中去除标准化的CSS_来移除它们的CSS重置规则。 ;-) – stealthyninja

+0

当然,但毕竟所描述的问题不应该发生。所以在我看来,这个问题与粘贴的代码无关。 –

回答

2

它的工作原理与您输入的完全相同。你已经向TD申请了填充。无论内容是什么,这都适用于每个TD。

您输入的第二个样式是,另外还有TD上填充的。所以它不会覆盖任何东西。

您可以尝试将负余量应用于INPUT以抵消父TD中的填充。不确定是否所有的浏览器都喜欢这个。

或者,给TD的有输入自己的阶级:

<td class="withInput"> 

然后你就可以在你的CSS使用这个选择:

td.withInput {padding: 0px;} 
+0

他不要求输入字段中的填充不在td中吗? –

+0

heh ...哎呀!这应该是负面的MARGIN。我会更新答案。 –

+0

@eskimoblood,我对这个问题的解释是他不希望在表中的INPUT字段周围有空格。由于空间是由TD本身的填充而创建的,所以这是必须修改的。 –

0

没有什么是你的代码错误。你甚至可以删除输入的CSS。 INPUT不会继承父TD的填充值。 向我们显示该页面,所以我们可以帮助您。

您将遇到的唯一问题是IE7和更旧版本。在这种情况下,为您的INPUT元素使用NEGATIVE MARGIN。

黑客对IE7和IE6

input{ 
*margin: -2px; 
_margin: -2px; 
}