Blog

runde Ecken mit CSS?

Thema: zu Basic Thinking, 12.09.2007

anlässlich des Vorschlags von Ehsan, für die Artikelüberschriften eine graue, abgerundete Box (mit weißer Schrift) zu nehmen, will ich es mal probieren. Doch, wie kann man mit einfachsten Mitteln ohne ewige DIV-Verschachtelungen abgerundete Boxen für die Artikelüberschriften erstellen? Bedenkt, dass auf der Startseite rund 20 Artikel angezeigt werden, also 20x das DIV-Gedöns losgetreten wird. Wen der Code dazu kleinstmöglich wär, dann wärs ok. Die bisherigen Lösungen, die ich via Google-Suche gefunden habe, sind imho Codemonster.

Damit Ihr wisst, was ich meine:
vorschlag grey


     

Artikelzusatzinfos
3. Artikelstatistik:
· read: 11221 · today: 4 · last: 13. February 2012

Trackback URI | Comments RSS

37 Kommentare zu “ runde Ecken mit CSS? ”

  1. #1 Benno [www] schrieb

    Versuchs mal mit folgendem CSS-Code in einem h2-Block:

    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
    padding: 5px;
    background-color: #CCC;
    color: #fff;

    ungetestet, mit den Werten musst etwas rumexperimentieren. Und funktioniert nur im FF und Webkit-Browsern. IE-User sehen einen rechteckigen Kasten.

    btw.: kann es sein dass in deinen Postings nirgends die Post-Uhrzeit angezeigt wird?

  2. #2 Robert Basic [www] schrieb

    @Datum kommt rein, Time halte ich für sinnlos.
    @Ist das eine spezielle Anweisung für FF oder kann damit auch der IE6, IE7 und Opera 8+9 damit umgehen, wie auch Safari? Sorry, aber es ist nun mal so doof…

  3. #3 Benno [www] schrieb

    Datum ist bereits drin (“Thema: zu Basic Thinking, 12.09.2007 “), die FF-Info hab ich eben reineditiert, Zeit halte ich teilweise durchaus für interessant – hab eben verzweifelt danach gesucht – dein Post kann ja noch nicht alt sein, wenn sonst noch niemand kommentiert hat ;-)

    Wie es mit Opera/Safari aussieht: kA. Hab ich nix zu testen. Opera basiert auf Webkit, glaub ich. IE-User schauen in die Röhre, dann musst mit Bilder arbeiten oder auf CSS3 warten.

  4. #4 Robert Basic schrieb

    ah, ok, thx. Da IE rausfällt, fällt damit auch die Lösung flach. Kann schlecht weiße Schrift auf weißem Hintergrund anzeigen, wenn die graue Umrandung/Box nicht sichtbar ist.

  5. #5 Benno [www] schrieb

    Die Box ist trotzdem da. Sie ist nur nicht rund ;-)

  6. #6 Marvin [www] schrieb

    -moz-border-radius: Geht nur mit FF und ggf, auch mit IE7 – aber soweit ich weiß nicht mit Opera! Also wehe– ;) Sonst mahn ich dich wegen Diskriminierung ab… ;)

  7. #7 Benno [www] schrieb

    *ooops* ;-)

    Noch ein interessanter Link zum Thema: http://www.css3.info/preview/rounded-border/

  8. #8 Alin [www] schrieb

    Hallo Robert,
    so könnte es ohne zusätzliche Divs klappen.
    Du schneidest die Hintergrund-Box in Links und Rechts. Beide sollten die Hälfte plus 5px breit sein.
    Dein h2 bekommt folgende style Anweisung:
    h2{background:url(linkeseite.jpg) no-repeat top left;}
    Und nun den Link mit der rechten Seite bestücken:
    h2 a{background:url(rechteseite.jpg) no-repeat top right;}

    Einen Nachteil hat das ganze allerdings. Klappt nur bei Einzeiler.
    Wenn es bei Mehrzeiler auch klappen soll musst du auf Hilfselemente (div, span, strong,…) zurückgreifen.

  9. #9 Frank [www] schrieb

    Hmm aus’m hohlen Bauch: ein kleines Hintergrundbild (linke obere und untere Ecke mit Rundung) im <h2> left-aligned und eines (die beiden rechten Ecken) im <a> right-aligned. Dazu müssen dann beide (a und h2) entweder block oder inline sein damit sie gleich breit sein können.

    Ist vielleicht etwas kompliziert und ich hab grad keine Zeit das auszuformulieren, aber vielleicht erbarmt sich ja anderswer und spielt mit den Werten bis es passt. Sollte dann aber in jedem Browser funktionieren.

    EDIT: Mein Vorredner hats ja schon ;)

  10. #10 Oli [www] schrieb

    wenn es eine Javascriptlösung sein darf:
    http://www.html.it/articoli/niftycube/index.html

    Habe ich selbst im Einsatz, finde ich sehr schön.

  11. #11 Alin [www] schrieb

    die Version für zwei Zeiler würde in etwa so aussehen:

    dafür erstmal die linkstruktur ändern:

    Hier kommt der Linktitel

    Jedes der Html Elemente bekommt eine Ecke als Background. Also
    h2 {background:#farbwert url(linkeeckeoben.jpg) top left no-repeat;}
    a {background:url(linkeeckeunten.jpg) bottom left no-repeat;}
    strong{background:url(rechteeckeoben.jpg) top right no-repeat;}
    span {background:url(rechteeckeunten.jpg) bottom right no-repeat;}

    Hier müsste man ein bisschen mit display inline und block ein bisschen rumspielen, aber es würde klappen.

  12. #12 Angels Sin [www] schrieb

    Eigentlich ist eine Lösung über “div” nicht so schrecklich verschachtelt, da du eigentlich nur ein “div” vor die Überschrift setzen musst und eines danach, da hinein ein Bild links mit einer Rundung und die andere Rundung kann mit dem Hintergrund gesetzt werden (oder eben noch ein Bild einfügen rechts). Habe ich bei meinem Blog auch so realisiert, da in allen Browsern richtig angezeigt (bis auf IE6, der aber Probleme mit margin hat, ein anderes Thema ;D ). Es gibt soweit ich mich recht erinnere noch eine andere Lösung über CSS, die aber ebenfalls nicht mit allen Browsern kompatibel ist…
    Ne doch nicht, wird zwar bei CSS3 “border-radius” heißen, heißt aber derzeit so, wie es Benno schon schrieb – außer, dass wenn ich mich recht entsinne, dies für Opera so genannt wird: -o-border-radius.
    Kann mich aber irren, da ich diese Funktion nicht nutze… es ist nunmal nicht für den IE gut und den nutzen immer noch zu viele Leute. Besonders, da man eben eigentlich die Rundung durchaus sehr einfach gestalten kann. Denn zwei “<div><img>etc…</div>” nicht SO viel ist (und man ja ein img durch die CSS-background-Angabe ersetzen kann (aber dann so irgendwo auch aufs gleich rauskommt ;) ).

    EDIT: Da waren schon ein paar schneller… auch wenn mit anderen Lösungen. Im Grunde gibt’s schon einige Möglichkeiten, die auch überall gehen, nur eben bisher leider nicht “einfach so”. Leider…

  13. #13 michfrm [www] schrieb

    @#3 Opera benutzt seine eigene Presto Engine
    @Robert
    Der phpBB3 Standard-Style setzt über jede einfach ein halbtransparentes rundes Bild, wäre das nicht noch ne Möglichkeit?

  14. #14 Matthias [www] schrieb

    Mach doch ein 4eckiges Div mit Hintergrundbild. Das Hintergrundbild ist ein Gif oder PNG und wird imho dann Skaliert. Das sollte imho so funktionieren *denk*

  15. #15 Robert Basic [www] schrieb

    ok ok ok, muss das erstmal scannen alles. DANKE!!!

    die Lösung von Alin hat was.
    @Matthias, das runde ins eckige kriegen, hehehe, das würde zwar gehen, is aber nicht rund;)

  16. #16 Florian [www] schrieb

    da die beiträge ja eine fixe breite haben, geht es sogar noch ein wenig einfacher, dazu habe ich bereits ein tutorial geschrieben. funktioniert wie gesagt nur wenn das div eine fixe breite hat, es werden im einfachsten fall auch nur 2 bilder benötigt. eines für oben und eines für unten. wenn der hintergrund “komplizierter” ist (rand, schatten, verlauf) drei. und zwei zusätzlich divs. außerdem ist die lösung mit allen browsern kompatibel. und das sogar ohne irgendwelche hacks. und garantiert ohne javascript ;)

  17. #17 Robert Basic [www] schrieb

    super simpel, bingo!!

  18. #18 Robert Basic [www] schrieb

    ach ja, wie “gefährlich” ist die weiße Schrift für die Artikelüberschrift? Wirkt sich das irgendwo aus, wenn der Browser keine Grafiken anzeigt oder dergleichen?

  19. #19 alin [www] schrieb

    Spätestens beim Drucken kann es zum Problem werden. Hintergrundgrafiken werden grundsätzlich nicht mitgedruckt. Problem umgehen indem du eine print css erstellst und die Schriftfarbe auf dunkel stellst.

  20. #20 Robert Basic [www] schrieb

    ah, bingo

  21. #21 Tobi schrieb

    spiffycorners.com mag auch eine recht interessante Lösung sein, verursacht aber eine Menge b-Tags.

  22. #22 Christian schrieb

    Hi!

    Ich denke, mittlerweile haben wir ja ne ausreichende Anzahl von Vorschlägen. Deswegen sag ich jetzt einfach mal: Wozu die Ecken abrunden? Der Rest vom Layout ist doch auch eckig.

    Um die Überschriften hervorzuheben würde ich eher zB die Farbe ändern. Beispielsweise auf den Farbwert der h3-Überschrift über den Comments. Und vielleicht noch ne Spur größer.

  23. #23 Sam [www] schrieb

    Ich habe Nifty Corners eingesetzt – zB auf http://www.konzertweb.ch und im Admin-Bereich von http://www.bandweb.ch – da bindet man nur ein Javascript-File ein und ruft eine Funktion auf mit Übergabe der Elemente, die man abgerundet haben will… recht simpel.

  24. #24 Florian [www] schrieb

    @22: Aber es IST JavaScript und das ist definitiv ein Nachteil. Vor allem wenn die Seite grundsätzlich auch ohne funktioniert. Wenn ohne JS sowieso nichts geht, ok, aber sonst…
    Der Unterschied an Zeilen ist (wenn man meine Variante einsetzt) auch nicht gravierend, Nifty braucht eine, meine Variante 2.

  25. #25 Roy [www] schrieb

    Kennst du die xsnazzy-methode?

    > http://www.cssplay.co.uk/boxes/snazzy2.html

  26. #26 Siegfried [www] schrieb

    Also, wenn Du moz-border-radius noch mit einem border-radius ergänzt, dann kann das theoretisch jeder Browser. Die korrekte css3 Eigenschaft heisst nämlich einfach border-radius. Das ist genormt und wird wie üblich von kaum einem Browser unterstützt. Aber vielleicht ja in Zukunft? So etwa mit IE 12.3?

    Alles Andere würde ich lieber weglassen. Erzeugt nur reichlich aufgeblähten und unsemantischen Code. Du packst jede Menge Zeugs ins html mit rein, das nur der Präsentation dient und mit dem Inhalt Nix zu tun hat. Keine sonderlich gute Idee.

    Ich verwende auf meinen Seiten mehrere alternative Stile. Einer davon, “Humus”, nutzt abgerundete Ecken für Überschriften. Sieht recht gut aus. Der IE kann’s halt nicht, aber der kann sowieso keine alternativen Stile. Na und? Die Seiten werden dadurch ja nicht unzugänglich für IE-Nutzer. FF Nutzer bekommen einfach etwas mehr :)

  27. #27 Robert Basic [www] schrieb

    @Siegfried, wenn aber der graue Background nicht merh angezeigt wird, würde die weiße Überschrift auf weißen Body-Background für IE Nutzer verschwinden. Wenn ich diese Methode nehme. Oder kann ich dem IE alternativ ne andere Farbe der Überschrift geben, als rot wie jetzt?

  28. #28 Christian [www] schrieb

    Dem IE kannste theoretisch über sog. “Conditional Comments” im CSS-Code ein komplett anderes Layout aufdrücken.

  29. #29 tbones schrieb

    Habe ich da was falsch verstanden? Benno (#1) schrieb doch, dass der Kasten im IE nicht verschwindet, sondern eben nur rechtwinkelige Ecken hat.

  30. #30 Siegfried [www] schrieb

    @tbones: Kommt auf die Methode an. Bei reinem css, ja, sonst nein.

    @Robert: Die Methode ist zwar nicht schön, aber man kann dem IE tatsächlich per conditional comment eine Art Korrektur-CSS verpassen. Wegen der Cascade natürlich als letztes Stylesheet.

    Ach noch was: Das mit den abgerundeten Ecken funktioniert bislang nur bei Containern mit Hintergrundfarbe, nicht mit Hintergrundgrafik. Grafiken gehen immer bis in die Ecken. Wenn Du dem container einen border verpasst, kannst Du das sehen: Border ist abgerundet, Bild eckig. Also bislang nicht immer besonders gut nutzbar. Aber immerhin, ein Anfang.

  31. #31 Maik [www] schrieb

    Robert hab dir eine Lösung über dein tolles Kontaktformular zugeschickt.
    Das ist eigentlich die beste und einfachste Lösung.
    Und solltest du noch einen halbtransparenten Schatten suchen hab ich da auch noch was :).

  32. #32 Robert Basic [www] schrieb

    hallo Maik, vielen Dank, kann sein, dass ich mir das heute Abend erst spät im Hotel anschauen kann, da ich heute und morgen in Karlsruhe bin. Hm.. komischer Name irgendwie für ne Stadt, egal.

  33. #33 Frank [www] schrieb

    Ich könnte dir eine Lösung via JavaScript senden, vie jQuery. Dann ist es in allen Browsern gleich wenn JS aktiv ist. Ist Js deaktiviert, dann ist es ohne Rundungen aber auch zugänglich. Die Hintergrundfarbe etc. bleibt erhalten.
    LG Frank

  34. #34 Robert Basic [www] schrieb

    danke Frank, lass mich mal zunmächst die andere Lösung probieren von oben… dann schauen wir mal weiter. Hast Du die bei Dir so im Einsatz irgendwo?

  35. #35 Frank [www] schrieb

    Ist in Vorbereitung, werde den Artikel in den nächsten Tagen frei geben.
    LG Frank

  36. #36 Mad [www] schrieb

    Alles mit runden Ecken, irgendwann hört das auch wieder auf, glaubt mir…

  37. #37 Frank [www] schrieb

    Wie angekündigt, nun einige Lösungen via JavaScript: http://bueltge.de/webdesign-ru.....cript/511/


Dein Kommentar?

(Eingabe von Name, Mail und Webadresse ist freiwillig)