Eu tenho o seguinte CSS que está sendo aplicado a tabelas:
.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;
}
Porque eu não quero que o padding seja aplicado para formar elementos em minhas tabelas, eu também tenho esse CSS:
.myTable td input
{
padding:0px 0px 0px 0px !important;
}
No entanto, isso não funciona. O preenchimento teimosamente permanece, a menos que eu coloque um preenchimento maior. Por exemplo, se eu fizer isso:
.myTable td input
{
padding:50px 50px 50px 50px !important;
}
Em seguida, os elementos do formulário são substituídos corretamente pelo preenchimento mais recente e gigantesco. O que estou perdendo aqui? Como faço para substituir / cancelar o preenchimento em elementos filho usando CSS?
Editar: Eu descobri depois de cavar através doHTML renderizado. Os elementos de entrada estavam bem, a causa era que o ASP.NET renderiza cada caixa de seleção em uma caixa de seleção em seu próprio TD, que estava recebendo o preenchimento da folha de estilo e fazendo parecer que as entradas estavam sendo preenchidas. Obrigado a todos
Respostas:
2 para resposta № 1Isso está funcionando exatamente como você digitou. Você aplicou padding ao TD. Isso aplica padding a cada TD, independentemente do que está nele.
Seu segundo estilo para a entrada seria além de o preenchimento definido no TD. Portanto, não está escrevendo nada.
Você poderia tentar aplicar margem negativa ao INPUT para contrabalançar o preenchimento no TD pai. Não tenho certeza se todos os navegadores vão gostar disso ou não.
Como alternativa, forneça os TDs que possuem a entrada de sua própria classe:
<td class="withInput">
Então você pode usar este seletor no seu css:
td.withInput {padding: 0px;}
0 para resposta № 2
Nada está errado com o seu código. Você pode até mesmo remover o CSS para o INPUT. INPUT não herdará valores de preenchimento do TD pai. Mostre-nos a página para que possamos ajudá-lo.
O único problema que você terá é com o IE7 e mais antigos. Nesse caso, use MARGEM NEGATIVA para seus elementos INPUT.
Hacks para IE7 e IE6
input{
*margin: -2px;
_margin: -2px;
}