<h1 class="ribbon">
<strong class="ribbon-content">Everybody loves ribbons</strong>
</h1>
.ribbon {
font-size: 16px !important;
/* This ribbon is based on a 16px font side and a 24px vertical rhythm. I've used em's to position each element for scalability. If you want to use a different font size you may have to play with the position of the ribbon elements */
width: 50%;
position: relative;
background: #ba89b6;
color: #fff;
text-align: center;
padding: 1em 2em; /* Adjust to suit */
margin: 2em auto 3em; /* Based on 24px vertical rhythm. 48px bottom margin - normally 24 but the ribbon 'graphics' take up 24px themselves so we double it. */
}
.ribbon:before, .ribbon:after {
content: "";
position: absolute;
display: block;
bottom: -1em;
border: 1.5em solid #986794;
z-index: -1;
}
.ribbon:before {
left: -2em;
border-right-width: 1.5em;
border-left-color: transparent;
}
.ribbon:after {
right: -2em;
border-left-width: 1.5em;
border-right-color: transparent;
}
.ribbon .ribbon-content:before, .ribbon .ribbon-content:after {
content: "";
position: absolute;
display: block;
border-style: solid;
border-color: #804f7c transparent transparent transparent;
bottom: -1em;
}
.ribbon .ribbon-content:before {
left: 0;
border-width: 1em 0 0 1em;
}
.ribbon .ribbon-content:after {
right: 0;
border-width: 1em 1em 0 0;
}
Protector
Diese Technik verwendet negative z-index-Werte bei einigen der Pseudoelemente. Das bedeutet, dass sie hinter anderen Elementen mit undurchsichtigen Hintergründen verschwinden können, was den Effekt ruiniert. Um dies zu beheben, müssen Sie sicherstellen, dass das unmittelbare übergeordnete Element des Bandes keinen Hintergrund hat und eine relative Positionierung mit positivem z-index aufweist. Verwenden Sie bei Bedarf einen zusätzlichen Wrapper.
<div class="non-semantic-protector">
<!-- ribbons and other content in here -->
</div>
.non-semantic-protector { position: relative; z-index: 1; }
gut1... Ich persönlich kenne niemanden, der keine Bänder liebt :)
Ich hasse Bänder. Habe sie noch nie richtig gemacht gesehen. Z.B. In diesem Beispiel, wo ist der Schatten, den das Band wirft?
improvisiere, Mann... Das Tutorial soll dir zeigen, wie man ein Band in CSS erstellt, nicht, wie man es für dich komplett aufbereitet. Lies die Fähigkeiten des Webkits, denn Schatten funktionieren nicht in allen Browsern.
füge das zu deinem Band hinzu, es funktioniert in Firefox. Außerdem kannst du die Deckkraft ändern, indem du die Alpha-Werte im Hex anpasst.
-moz-box-shadow: 3px 3px 4px #999;
-webkit-box-shadow: 3px 3px 4px #999;
Nächstes Mal sei nicht so schnell mit dem Mundwerk, dieser Typ tut uns Webdesignern einen Gefallen, indem er uns einen schönen Ort zum Nachschlagen beim Entwickeln schafft. Niemand wird deine Hand halten, während du all diese verschiedenen Sprachen lernst, also sei nicht so schnell dabei, die schlecht zu machen, die versuchen zu helfen.
Ich liebe das!!!!
@Chris Howard: Das ist 7 Jahre zu spät, aber hier, ein Band mit Schatten. Was gibt es da nicht zu lieben? https://codepen.io/anon/pen/pKpBvr
Ich liebe das absolut!!
Ich hatte letzte Woche Schwierigkeiten, das in Photoshop zu machen. und ich bin froh, dass es auch einen CSS-Weg gibt! Es sind ziemlich viele Codezeilen. Aber vielen Dank, dass du dir das alles ausgedacht hast. Du steckst wirklich viel Zeit und Mühe in deine Tutorials und Screencasts! Ich bin dir wirklich dankbar für alles, was du getan hast, Chris. Danke
– Attila
Gibt es eine Möglichkeit, dies in IE 8 und darunter zu verwenden?
Ich benutze IE8 und das Beispiel hier funktioniert nicht, aber James' Referenzlink funktioniert großartig...
http://jameskoster.co.uk/blog/pure-css-3d-ribbon/
Ich habe das CSS schnell verglichen, aber nichts Unterschiedliches gefunden... aber die Lösung ist irgendwo da.
Ich mag dieses Band, scharfe Kanten, aber die Tatsache, dass es keine Grafik verwendet, ist irgendwie inspirierend. Danke fürs Teilen.
Sie können dies mit html5shiv in IE 8 zum Laufen bringen
Wow, danke fürs Teilen, sehr interessant zu wissen.. Das ist wirklich großartig!
Ich liebe die Verwendung der Pseudoelemente – ich kann es kaum erwarten, es auszuprobieren und danke fürs Teilen.
Danke, Mann, ich liebe es!!
Danke für das Teilen.
Ich habe das ein paar Mal versucht und frage mich, wie es in einem Navigationsmenü als Leiste funktioniert.
Funktioniert sehr gut, habe gerade den Code in ein responsives Navigationsmenü mit Bootstrap implementiert! :D
Hallo,
Ich liebe dieses Tutorial. Das einzige, was ich nicht herausfinde, ist, wie ich es mit meinem WordPress-Menü implementieren kann?
Das Menü wird mit dem folgenden Code erstellt
‘header’, ‘container’ => ” ) ); ?>
Was ich nicht verstehe, ist, wie ich zusätzliche Klassen erstellen kann, um den CSS-Code hinzuzufügen?
Grüße,
Jonas
Etwas ist bei der Darstellung des Codes schiefgelaufen. Ich habe dazu ein Thema im CSS-Forum erstellt.
Ich hoffe, jemand kann mir helfen?
https://css-tricks.de/forums/discussion/13611/my-wordpress-menu-with-a-ribbon
Jonas Smets
dieses hier funktioniert, um Klassen in WordPress-Menüs hinzuzufügen
wp_nav_menu( array( ‘container_class’ => ‘menu-header’ etc
habe einige andere Modifikationen für eine Logo-Überlappung des Bandes (mit Navigation) versucht, die irgendwie nicht für andere Browser außer Firefox funktioniert (ohne CSS-Hacks).
Ich arbeite immer noch an einem Projekt mit Band-Navigation und dieses Tutorial ist wirklich hilfreich.
Credits an den Autor!
Sehr cool, ich wusste nicht, dass ich das in CSS machen kann.
Aber hat jemand einen Hack für diesen Effekt in IE8 und darunter? Denn es funktioniert in diesen Browsern nicht, was bedeutet, dass ich dies nur für persönliche Projekte und nicht für andere verwenden kann.
Ich benutze diesen Trick, um IE8 und darunter zu targeten, den ich hier gefunden habe
http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-how-to-target-ie6-ie7-and-ie8-uniquely-with-4-characters/
Ich habe die Ränder, die die Spitzen des Bandes bilden, entfernt
border: 0\9; /* IE8 und darunter */
So zeigen ältere IE-Versionen jetzt ein schlichtes Rechteck anstelle eines zerstückelten Pseudobandes. Das Band wird in allen anderen Browsern weiterhin wie oben angezeigt. Es mag langweilig sein, aber zumindest sieht es nicht kaputt aus.
@Chrizzi Das ist sehr hilfreich, danke! Gut zu wissen, dass dieser Effekt gut ausfallen kann. Super!
Ich liebe diesen Trick wirklich!
Allerdings frage ich mich, wie man diese Art von Band mit CSS erstellt
http://img822.imageshack.us/img822/4185/ribboni.jpg
Und können wir die Bandhöhe automatisch anpassen, damit ich längeren/kürzeren Textinhalt eingeben kann, ohne den CSS-Höhenparameter manuell neu anpassen zu müssen?
http://codepen.io/kayandrae/full/hquJL
Ich habe dein Bandlabel ausprobiert :)
http://jsfiddle.net/y0ehvok6/
Ich glaube, das IE8-Problem kann nicht behoben werden, aber eine Sache, die wir tun können, ist, das Band anders einzurichten, d.h. so, als ob die Seiten vor dem Inhalt wären, nicht dahinter.
Sie können dies erreichen, indem Sie einfach die Zeile z-index:-1; entfernen und ersetzen
border-color: #804f7c transparent transparent transparent;
bottom: -1em;
mit
border-color: #804f7c transparent #804f7c transparent;
oben:0;
in der .ribbon .ribbon-content:before, .ribbon .ribbon-content:after {…} Deklaration
Sie möchten vielleicht auch top:1em; auf .ribbon:before, .ribbon:after {…} setzen
Auf diese Weise bricht nichts zusammen, wenn Ihr Inhalt auf zwei Zeilen geht
Wie würde ich ein Band ohne die „Falten“ machen? Ich dachte daran, eine Seitenleiste mit einem Bandhintergrund für den Link der aktiven Seite zu machen. Etwas wie diese Form
http://www.photoshopstar.com/wp-content/uploads/2008/03/ribbon-filled-yellow.jpg
Oder... wie würde man ein Band mit beiden Seiten mit dem gleichen dreieckigen Ausschnitt machen?
Ich würde das gerne mit Listenelementen machen, nicht mit divs. Irgendwelche Ideen?
Schauen Sie sich die jacklmoore-Seite an
Das ist erstaunlich... Ich habe tatsächlich zwei Tage danach gesucht... konnte es mit Photoshop nicht herausfinden...!!!
Danke..!
Ja, ich denke, jeder liebt Bänder, auch ich. Ich frage mich, wie man dieses Band als HTML-Menü gestaltet? Benutzt man nur href? Danke.
Wenn Sie es als HTML-Menü verwenden möchten, betten Sie einfach eine
<ul>Ihrer Navigation in .ribbon-content ein. Hat sonst noch jemand Probleme damit auf Mobilgeräten? Insbesondere derz-indexscheint ignoriert zu werden, sodass die Enden des Banners über das Hauptband ragen. Es funktioniert gut auf Desktop-Browsern, aber in Chrome auf meinem Android-Handy sind die Ecken darüber.Danke für die Bereitstellung. Ich möchte dieses Ergebnis ändern, verstehe aber nicht, wie es funktioniert. Eine schrittweise Kommentierung des CSS und was jeder Teil davon tut, wäre sehr hilfreich. Hat jemand diese Art von Kommentaren erstellt?
Besonders verwirrt bin ich über die Zeilen ribbon:before, ribbon-content:before und :after im CSS
danke
Schönes Tutorial – ich habe tatsächlich einen ähnlichen Leitfaden auf meiner Website erstellt. Mein Band wickelt sich jedoch um ein Box-Element und hat auch einen Drop-Schatten. Verwendet die gleiche :before und :after Technik. http://www.designcouch.com/demos/pure-css-ribbon-banner.html
Ich bin neu bei der Erstellung von Banddesigns auf meinen Webseiten und dieses Tutorial hat mir sehr geholfen! Vielen Dank! Wie wunderbar sind deine Tutorials! Ich grüße dich!
Großartig! Genau die kleine Berührung, die mein Projekt braucht.
schöner Artikel!
Ich habe auch einen Artikel über Bänder geschrieben
http://techisquest.blogspot.com/2013/09/css-3d-ribbons-and-stitched-effect.html
Pseudo-Code, z.B. (after und before), funktioniert nicht in IE7 und IE8
Dieser nicht-semantische Protector-Code hat gerade ein Problem behoben, das ich mit schicken Box-Schatten (d.h. angehobenen Ecken) mit Pseudoelementen unter Foundation 4 habe. Sie erschienen nicht, es sei denn, die Tags
<body>und das Elternelement hatten beidebackground:none. Das Hinzufügen von{ position: relative; z-index: 1; }zum übergeordneten Div hat es behoben. Großartig!Für Leute, die IE8 immer noch targeten müssen, gibt es einen etwas weniger semantischen Ansatz, der funktioniert
Fügen Sie ein .ribbon-style-Element vor .ribbon-content ein
Verschieben Sie die Stile von .ribbon :before und :after zu .ribbon > .ribbon-style:before und :after
Entfernen Sie padding und background-color von .ribbon und wenden Sie sie auf .ribbon-content an
Hier ist ein Demo-Fiddle: http://jsfiddle.net/Sly_cardinal/m8U2t/1/
HTML
CSS
Toller Artikel!
Ich möchte dieses Beispiel anpassen, damit es mit einer Tabellenüberschrift funktioniert. Könnten Sie mir helfen?
http://jsfiddle.net/qU7Ba/1/
super, Bro!!!!!!
Ich sehe dein schickes Band, ich biete dir meins an: http://cybernext.in/
Schauen Sie sich das Band unten an.
Aufgrund der Verwendung von
z-index:-1;passt es sauber unter den Box-Schatten des übergeordneten Divs.Hier ist der Code
Meh. Ohne böse Absicht, aber da gibt es viel Überdesign.
Nichts genommen. Ich habe noch viel zu lernen..
PS: Es ist lustig, wie dein Kommentar zu deinem Bild passt
Ich würde es eher schätzen, wenn Sie Tipps dafür hätten
Vin – schön zu sehen, dass jemand für Kritik offen ist! Ich gebe sie normalerweise nicht ungefragt, da viele Leute sie persönlich nehmen.
Ein paar Tipps
Gestalte den Cursor nicht. Er ist unnötig und stört die Benutzererfahrung.
Vermeiden Sie unnötige Rahmen und Boxen. Die Trennung von Inhalten sollte durch Dinge wie Leerraum und Platzierung von Inhalten impliziert werden, nicht durch einen wörtlichen Rahmen.
Dekoration um der Dekoration willen (wie der gestrichelte Rahmen um Ihr Band) ist schlechtes Design.
Sie übertreiben mit Schatten.
Zentrieren Sie keine ungeordneten Listen; Aufzählungspunkte sollten immer ausgerichtet sein.
Lernen Sie über Leerraum und verwenden Sie ihn richtig.
Ihre 3D-Oberfläche ist eigentlich ziemlich faszinierend und könnte gut gemacht sehr schön sein.
Dies sind nur ein paar Ausgangspunkte und keine Kritik; es ist Kritik. Habe vor einiger Zeit einen Artikel darüber geschrieben.
Danke, Kumpel! Ich werde mir das merken und die Seite definitiv aktualisieren, wann immer ich Zeit dafür habe.
Gibt es eine Möglichkeit, dieses Band zu einem Hyperlink zu machen?
Ich habe geändert
Zu
Aber das funktioniert nicht
Nur ein Scherz!
Marz, das ist einfach
Setzen Sie das
<a>-Tag vor das Elternelement.Ändern Sie dies
zu diesem
Danke Chris.
Ich persönlich hasse Bänder, aber Kunden lieben sie :)
Einfache Möglichkeit, ein Band zu erstellen, http://codepen.io/jeffpowrs/pen/oaLul
Nicht schlecht. Habe deins geforkt und den Code ziemlich vereinfacht. Ich habe deinen Span und die zusätzlichen zugehörigen Pseudoelemente eliminiert, indem ich den Inhaltsbereich der verbleibenden Pseudoelemente genutzt habe.
http://codepen.io/designcouch/pen/qwEFe
Sehr toller Tipp! Danke fürs Teilen :)!
Das ist großartig! Vielen Dank! Ich hoffe, Sie könnten mir bei einem Problem helfen, das ich bei der Animation der Position dieses Bandes habe. Sehen Sie mein JSFiddle: http://jsfiddle.net/vf75sbgm/
Nochmals vielen Dank!
Wenn ich mehrere Bänder mit verschiedenen Farben verwenden möchte, wie ändere ich die Farben für jedes Band?
Wie kann ich es nach unten verschieben? Ich möchte es unter diese Box platzieren, aber wenn ich es versuche, verschwindet es einfach.
Screenshot: http://i.imgur.com/lTtuuMa.png
Es ist ein Z-Index-Problem (Schichtung), die Ränder, die verschwinden (darunter gehen), haben einen z-index-Wert von -1 und Ihre Div-Box hat einen größeren z-index-Wert. Spielen Sie mit dem z-index und Sie sollten es richtig hinbekommen. Mehr zu z-index: https://developer.mozilla.org/en/docs/Web/CSS/z-index
Ja!! Es ist großartig
Toller Band-Code. Ich weiß nicht, ob Sie Ihre alten Artikel noch überprüfen, aber ich habe festgestellt, dass, wenn Sie das Band über ein transparentes Bild legen (unabhängig davon, ob Sie dem Bild Transparenz mit CSS hinzugefügt haben oder nicht), die Bandränder halbtransparent werden. Dies geschah in der neuesten Chrome-Version zum Zeitpunkt, als ich dies schrieb.
Ich habe meine eigene Frage oben beantwortet, es liegt an der Art und Weise, wie ich den z-index gesetzt habe.
Dieser Code und die erwähnten Variationen können nicht in E-Mails verwendet werden. Siehe: https://www.xc.hu/tmp/ribbon.html
Im Allgemeinen unterstützen E-Mail-Anwendungen weniger CSS-Eigenschaften als durchschnittliche Webbrowser. Hier ist eine gute Referenz, die ich aufbewahre, wenn ich E-Mails erstelle: https://www.campaignmonitor.com/css/
Einfach, süß, wir lieben es
Es ist genial... Vielen Dank für dieses Beispiel... es hilft mir sehr.
Eine kleine Sache, die ich nicht verstanden habe, ist, wie die Form durch border-left-color: transparent; zu einem Dreieck wird?
Hallo, gibt es ein Beispiel dafür mit einem zusätzlichen div oder Container, um den sich das Band „wickelt“, sodass dieses sekundäre div eine Hintergrundfarbe oder ein Bild haben kann und dann das Band „darüber“ liegt und die Seiten über das zweite div hinausragen?
Hey! Möglicherweise müssen Sie ein wenig damit herumspielen, aber hier ist ein möglicher Ansatz