CSS Help - Como pode um DIV ignoram css previamente definido na página?

votos
1

Eu estou usando AjaxControlToolkit CalendarExtender. Alguns regra anterior na minha folha de estilo está afetando div de dentro do calendário.

div#paymentRegion div
{
    float:left;
    width:49%;
}

Há DIVs dentro do calendário que estão sendo forçados a 49%. Como posso ter o calendário ignorar as configurações anteriores e usar os estilos que vêm com o calendário? Isso é possível? Tenho medo de alterar a regra atual, mas eu acho que provavelmente deve ser, no entanto muitas outras divs sobre este controle contar com ele. O que significa o símbolo> fazer para uma regra css. Por exemplo

div#paymentRegion > div
{
    float:left;
    width:49%;
}

Talvez isso vai ajudar? Estou aberto para quaisquer sugestões. Obrigado, ~ ck em San Diego

Publicado 26/08/2009 em 22:40
fonte usuário
Em outras línguas...                            


3 respostas

votos
2

Teoricamente , o >símbolo iria selecionar apenas divs que são filhos imediatos do #paymentRegion. Um divbaixo mais longe aninhada não seria afetado. No entanto , nem todos os navegadores interpretar isso corretamente, por isso não é algo que você pode utilizar com segurança.

Uma solução mais direta é para embrulhar o seu calendário em um <div id="calendar">e, em seguida, escrever uma regra primordial:

div#paymentRegion div {
    float: left;
    width: 49%;
}

div#calendar div {
    float: none;
    width: auto;
}

Agora, apesar da maioria dos div s dentro #paymentRegion vai ser lançada, os divs dentro #calendar não será!

Respondeu 26/08/2009 em 22:46
fonte usuário

votos
1

VoteyDisciple é certo, já que a regra de sua solução proposta tem uma especificidade maior do que o atual.

Mais informações sobre o cálculo regras especificidade .

Respondeu 26/08/2009 em 22:58
fonte usuário

votos
0

É difícil saber o que sugerir, sem qualquer HTML. Você pode nos contar a estrutura básica? Por exemplo, é a divde que é alvo na primeira regra de um filho direto #paymentRegion?

Se ele é o mais alto nível div(não necessariamente um filho direto), e todos os outros divs estão abaixo dessa, você pode tentar este:

div#paymentRegion div {
    float: left;
    width: 49%;
}

div#paymentRegion div div {
    float: none;
    width: auto;
}

No entanto, a melhor aposta seria a de definir uma classe / ID em que mysery div, se você pode mudar o seu HTML.

div#paymentRegion div#uniqueID {
    float: left;
    width: 49%;
}
Respondeu 26/08/2009 em 23:13
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more