Der Owen-Hack hätte mir nichts genutzt, da er nur auf Opera Versionen 6 und drunter anspringt. Dann entdeckte ich einen anderen Hack, dessen Namen ich leider nicht mehr herausfinden konnte: Bindet man eine CSS-Datei wie folgt ein, wird sie nur von Safari und Opera verarbeitet:
<link rel='stylesheet' type='text/opera;charset=utf-8' href='opera.css' />
Der W3C-Validator sieht dies übrigens als validen Code an!
Nun konnte ich den Inhalts-Container auch in Opera richtig positionieren, jedoch wurde er dann im Safari falsch dargestellt. Daher musste ich versuchen, diese Style Sheet-Angaben für Safari auszublenden. Da kam mir der Safari-Bug, der von Andy Clarke entdeckt wurde, sehr gelegen und musste ihn nur ein bisschen umbasteln, da ich sonst wieder die Korrektur der Anzeige in Opera wieder aufhob.
@media all {
@import url(cream.css);
margin-top:80px;
}
Safari kann die Stile innerhalb @media all nicht verarbeiten, wenn sich darin auch noch eine @import-Anweisung befindet. Jedoch verarbeitet Safari die in der @import-Anweisung befindliche CSS-Datei sehr wohl ein. Ich feilte ein bisschen herum und hab es dann geschafft.
Ruft man die @import-Anweisung erst nach der/den für Opera nötigen CSS-Regel(n) auf, springt Safari wieder auf die "Standard"-CSS-Regel an. Das würde dan so aussehen:
@media all {
html body #box #content #maincontent {
margin-top:80px;
}@import url(style.css);
}
Somit wäre ein weiterer CSS-Hack für Opera aufgedeckt! Es ist zwar keine einwandfreie, semantisch korrekte und valide Lösung, jedoch spricht ja ein Hack sowieso schon gegen die Grundprinzipien der Erfinder.
Das hättest du besser im Forum fragen können... Leider ist die Seite, von der ich die Icons hab, im Umbau. Ich sage dir wohl bescheid, wenn sie wieder erreichbar ist. Cheers
Merci - und demnächst gehe ich mit solchen Anliegen ins Forum
Danke für Deine Seite, Du hast hier sehr hilfreiche Infos.
Ich möchte nun doch mal folgendes aufgreifen:
Wenn man eine Webseite entwickelt, kommt man ja früher oder später zu Widersprüchen gegenüber einzelnen Browser-Interpretationen. Viele Probleme tauchen schon beim groben Layout auf, z.B. wenn man die Seite 2- oder 3spaltig einrichtet.
Ich persönlich bin teilweise wieder zurück zu den Tabellen gegangen.
Habe einfach keine Lust mehr auf 3 pixel gaps etc. etc. Daher setze ich wieder vermehrt Tabellen ein. Natürlich nur bei Bedarf und schön dokumentiert (hinter jedem Table/td/tr tag entspr. HTML-Kommentar).
Ist das nun verwerflich?
Wie gesagt, ich bevorzuge CSS-Positionierung, aber alles was kritisch ist oder wo Bugs/Workarounds zu erwarten sind und wo eine Tabelle das lösen kann, setze ich Tabellen ein. Den einzigen Nachteil den ich sehe sind minimal höhere Ladezeiten aufgr. evtl. minimal längerem Code. Ich habe hier keinen Spaghetti-Code, sondern beispielsweise 3-5 Tabellen auf der Seite. Letztendlich auch zukunftssicherer im Hinblick auf IE7.
Mich würde Eure Meinung interessieren: muss es wirklich ohne Tabellen sein, und dafür lieber zig Workarounds/Hacks in Kauf nehmen, die eh bald schon wieder obsolete sind?
Grüße, Michael
Da bin ich genau deiner Meinung.
schlage mich schon lange mit unterschiedlichen Darstellungen und div's rum ... um "möglichst guten Code" zu produzieren ... aber letztlich war ich bei den meisten Sachen so entnervt, das ich zu den guten alten Tabellen zurückgekehrt bin ... die machen wenigstens was ich will und (so gut wie) jeder moderne Browser zeigt's mir gleich an ... zudem kann ich die auch per CSS wunderbar anpassen um Quelltext zu sparen.
Warte ja schon auf den nächsten Standard, mit dem wieder kein Browser was anfangen kann ... ;-)
Sorry wenn ich das jetzt mal so sage, aber dann seid ihr zwei einfach nur faul. Tabellen sollten für das genutzt werden, was sie sind, nämlich Inhalte strukturiert anzuzeigen, und nicht als Entschuldigung, damit man sich Arbeit beim Layout spart. Was kommt als nächstes, der unsichtbare Pixel-Hack?
Nebenbei, habt ihr eure Webseiten auch mal in Textbrowsern a la w3m oder lynx angeschaut? Vermutlich nicht. Das was man da zu sehen bekommt, ist übrigens auch die Reihenfolge, in der Screenreader von Blinden die Website vorlesen. Mit Tabellen wird das nix.
Jedes noch so komplexe Layout lässt sich meiner Meinung nach in allen moderneren Browsern umsetzen, ohne dabei Standards zu verletzen, es erfordert eben nur ein bisschen Arbeit.
Aber das werdet ihr zwei wohl nicht verstehen. Irgendwo ist es ja auch bezeichnend dass ihr auf CSS rumhackt, aber selber keine eigene Website angebt. Tja naja...
Tja, Jeriko... Es gibt leider noch viel zu viele die sich lieber auf Bilder und Navigations-Links in tabellarischen Übersichten verlassen und statt Rändern einfach mal das |-Zeichen nutzen und Abstände mit mehreren Kilobyte an leeren Bildern realisieren.
Doch genau solche Leute ärgern sich, wenn ihre Kunden auf einmal auch ihre Seiten auf Handy sehen wollen, oder das Menü doch auf der anderen Seite haben möchten. Tja... Manche können HTML andere nicht...
http://labuschin.com/material/vorteile_von_css-design.html
Ah.. wie ich sehe entwickelt sich hier gerade eine Standard-Disskusion!CSS ist keine Programmier-Sprache, sondern eine Formatierungsprache. HTML ist auch keine Programmiersprache, sondern eine Auszeichnungssprache. Und ich habe dies - meines Wissens nach - nie behauptet.Der Grund für die Behauptung, dass einige kein HTML können ist, dass sie einfach nicht die Bedeutung der Elemente verstehen und sie falsch einsetzen. Sie können nochnichtmal ihre heißgeliebten Tabellen richtig aufbauen. Beispiel:
<table>
<tr><td colspan="2" class="banner"></tr>
<tr><td class="left"></td><td class="right"></td></tr>
</table>
Wo ist caption?Wo ist thead?Wo ist tbody?Wo ist th? Diese Elemte der HTML-Tabelle werden selten richtig eingesetzt!
�HTML != CSS� ist ein guter Ansatzpunkt. Jedoch gestaltest du mit HTML... Warum? HTML ist doch eine Auszeichnungssprache, die Dokumente strukturieren soll. Um eine Box neben die andere zu setzen, nutzt man nunmal CSS und nicht anderes.
Und wie meinst du das mit den Backlinks? 127 Referer mit 1887 Hits, ca. 250 Besucher am Tag und insgesamt schon über 22200 Besucher sprechen meiner Meinung nach für einen "gewissen Bekanntheitsgrad" (und mehr habe ich nie behauptet... Zumindest muss ich mich nicht für meine Website schämen, auch wenn einige Fehler in einigen Browser auftauchen.
Zu tonZens Verteidigung müsste ich jetzt sagen, dass sich in deinem kleinen Markup-Beispiel ein Fehler eingeschlichen hat, aber das wäre dann wohl Klugscheisserei ;-)
Aber abgesehen davon stimme ich dir zu, HTML ist eine Auszeichnungssprache um Dokumente zu strukturieren. Nicht mehr und nicht weniger. CSS dagegen dient der Formatierung dieser Elemente. Nicht mehr und nicht weniger. Beides steht für sich und sollte auch so eingesetzt werden. HTML 4.0 bzw. XHTML 1.0 sind seit Jahren veröffentlichte Standards, die genau dies aussagen.
Bezüglich meiner Aussage über Textbrowser möchte ich anmerken, dass der Mensch zwar zeilenweise von links nach rechts liest (Arabien, China und so mal ausgenommen), ein komplettes Dokument von oben nach unten, und eben nicht, wie es mit einem Tabellendesign fest vorgeschrieben wird, häppchenweise pro Zelle. Gutes Design zeichnet sich heutzutage dadurch aus, dass die Inhalte zum einen in eine logische Reihenfolge gebracht und zum anderen optisch aufbereitet werden. Beispiel? labuschin.com ohne Stylesheet (Edit -> Page Style -> No Page Style im Feuerfuchs, wobei es mich ja nicht wundern würde, wenn ihr den IE benutzt...).
Ansonsten ist es natürlich sehr einfach auszuteilen, aber nicht einzustecken. Ich habe auch nie behauptet, dass meine Website frei von Fehlern ist, und herrje, man muss auch irgendwo mal einen Schlussstrich ziehen. Ich könnte mich jetzt nächtelang mit dem von dir angesprochenen Problem beschäftigen...oder ich lasse es, da es kein gravierender Fehler ist und konzentriere mich lieber auf die Inhalte. Aber mit einer Aussage zu kommen, die 2005 völlig überholt ist, aber dann nicht genug Courage zu haben, diese durch Preisgabe der eigenen Website zu untermauern...ist schon arm.
Nebenbei: Auch mir ist deine Milchmädchenrechnung nicht ganz klar: 17 Backlinks laut technorati.com, wobei diese mal so gar nichts aussagen. Die ca. 20.000 Besucher dagegen schon.
Ich kann es gut verstehen, wenn sich Leute erstmal dafür entscheiden, eine kritische Situation über eine Tabelle zu lösen. Die Betonung liegt auf "erst einmal". Letztendlich sollte jeder das Ziel haben, CSS dafür einzusetzen wofür es gedacht ist.
Mir sind genügend Sourcecodes untergekommen, wo mit 100erten divs gearbeitet wurde: div hier, div da, div überall. Da finde ich dann Tabellen noch übersichtlicher :-). Leute die so agieren haben CSS und das XHTML-Modell in keinster Weise verstanden.
Jedenfalls: um z.B. den oben erwähnten 3-Pixel-Gap mit einer Tabelle zu lösen, sehe ich nix verwerfliches (obwohl da meist height: 1em reicht). Es kommt immer auch auf die Zielgruppe der Seite an. Manche Browser-Bugs sind nun mal schwierig zu behandeln, und da sehe ich es gerade privaten Webmastern nach, hier und da doch eine Tabelle zu verwenden, obwohl Tabellen völlig widersprüchlich sind im Kontext dieser Verwendung. Wenn allerdings wer beruflich / kommerziell auftritt, dann hege ich einen anderen Anspruch, und schau mir genau an, was der-/diejenige da fabriziert hat.
Noch was:
Nicht zu vergessen: die bestehenden CM-Systeme. Beispielsweise Joomla/Mambo. Hier erfolgt die Ausgabe nach wie vor via Tabellen, d.h. selbst wenn das Grundgerüst sauber gelöst wurde, erfolgt die Füllung unsauber. Dies kann auch wieder Nebenwirkungen haben, kennt jeder der in Joomla schon mal versucht hat, verschachtelte Tabellen in einem CSS-Layout zu bändigen. Auch hier schlagen wieder Browser-Bugs zu (z.B. IE in Verbindung mit Styles auf Tabellen).
Eigentlich eine Frechheit, dass CMS wie Joomla/Mambo dies heutzutage noch machen. Z.B. Wordpress als Weblogsystem ist da vorbildlich und zeigt wie es anders geht.
Hallo Martin,
um wieder auf das Ursprungsthema zurückzukommen:
Dieser Hack ist genau das, was ich gesucht habe! Leider kann ich in der Site, die ich bearbeite, kein Javascript einsetzen, sonst hätte ich etwas wie auf http://my.opera.com/community/forums/topic.dml?id=103779 verwendet.
Vielen Dank...
Ist der Selektor bei dem kompletten Sytslesheet villeicht stärker als der in der CSS-File für Opera? Das könnte ein Problem sein. Ansonsten kann ich dir ohne dein Beispiel nicht weiterhelfen.
Funktioniert bei mir auch nicht. Ich weiss aber auch nicht was ich falsch mache. JO: Hast Du die Probleme gelöst?
Laut RFC müssen @import Regeln immer am Anfang einer CSS Datei stehen und dürfen nicht in @meda Regeln verschachtet werden... Nur mal so am Rande. Folglich hat der Safari mit diesem Code natürlich auch Probleme.
es gibt einen grund warum manche hacks klangvolle namen tragen (siehe "holly hack"). es sind hilfen für etwas, was nur bei einem kleinen manchmal weniger als ein prozent anteil der gesamtsurfer aufkommt. es wird immer unbeirrbare downloadstrategen geben mit softwareversionen die gar nicht die nummerierung verdienen. zb opera 9.2. man kann getrost auch sagen, dass es eine art mainstreamcode gibt der sich am technisch logischen orientiert und nicht an den möglichkeiten der vergewaltigung von validen strukturen. aber bitteschön, wenn durch einen hack die gesamt struktur eines webprojektes zukunftsweisender bleibt. halbwegs lesbar und logisch aufgebaut, dann finde ich das legitim einen hack zu verwenden. stell dir vor du würdest ein auto haben mit platten, wechselst du den reifen und fixt den schaden oder schwenkst du auf pferdekutsche, weils da keinen platten gibt? wären nur sauber w3c valid konforme browser da draußen gäbe es keinen grund hacks zu finden und zu nutzen. ein wunder dass das tables es überhaupt so weit gebracht haben. das einzig bedenkliche an hacks ist, dass man die lebensdauer von vergänglichem bullshit verlängert. siehe IE 6. alle hacken damits trotzdem geht, obwohl eigentlich die firma an diesem produkt hätte gern pleite gehen können. guten rutsch. :-)
Bei mir wird so die CSS nur für Chrome und Safari angewandt.
Alexander, das kann gut sein. Der Artikel stammt vom 14.12.2005. In der Zwischenzeit haben sich ja alle Browser weiterentwickelt.
Darren
15.12.2005
Hm sehr schön. Leider habe ich davon überhaupt keine Ahnung. ;-)
Allerdings finde ich einige deiner ObjectDock Bar Icons ganz stylisch. Kannst du mir mal sagen, wo du die her hast?
Lg, Michael