>Wie muß das CSS aussehen, damit der Wert des content-Attributs von
>Meta-Tags angezeigt wird.
Opera versteht
meta {
display: block;
}
meta:after {
content: attr(content);
}
, allerdings darfst du nicht erwarten, dass andere Browser das auch
können.
MI
--
Einführung in XHTML, CSS und Webdesign: http://jendryschik.de/wsdev/einfuehrung/
XFrames Working Draft (Deutsche Übersetzung) : http://jendryschik.de/TR/xframes/
Disclaimer? Eine Stellungnahme zum Thema : http://jendryschik.de/misc/disclaimer
Was ist ein guter Standard? : http://jendryschik.de/wsdev/trans/designguide/
Inhalte von meta Tags können nicht angezeigt werden.
Alexander Skwar
--
#ifdef STUPIDLY_TRUST_BROKEN_PCMD_ENA_BIT
2.4.0-test2 /usr/src/linux/drivers/ide/cmd640.c
> Wie muß das CSS aussehen, damit der Wert des content-Attributs von
> Meta-Tags angezeigt wird. Ich habe in den Meta-Tags Informationen drin,
> die ich auch anzeigen will.
Das CSS muss verdammt komisch aussehen und der Browser muss hinreichend
buggy sein.
Warum schreibst du nicht einfach deine Meta-Informationen ganz normal
zusätzlich in den body-Bereich?
Gruß,
Matthias
> Wie muß das CSS aussehen, damit der Wert des content-Attributs von
> Meta-Tags angezeigt wird.
head, meta {
display: block;
}
meta[name="description"]:before {
content: "Meta-Description: " attr(content);
display: block;
border-bottom: medium solid blue;
} /* analog für keywords, author, usw. */
Dem Fragesteller sei es als Übung überlassen, herauszufinden, in welchen
Browsern das funktioniert. (Safari und Mozilla machen es, dort braucht
er nicht prüfen.)
Ein Copy-and-Paste-Beispiel mit HTML und CSS für die Tippfaulen am Ende
dieser Nachricht ;-)
> Ich habe in den Meta-Tags Informationen drin,
> die ich auch anzeigen will.
Prinzipiell eine gute Idee, jedoch werden nur wenige Nutzer in den Genuß
der Informationen kommen. Am besten ist es, wenn wichtige Informationen
direkt in der Seite stehen.
<!-- Beispiel (quick'n'dirty) -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<title>Test</title>
<meta name="description" content="Testseite zum Sichtbarmachen von
Informationen in Meta-Elementen.">
<style type="text/css"><!--
head, meta {
display: block;
}
meta[name="description"]:before {
content: "Meta-Description: " attr(content);
display: block;
border-bottom: medium solid blue;
}
--></style>
</head><body>
<p>Hier steht ein einsamer Absatz.</p>
</body></html>
> Wie muß das CSS aussehen, damit der Wert des content-Attributs von
> Meta-Tags angezeigt wird.
Auf <URL: http://scholz-webdesign.de/opera/userstylesheets/diagnose.css >
liegt eine ältere Version eines meiner Diagnose-Userstylesheets für Opera.
Damit wird der Inhalt von 'head' als Tabelle dargestellt. Vielleicht gibt
dir das ein paar Anhaltspunkte.
Das kann aber *nur* Opera ab Version 7.1. Über den Privatgebrauch hinaus
ist damit nichts anzufangen.
Mit Mozilla und Safari kommst du in einer vereinfachten Form auch an die
Informationen heran, dann aber nicht mehr so hübsch präsentiert.
> Ich habe in den Meta-Tags Informationen drin, die ich auch anzeigen will.
Dann organisiere deine Informationen besser.
Gruß
Thomas
> Inhalte von meta Tags können nicht angezeigt werden.
Jedes Tag kann angezeigt werden, wenn man nur weiß, wie man es dem
Browser sagt, und ein Browser verwendet wird, der es versteht.
> Das CSS muss verdammt komisch aussehen
ungewohnt, weil selten gewünscht.
> und der Browser muss hinreichend
> buggy sein.
Warum soll dazu ein Bug nötig sein?
> Warum schreibst du nicht einfach deine Meta-Informationen ganz normal
> zusätzlich in den body-Bereich?
Weil Redundanz die Grundlage für Inkonsistenz ist.
> Georg Maaß <ge...@bioshop.de> wrote:
>
>
>>Wie muß das CSS aussehen, damit der Wert des content-Attributs von
>>Meta-Tags angezeigt wird.
>
>
> head, meta {
> display: block;
> }
>
> meta[name="description"]:before {
> content: "Meta-Description: " attr(content);
> display: block;
> border-bottom: medium solid blue;
> } /* analog für keywords, author, usw. */
Danke
Warum muß der head ebenfalls display:block haben? Und warum funktioniert
die Positionierung nicht?
Wenn ich dem head den display:block wegnehme, d.h. nur das meta mit
display:block versehen, dann sieht man gar nichts.
Das Verhalten ist bei Mozilla und Opera identisch, so daß ich mal
vermute, daß das so richtig ist. Aber warum ist das so. Warum genügt es
nicht, wenn ich die meta-Tags zu Blöcken mache, warum müssen diese
ihrerseits in einem Block liegen? Irgendwo scheint da noch ein kleines
Verständnis-Problem bei mir zu bestehen.
Gruß, Georg
>> head, meta {
>> display: block;
>> }
>
> Wenn ich dem head den display:block wegnehme, d.h. nur das meta mit
> display:block versehen, dann sieht man gar nichts.
Natürlich, head hat ja normalerweise display:none.
usch
> Lars Kasper wrote:
> > head, meta {
> > display: block;
> > }
>
> Warum muß der head ebenfalls display:block haben?
[...]
> Wenn ich dem head den display:block wegnehme, d.h. nur das meta mit
> display:block versehen, dann sieht man gar nichts.
>
> Das Verhalten ist bei Mozilla und Opera identisch, so daß ich mal
> vermute, daß das so richtig ist. Aber warum ist das so. Warum genügt es
> nicht, wenn ich die meta-Tags zu Blöcken mache, warum müssen diese
> ihrerseits in einem Block liegen? Irgendwo scheint da noch ein kleines
> Verständnis-Problem bei mir zu bestehen.
Offensichtlich werden ja alle Elemente des HEAD nicht im Viewport
angezeigt, auch wenn ich einem Kind-Element wie META sage, daß es sich
zeigen soll. Wenn wir davon ausgehen, daß alle modernen Browser CSS oder
eine Abart davon zur Darstellung von Webseiten verwenden
(»Browserstylesheet«), dann kann man sich denken, daß das vielleicht mit
{ display: none; } für das HEAD-Element dargestellt wird.
Und tatsächlich findet sich auch so ein Eintrag beim Blick in das
Browser-Stylesheet von Mozilla:
| /* hidden elements */
| area, base, basefont, head, meta, script, style, title,
| noembed, noscript, param {
| display: none;
| }
(Auf Windows liegt das in %MozillaDir%\bin\res\html.css, auf Mac OS X
normalerweise in /Applications/Mozilla.app/Contents/MacOS/res/html.css)
Auch im Beispiel-Stylesheet im Anhang A von CSS2 findet sich ein
entsprechender Eintrag für HEAD.
Es folgt nun ein pädagogisch »wertvolles« Beispiel. Wer nicht rumspielen
will, sondern einfach ein Zitat aus der CSS-Spezifikation lesen möchte,
kann es einfach überspringen.
<Beispiel>
Vielleicht hilft es nun für das Verständnis, einfach mal von den eher
ungewohnten HEAD-Elementen wegzugehen und sich zu überlegen, wie
{ display: none; } bei einer Vererbung wirkt. Dazu wieder für Tippfaule
ein Beispiel:
<!-- schnipp -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
<title>Test: {display:none} und Vererbung</title>
<style type="text/css"><!--
p {
display: none;
}
em {
display: inline; /* oder auch block */
}
--></style>
</head><body>
<p>Ein bißchen <em>betonter Text</em> im Absatz.</p>
</body></html>
<!-- schnapp -->
Man kann dem display für 'em' beliebige Werte zuweisen, es wird nicht
angezeigt. Sobald man das 'p' aber sichtbar macht, nämlich mit
{ display: block; }, wird auch der betonte Text gezeigt (es sei denn,
man hat ihn auch mit { display: none; } oder auf andere Arten
verschwinden lassen).
</Beispiel>
Schließlich schreibt die CSS-Spezifikation (Version 1 und 2) vor, wie
mit { display: none; } umgegangen werden soll:
<blockquote
cite="http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-display">
none
This value causes an element to generate no boxes in the formatting
structure (i.e., the element has no effect on layout). Descendant
elements do not generate any boxes either; this behavior cannot be
overridden by setting the 'display' property on the descendants.
Please note that a display of 'none' does not create an invisible box;
it creates no box at all. CSS includes mechanisms that enable an element
to generate boxes in the formatting structure that affect formatting but
are not visible themselves. Please consult the section on visibility for
details.
</blockquote>
Ein Element mit { display: none; } wird also vom Browser gar nicht
angezeigt. Und es ist festgelegt, daß seine Kind-Elemente auch nicht
gezeigt werden -- selbst wenn man das für sie extra anders angibt.
(Ein ursprünglich vorhandenes Beispiel für die bildliche Vorstellung mit
Zuhilfenahme einer Matroschka habe ich hier mal weggeschnippt. Das wäre
dann doch wohl zu konfus, der Wortlaut der CSS-Spezifikation sollte
reichen.)
> Und warum funktioniert die Positionierung nicht?
Positionierung mit »position« funktioniert nicht, da laut CSS2:
'position'
Applies to:
all elements, but not to generated content
Und "generated content" haben wir eben gerade zum Darstellen der
Attributwerte der Meta-Elemente benötigt, nämlich mit content für
:before bzw :after.
Laut Spezifikation kann man 'position' eben nicht für generierte Inhalte
anwenden. So einfach ist das, wenn auch vielleicht schade.
<http://www.w3.org/TR/REC-CSS2/visuren.html#choose-position>
<http://www.w3.org/TR/REC-CSS2/generate.html>
(In CSS 2.1 wird sich das voraussichtlich ändern.)