Tomando um tombo com css
O que significa o termo cascata
Conteúdo
A cascata é sobre o que os programadores chamam precedência: Quem ganha quando há um conflito? Mais do que um estilo pode ser aplicado a uma determinada tag. Por exemplo, há sempre o estilo definido pelo navegador padrão, como preto como a cor do texto padrão. Se você especificar alguma outra cor em uma regra CSS, a cascata permite que sua regra de dominar, ter precedência sobre o estilo embutido.
Mas como é que o navegador decidir qual o estilo vence se as regras duas CSS conflito uns com os outros? os estilos conflitantes devem ser combinadas? E se os estilos são completamente incompatíveis - como um estilo especificando itálico e outro não-itálico?
especificidade visualizando
Diversos fatores determinam qual o estilo vence quando estilos colidem: herança, a árvore estrutural de um documento, eo especificidade (ou proximidade) De um estilo. Provavelmente a regra de colisão mais fácil de entender envolve Onde o estilo foi definido. Seus estilos CSS pode ser definido em quatro grandes locais:
- estilos padrão do navegador.
- Uma folha de estilo externa (um arquivo .css contendo definições de estilo que é referenciado a partir do documento HTML com um elemento Link).
- Uma folha de estilo incorporado (estilos definidos no documento HTML, dentro de seu tag. Este tipo de estilo também é chamado às vezes interno).
- Um estilo inline (um estilo definido como um atributo dentro de uma própria, e elemento HTML cujo efeito é limitado a esse elemento única). Por exemplo, este é um estilo interno típico:
Video: Justin Bieber leva um tombo durante um show no Canadá
Esta lista também ilustra a ordem em que os estilos conflitantes “ganhar” em qualquer conflito. Pense na ordem que o estilo mais próximo às vitórias elemento. Por exemplo, o estilo em linha - situado à direita dentro do elemento em si - é o mais próximo. Então, se mais do que um estilo é especificado para esse elemento, um estilo inline é o estilo usado. Este closenessof o estilo para o elemento que coincide é mais formalmente conhecido como especificidade.
A localização estilo com a segunda maior prioridade é a folha de estilo interna localizado no cabeçalho do documento HTML. A terceira maior prioridade vai para a folha de estilo externa - o arquivo separado. E a prioridade mais fraco, o que todos os outros trunfo, é o estilo padrão. Afinal, o padrão é o olhar que uma folha de estilo é suposto para alterar.
Aqui está um exemplo que ilustra como IE decide entre as cores azul e vermelho:
eu acho que eu sou azul.
Para testar este documento, digite o código HTML no bloco de notas e, em seguida, salve-o usando o EmTest.htm nome de arquivo. Carregar esta página Web, clicando duas vezes seu nome de arquivo no Windows Explorer. Você verá a sentença Eu acho que eu sou azul aparecem em azul. o
elemento aqui foi definida de duas maneiras conflitantes. No estilo incorporado, ele é definido como vermelho, mas essa definição é substituída pela definição em linha da cor azul.
Tente remover o estilo em linha para ver o que acontece. Altere a linha para
Eu acho que eu sou azul.
Teste novamente por salvar novamente o arquivo de bloco de notas que você acabou modificado.
Não há necessidade de clicar duas vezes novamente sobre este nome de arquivo no Windows Explorer para carregar a nova versão para IE. Depois de ter carregado um documento, é o endereço padrão no IE - neste caso, um endereço de um arquivo .htm no seu disco rígido. Se você modificar o arquivo que você acabou de fazer neste exemplo, tudo que você tem que fazer para ver a modificação é pressionar F5. Que “refresca” IE.
Algumas pessoas preferem usar exibição da fonte de built-in do navegador como uma maneira rápida de modificar e testar novamente o código CSS. Escolha Ver -gt; Fonte. Você pode fazer alterações no código, e depois salvá-lo. Netscape e Firefox destacar a sintaxe, que alguns programadores achar útil.
Depois de carregar a nova versão deste documento em IE, a linha Eu acho que eu sou azul agora é exibido em vermelho. O conflito entre as definições de estilo incorporado e em linha foi resolvido porque você excluiu o estilo embutido.
Video: China tomando um tombo no Museu do Louvre
Você pode substituir as regras normais de prioridade usando o comando! Importante especificar que este estilo deve ser usado, não importa o quê. Um! Importante declaração substitui todas as outras definições de estilo. Você adicionar o comando como este:
p {color: azul importante-}
Em CSS1, estilos declarou importante pelo autor da página Web override mesmo quaisquer estilos que o leitor tenha declarado importante. No entanto, em CSS2, importantes estilos do leitor prevalecer sobre importantes estilos autor, e de fato mais qualquer estilos autor, seja marcada importante ou não.
especificidade CSS compreensão
O termo especificidade Também é usado para descrever uma segunda forma que um navegador calcula qual o estilo ganha quando estilos conflito. Primeiro, o navegador procura por proximidade - mas que se a proximidade é idêntico? Isso é quando essa segunda técnica é aplicada.
Imagine, por exemplo, que duas folhas de estilo diferentes são referenciados pelo documento mesmo HTML (sim, você pode anexar mais do que em arquivo CSS ao código HTML de uma determinada página da Web). Mas, em uma dessas folhas, H1 é estilo negrito, e em outra folha é itálico com estilo. Qual é o pobre navegador para fazer neste caso? Que ganha especificação?
Ao contrário dos exemplos de colisão estilo anteriormente neste capítulo, onde proximidade poderia ser usado para declarar um vencedor, aqui você tem ambos os estilos localizados na mesmo grau de proximidade (a mesma especificidade). Ambas estas definições de estilo estão localizados em folhas de estilo externas.
Neste caso, o navegador faz um pouco de matemática bizarro para tomar a decisão sobre o estilo a usar. Como antes, o mais estilo “específica” ganha. Mas o que conta como especificidade neste concurso? Não é o mesmo que o fator “proximidade”. O navegador tem que fazer um pouco de cálculo estranho, mas você realmente não pode chamar thismath. É apenas um tipo estranho de acumulação de valores, onde alguns estilos têm ordens de magnitude mais peso do que outros. Não se preocupe sua linda cabeça sobre essas coisas, se você não encontrar cálculos peculiares interessante.
O que o navegador fazer para calcular a especificidade dos dois estilos competindo se seu fator de “proximidade” é idêntico? Três coisas:
- Olha para um estilo e conta o número de ID atributos que tem, se houver
- Conta o número de atributos de classe, se for o caso
- Conta o número de seletores (você pode agrupar seletores em um estilo parecido com isto: H1, H2, H3)
O navegador não acontecer, então adicionar esses números juntos-lo simplesmente concatena o dígitos. Talvez isso seja algum tipo de aritmética usada por estrangeiros na deles galáxia, mas eu tenho certeza que nunca ouvi falar disso. Imagine se você tem o número 130 pelo seguinte processo de concatenação:
1 maçã, 3 laranjas, bananas 0 = 130
Este processo dá maçãs dez vezes o “peso” de laranjas, e 100 vezes o peso de bananas. Aqui estão alguns exemplos que mostram como funciona quando usado para determinar a especificidade de CSS. Basta fingir que você está de volta na aula de matemática da terceira série.
Atenção, classe! Qual é o número especificidade para este selector?
ul h1 li.red {color: amarelo-}
Qualquer pessoa obter a resposta 13?
A resposta correta é 13. Você tem
Video: Ivete Sangalo tomando tombo no surf de piscina
0 identificações, um atributo classe (vermelho), e 3 ul selectores (h1) de li
Que “acrescenta-se,” por assim dizer, para 013. Agora, kiddies, que pode explicar como você começa uma especificidade de 1 para a seguinte definição selector?
H1 {color: azul-}
Após a especificidade tenha sido determinada, o número mais elevado ganha. Suponha que dois estilos estão em conflito porque ambos definir a cor de H1, mas defini-lo de forma diferente. Mas porque uma definição tem um valor especificidade de 13 eo outro tem apenas 1, o título H1 é amarela, não azul.
E se duas regras acabam por ter a mesma especificidade? Nesse caso (assumindo que ambos estão em uma folha de estilo, ou de outra forma são os mesmos “proximidade” à tag HTML), a regra que foi especificado últimas vitórias.