Laat ik mss nog even beter aangeven wat ik bedoel. Bij de opbouw van html-documenten gaat het niet om hoe die eruit zien maar om het structuur geven aan je tekst. Zo wordt p gebruikt om een paragraaf aan te geven, h1 om de hoofdkop aan te geven, em om tekst te benadrukken en strong om tekst sterk te benadrukken, li om een lijstitem aan te geven enzovoort.
Je zou al die elementen kunnen afschaffen en maar 1 element meer overhouden (span bvb) en dan met class het type altijd aangeven om met css de gepaste stijl te voorzien. Maar dan is die structuur volledig weg.
Als je dus een tekst schrijft denk je na: wat is de hoofdkop, wat zijn tussenkoppen, welke tekst is belangrijk, welke nog belangrijk, waar wordt een lijst opgegeven (bijvoorbeeld een menu is een lijst en bestaat dus uit items die met li worden aangegeven) enzovoort en je gebruikt de gepaste elementen. Met css kan je de stijl naar smaak aanpassen.
Zo wordt standaard benadrukte tekst (em) cursief weergegeven en sterk benadrukte tekst (strong) vet. Maar jij kan dit met css zelfs evengoed omdraaien door alle em's vet weer te geven en alle strong's cursief als je vind dat de belangrijkste tekst cursief moet staan. Daarvoor moet je enkel em { font-weight: bold; font-style: normal; } opgeven (analoog voor strong). Om verwarring te voorkomen ga je dit niet doen, maar daar gaat het niet om.
Class is in die context een toevoeging hierbij om nog extra types elementen te voorzien. Class wordt dikwijls gebruikt om voor alles wat er hetzelfde uit moet zien maar één keer style te moeten opgeven, maar dit is eigenlijk verkeerd qua idee. Je moet het echt voor het type gebruiken. Nu wil je namelijk iets misschien wel op die of die manier weergeven, maar later mss niet meer, en dan heb je proberen als je class-structuur slecht in elkaar zit. Als je alles met types opgebouwd hebt dan kan je voor alle elementen met gelijke betekenis in 1 keer de stijl veranderen door de gepaste stijl aan de betreffende class te koppelen. Je moet dus eigenlijk los van hoe je alles wilt weergeven een class-structuur opbouwen, met het oog op later. Je moet dus wel geen types voorzien als die al in de verschillende html elementen zoals beschreven in de vorige paragrafen voorzien zijn.
Waarvoor is structuur belangrijk: kort gezegd zodat apparaten / programma's die je site niet visueel zien toch weten hoe de structuur in elkaar zit, bijvoorbeeld zoekmachine's of browsers, waar de surfer zelfs een eigen stijlblad aangemaakt kan hebben om bijvoorbeeld van alle sites die hij bezoekt alle koppen (h1) in een bepaalde grootte weer te geven of bijvoorbeeld benadrukte tekst (em) anders dan standaard (cursief) weer te geven.
Kortom: het draait om betekenis en structuur en niet om hoe het eruit ziet.