Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

xhtml 1.0 strict: kein border im img-tag erlaubt?





Frage

Hi Leute wenn ich den w3c-validator-Text richtig übersetze ist in Verbindung mit dem doctype zu "xhtml1.0 strict" im "img-tag" keine Angabe zu "border" erlaubt: [quote] Line 41, column 67: there is no attribute "border" <img src="patronin-nikos.jpg" width="200" height="298" border="1" alt="Patronin auf "Nikos"" /> You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead). [/quote] Ist das so richtig ? Wie gibt man dann korrekterweise einem Bild einen Rahmen? Muss ich das via css und class-Zuweisung erledigen? Gruss Heiko

Antwort 1 von derpfleger

OK, hab selbst rausbekommen, wie es geht.
Wen es interessiert:

Das doctype:
Zitat:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/Strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">


das image-Tag wie es nicht funktioniert hat:
Zitat:

<img src="bild.jpg" width="200" height="298" alt="Alternativtext" border="1" style="float:right; margin:20px;" />


was auch nicht funktioniert hat:
Die border-Angaben mittels definierter class-Zuweisung aus der css-Datei zu machen.

wie es funktioniert hat:
Zitat:

<img src="bild.jpg" width="200" height="298" alt="Alternativtext" style="float:right; margin:20px; border:1px solid #000000;" />

Also einfach die ohnehin vorhandene style-Angaben im img-Tag durch Angaben zu border noch zu ergänzen, ganz einfach.

Vielen Dank fürs zuhören :-)

Gruss Heiko

Antwort 2 von rfb

http://de.selfhtml.org/html/referenz/attribute.htm - da findest du für alle Tags erklärt, welche Attribute in den Varianten Strict, Transitional und Frameset erlaubt sind.

Generell: (fast) keine Layoutattribute in Strict, dafür gibts CSS!

Antwort 3 von derpfleger

@rfb:

Zitat:
Generell: (fast) keine Layoutattribute in Strict, dafür gibts CSS!

OK, aber warum funktioniert das nicht als mit class="" eingebundenes stylesheet, sondern nur als innerhalb des img-tag untergebrachtes stylesheet? Oder habe ich da was falsch gemacht?

Gruss Heiko

Antwort 4 von TheHappyJoker

klar funktioniert das mit class. musst nur drauf achten, wie du es einbindest.

wenn du etwas mit class definierst, muss in der globalen stylesheet der classname mit einen punkt . davor angegeben werden. aber du kannst zentral in der stylesheet den img-tag definieren (den natürlich ohne punkt, weil es img ja schon gibt).

ein beispiel:

<html>

<head>
<style type="text/css">
<!--
img { border: 0px }
.border { border: 10px }
-->
</style>
</head>

<body>

<img src="bild.jpg">
<img src=bild.jpg" class="border">

</body>

</html>


<gruß thj>

Antwort 5 von derpfleger

@thj

Ich denke, es hat daran gelegen, dass ich im img-tag dann versehentlich sowohl die class-Angabe als auch ein weiteres style gleichzeitig stehen hatte. Das beisst sich dann wohl.

Danke und Gruss Heiko

Antwort 6 von rfb

Zitat:
class-Angabe als auch ein weiteres style gleichzeitig stehen hatte. Das beisst sich dann wohl.
eigentlich nicht, du kannst ne ganze Reihe von CSS-Angaben einbinden (z.B. mehrere Klassen + direkte style-Angaben), wenn sie sich widersprechen, gibts eine bestimmte Rangfolge, was letztendlich gilt. Sehr gut erklärt ist das hier http://www.css4you.de/wscss/css06.html

Antwort 7 von TheHappyJoker

rfb hat recht. und wie du in meinen beispiel sehen kannst sind dort border sowohl über img als auch über die border-class bestimmt. das müsste sich ja auch "beißen" (0 oder 10 pixel).
funktioniert aber trotzdem ohne probleme.

naja, der netscape 4 kommt damit nicht so zurecht, aber erstens surft keiner mehr damit und zweitens beherscht der ja css1 nicht komplett.

<gruß thj>

Antwort 8 von rfb

der Netscape4 kreigt bei mir aus vielen Gründen erst gar kein Stylesheet:

<style type="text/css" media="all">
<!--
@import "style.css";
-->
</style>

versteht er nicht, kann er also auch nicht falsch interpretieren.
Theoretisch könnte man zudem (mindestens eine Zeile davor) ein weiteres Stylesheet mittels
<link rel="stylesheet" type="text/css" href="n4style.css">
einbinden und dann für die anderen Browser im "richtigen" alles überschreiben.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: