Newsgroup: it.comp.www.html
Titolo: ID e CLASS

Scusatemi forse sarà una domanda fatta milioni di volte ma io non ho capito 
una cosa.... Come mai nei CSS esistono le ID? non bastava usare solo le 
class? 
--
Newsgroup robomoderato - gli articoli vengono approvati automaticamente


Ciao!
-- 
d.


 --
Probabilmente sì.... il problema è che sai essendo alle prime armi ti 
vengono un sacco di dubbi, quindi è chiaro che ogni volta che uno inizia a 
studiare i CSS si pone questa domanda.
Comunque resta il fatto che io non ho ancora capito la differenza... :-( 


 Comunque resta il fatto che io non ho ancora capito la differenza... :-( 
ID e` un nome univoco. Solo un elemento in quella pagina puo` avere quel
nome, con tutto quello che ne consegue.
Class e` appunto una classe, che puo` comprendere anche elementi diversi.
Puoi avere una class applicata sia a un H1 che a una table che a un div, e
che magari si limita a colorare di verde lo sfondo.
Giusto per farti un esempio, il tuo "id" puo` essere il tuo numero di carta
d'identita` o il tuo codice fiscale. Il diploma che hai, il vestito che
indossi, la tua religione sono tuoi "class".
Bye.


 Comunque resta il fatto che io non ho ancora capito la differenza... :-( 
Ok, vediamo di ricapitolare.
In HTML un id identifica in maniera *univoca* un elemento nel
documento. Questo vuol dire che via JS ad esempio puoi fare
document.getElementById("blah") ed hai il tuo elemento
chiamato "blah" pronto per essere manipolato.
Questo meccanismo è stato quindi portato nei CSS.
E' vero che scrivere ai fini pratici scrivendo
<div id="header">...</div>
e
<div class="header">...</div>
ottieni lo stesso "effetto" di applicare una serie di propietà
ad entrambi i DIV. Stranamente la stessa obiezione NON viene sollevata
se io inizio a scrivere qualcosa come:
<div>Testo.</div>
invece di:
<p>Testo.</p>
Eppure, guarda un po', è sempre questione di semantica. Il significato
di id è diverso da class, quanto è diverso per div e p.
C'è un altra cosa, degli stili applicati con un ID "pesano" 10 volte di
più di uno applicato con class[1]. Prova a scrivere:
  #header {
   color: red;
  }
  .header {
    color: blue;
  }
<div id="header" class="header">Testo.</div>
Vedrai che il testo è in rosso e non in blu -- chiaramente su browser 
non bacati :)
Io uso gli id per i tipici elementi della pagina che non
si ripetono e costituiscono il layout di questa: header, logo, footer,
main, sidebar, ecc. E una regola semplice che ti permette di non
chiederti ogni volta: "ma uso un class o un id?".
Spero che ora ti sia più chiaro.
[1]: 
http://www.htmldog.com/guides/cssadvanced/specificity/
-- 
d.


 Comunque resta il fatto che io non ho ancora capito la differenza... :-( 
Ok, vediamo di ricapitolare.
In HTML un id identifica in maniera *univoca* un elemento nel
documento. Questo vuol dire che via JS ad esempio puoi fare
document.getElementById("blah") ed hai il tuo elemento
chiamato "blah" pronto per essere manipolato.
Questo meccanismo è stato quindi portato nei CSS.
E' vero che ai fini pratici scrivendo:

e


<div>Testo.</div>
invece di:
<p>Testo.</p>


  #header {
   color: red;
  }
  .header {
    color: blue;
  }




[1]: 
http://www.htmldog.com/guides/cssadvanced/specificity/
-- 
d.
