Hallo,
nächste (u.U. blöde)Frage:
Was ist gegen id's einzuwenden?
zb:
#p1 { font:15pt;
font-family:Comic Sans MS;
color:#FF99CC; }
warum ist es besser klassen zu verwenden?
nicht böse werden, aber warum liest du nicht die links dich ich dir fürher gepostet habe? (die vom w3c)
aussrden steht auch einiges im selfhtml tum thema
http://selfhtml.teamone.de/css/formate/zentrale.htm#div_span
http://selfhtml.teamone.de/css/formate/zentrale.htm#individualformate
-----
wie frank auch schon sagte: ID dient für dateiweite eindeutige identifizierung von elementen:
-------- das ist also möglich -----------
<div id="abc">
<p id="abc"><a id="abc"></a></p>
<table id="abc">
<tr>
<td id="abc"><span id="abc"></span></td>
</tr>
</table>
</div>
--------------------------------------------
du kannst hier alle elemente mit: #abc {} ansprechen,
oder mit
div#abc {}
td#abc {} ...etc.
immer das jeweilige element ansprechen.
---
-------aber sowas ist NICHT erlaubt ---------
<div id="abc">
<p id="abc"><a id="abc"></a></p>
<table id="abc">
<tr>
<td id="abc"><span id="abc"></span></td>
</tr>
</table>
</div>
<div id="abc">
<p id="abc"><a id="abc"></a></p>
<table id="abc">
<tr>
<td id="abc"><span id="abc"></span></td>
</tr>
</table>
</div>
---------------------------------------------
warum es nicht erlaubt ist: weil so sind die elemetne nicht mehr eindeutig identifizierbar (stellt dir vor ID wäre ein fingerabdruck)
wenn du hier für das erste div etwas definieren willst und für den 2. was anderes geht das mit div#abc nicht mehr.
das ist z.B. dhtml sehr wichtig, wo du nur ein einziges bestimmtes element ansprechen willst.
--
willst du bestimme css angaben für bestimmte elemente mehrmals anwenden muss du klassen nehmen:
-------- dies ist also erlaubt --------------
<div class="abc">
<p class="abc"><a class="abc"></a></p>
<table class="abc">
<tr>
<td class="abc"><span class="abc"></span></td>
</tr>
</table>
</div>
<div class="abc">
<p class="abc"><a class="abc"></a></p>
<table class="abc">
<tr>
<td class="abc"><span class="abc"></span></td>
</tr>
</table>
</div>
----------------------------------------------
hier kannst du auch alle elemtente ansprechen und zwar mit
.abc {} also mit einer unabhängigen klasse.
du kannst gezielt aber für elemente die css angaben wiederholen:
div.abc { } gilt nur für die div's
span.abc {} gilt nur für span's
etc.
jetzt mal das ganze mit css (setze text mal überall text ein):
----------------------------
<html>
<head>
<title>Untitled</title>
<style type="text/css">
.abc { font-family:Arial; }
div.abc { font-size:24px; }
td.abc { text-align:center; }
span.abc { color:red; }
p.abc { font-weight:bold; font-size:20px;}
a.abc { font-family:serif; font-variant:small-caps; }
div#abc { color:blue; }
div#cba { color:green; }
</style>
</head>
<body>
<div id="abc" class="abc">
<p class="abc"><a class="abc"></a></p>
<table class="abc">
<tr>
<td class="abc"><span class="abc"></span></td>
</tr>
</table>
</div>
<div id="cba" class="abc">
<p class="abc"><a class="abc"></a></p>
<table class="abc">
<tr>
<td class="abc"><span class="abc"></span></td>
</tr>
</table>
</div>
</body>
</html>
grüße
thomas