Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho tambem uma duvida e nao consegui encontrar no Google, provavelmente pq nao estou sabendo procurar. Nao precisam falar a resposta, mas se puderem me indicar links onde eu ache a mesma, tudo bem.
Queria saber qual a diferenca entre usar, no CSS, a sintaxe #id {atributos;} e a sintaxe tag#id {atributos;}. Pergunto pq foi uma das coisas que resolveram meu problema ontem, mas nao entendi o motivo.
Por ex, tenho a DIV #content, com um atributo width: 80%;. Qual a diferenca entre #content {width: 80%;} e div#content {width: 80%;}???
Obrigada!
--------
Update: Entao, descobri a diferenca SINTATICA entre os 2. #id {atributo;}, a engine procura o primeiro elemento que tiver essa id e usa ela pra renderizar o mesmo. tag#id {atributo;}, a engine procura a tag especifica que contem aquela id pra renderizar de acordo com a regra. Mas qual a diferenca PRATICA? Pois de qq forma, eu soh tinha uma camada utilizando cada id.
Vou dar uma diferença na prática que percebi uma vez, se você declara o seguinte:
tag#id {background-color:red;}#id {background-color:blue;}O fundo do elemento ficará vermelho.
Se fizer assim:
#id {background-color:red;}tag#id {background-color:blue;}Aí ficará azul :)
[]'s
Ahh tah, entendi. Entao eh puramente uma questao de hierarquia/prioridade, neh?Ok, brigadinha!
Eu particularmente utilizo tag#id... Ajuda bastante inclusive na hora de identificar no código o que é o que... Se informo, por exemplo, div#links, sei que a formatação está aplicada à uma div logo de cara, sem a necessidade de verificar no HTML a qual elemento a id links está atribuída... Se estivesse somente #links, a formatação poderia estar sendo aplicada à qualquer elemento, sendo necessário nesse caso verificar lá no código a qual elemento está atribuída essa id...
Mas é interessante saber que isso interfere, como nosso amigo #INSIDE# postou acima... Vejam que quando declaramos a tag antes do id, é como se ele recebesse o !important das propriedades, onde mesmo que você tenha uma declaração posterior, esta prevalecerá...
É bom saber esse lance sobre 'overwrite' de propriedades, muitas vezes pode causar problemas, e se agente entender fica melhor pra solucionar :)[]'s
teoricamente, quando você informa uma classe antes de qualquer outra x, você está definindo que somente a classe recebe a outra x..
complicado, certo?!
let's try again!
.campo p {padding:0;}
com o cód acima, digo que os parágrafos que estão contidos na classe .campo devem ter 0 padding, traduzindo em miúdos, todos os outros paragrafos terão o espaçamento padrão a não ser os que estão dentro do .campo.
.campo {padding:0;}p {padding 0;}
ao contrário desta informação que o .campo terá espaçamento interno 0 e o todos os parágrafos de todo o site, terão como padrão espaçamentos 0;
neh!? :P