Ich betrachte CSS gerne als eine Liebessprache. Wenn sie gut geschrieben ist, kann sie so schön sein wie Poesie. Es gibt Regeln, Semantik und, wie die Liebe selbst, kann sie auf viele Arten kommuniziert werden. Betrachten Sie die Vielfalt der Optionen, die wir haben, um black in CSS zu schreiben.
#000000#000rgb(0, 0, 0)hsla(360, 100%, 0%, 1)black
Im Geiste des Valentinstags dachte ich, es wäre lustig, dieses Konzept mit den vielen Möglichkeiten, wie wir Herzen in HTML & CSS erstellen können, noch weiter zu treiben.
Ein einfaches Hintergrundbild
Wir können ein Bild eines Herzens aufrufen und es als Hintergrund eines Elements festlegen.
.heart {
background-image: url("heart.png");
background-size: 100%;
background-repeat: no-repeat;
}
Siehe den Pen I Heart You – Background Image von CSS-Tricks (@css-tricks) auf CodePen.
HTML & ASCII-Symbole
Das ist richtig. Wir können das Web für uns zeichnen lassen.
.heart {
content: '♥';
}
Siehe den Pen I Heart You – ASCII von CSS-Tricks (@css-tricks) auf CodePen.
CSS-Form
Herzen sind im echten Leben kompliziert, aber in CSS sind sie nur zwei Kreise und ein gedrehtes Quadrat.

Das können wir dank der ::before und ::after Pseudo-Elemente mit einem einzigen Element zeichnen.
.heart {
background-color: red;
display: inline-block;
height: 30px;
margin: 0 10px;
position: relative;
top: 0;
transform: rotate(-45deg);
width: 30px;
}
.heart:before,
.heart:after {
content: "";
background-color: red;
border-radius: 50%;
height: 30px;
position: absolute;
width: 30px;
}
.heart:before {
top: -15px;
left: 0;
}
.heart:after {
left: 15px;
top: 0;
}
Siehe den Pen I Heart You – CSS Shape von CSS-Tricks (@css-tricks) auf CodePen.
Icon Font
Icon Fonts wurden in einem Käfigkampf mit Inline-SVG verprügelt, aber hier erfüllen sie immer noch ihren Zweck. Wir bräuchten unser Herz-Symbol in verschiedenen Schriftdateiformaten und würden es mit @font-face anwenden, aber wir werden die We Love Icon Fonts-Seite verwenden, um dies für uns zu generieren.
@import url(http://weloveiconfonts.com/api/?family=entypo);
[class*="entypo-"]:before {
font-family: 'entypo', sans-serif;
color: red;
}
Siehe den Pen I Heart You – Icon Font von CSS-Tricks (@css-tricks) auf CodePen.
Inline SVG
Okay, das ist zwar nicht gerade CSS, aber wir bei CSS-Tricks lieben SVG.
I
<svg class="heart" viewBox="0 0 32 29.6">
<path d="M23.6,0c-3.4,0-6.3,2.7-7.6,5.6C14.7,2.7,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,9.5,11.9,16,21.2
c6.1-9.3,16-12.1,16-21.2C32,3.8,28.2,0,23.6,0z"/>
</svg>
You
Fügen wir eine Pulsanimation hinzu, nur als Ausrede, um etwas CSS einzustreuen.
.heart {
fill: red;
position: relative;
top: 5px;
width: 50px;
animation: pulse 1s ease infinite;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.3); }
100% { transform: scale(1); }
}
Siehe den Pen I Heart You – SVG von CSS-Tricks (@css-tricks) auf CodePen.
Teilt die Liebe
Zweifellos gibt es noch mehr Wege, dies zu tun. Teilt eure Pens in den Kommentaren und wir werden sie zur Sammlung hinzufügen.
Und natürlich einen schönen (etwas verspäteten) Valentinstag!
Vgl. https://archive.google.com/heart/ :)
Was, keine radialen und linearen Gradienten-Tricks? Komm schon, es ist schwer, aber machbar.
Emojis werden in den Kommentaren entfernt? :( Traurig
bin nur überrascht über die Verwendung von :after und :before hier. Daumen hoch :)
LOL, toller Valentinstagsartikel!
Wenn ich ein sich drehendes Rad für http://carssimplified.com/ machen wollte, gibt es irgendein Zahnradelement, das ich auf einen Kreis rotieren könnte, um den Effekt eines sich drehenden Rades zu erzielen, oder müsste ich etwas wirklich Kompliziertes mit rotierenden Rechtecken bauen, die auf einem Kreis gestapelt sind?
Hallo Kelli, gute Frage. Ich würde wahrscheinlich mit SVG für so etwas anfangen und die Pfade animieren, die sich drehen müssen. Icomoon ist ein guter Ausgangspunkt für einfache SVG-Formen.
Wie wäre es mit gestrichelten Rändern und Transform Rotate?
Abhängig von den Bedürfnissen auf demselben Element oder vor/nach?
Ich sprach also über Farbverläufe und hier ist mein Versuch, sie zu verwenden :)
http://codepen.io/MaxArt2501/pen/yerNRw
Das ist jetzt beeindruckend.
Verdammt ja, das ist großartig!
Nur zur Klarstellung: Dies ist nur ein Proof of Concept. Hintergrundverläufe sind ziemlich schrecklich, wenn es um Rundungen und Aliasing usw. geht, *besonders* in Webkit/Blink, wo sie schlichtweg *schrecklich* sind.
Man kann sogar einen oder zwei fehlende Punkte in der Mitte des Herzens oder eine ganze Linie in der Mitte erkennen, selbst wenn die Mathematik hinter der Komposition stimmt.
Firefox ist der Client, der Verläufe am besten beherrscht, aber immer noch nicht perfekt ist.
Einige Zelda-Herzen für die Sammlung: http://codepen.io/edmundojr/pen/raZgdw
Frohen Valentinstag!
Ich liebe Inline-SVG.. vielen Dank <3
Hallo,
Schöner Beitrag!
Ich habe im Dezember mein eigenes CSS-Herz basierend auf dem von Twitter erstellt und dies in einem Beitrag niedergeschrieben, um zu erklären, wie: https://medium.com/@OxyDesign/twitter-s-heart-animation-in-full-css-b1c00ca5b774
Und der Codepen ist hier: http://codepen.io/OxyDesign/pen/avXVbo
Fügt es gerne hinzu, wenn es von Interesse ist
Danke
Nicolas
Schön!
Ich habe die CSS-Form-Illustration in Feedly gesehen und bin sofort losgelaufen, um mein eigenes Herz zu basteln, bevor ich den Artikel überhaupt gelesen habe! Viel lustiger Kram. Ich werde mit einigen anderen Techniken herumspielen müssen :)
http://codepen.io/Rykus0/pen/xZejNm
Ich mag Ihr rechteckiges Element mit pseudo-Kreiselementen, um ein Herz zu bilden, aber ich denke, es könnte etwas besser aussehen, wenn man ein Rechteck mit abgerundeten Ecken an zwei Ecken und ein ::after-Element mit demselben, aber gedreht verwendet.
Hier ist eine Code-Demo
http://codepen.io/mikeellisnz/pen/QyRNwg
Dadurch erhält es mehr eine ausgeprägte Herzform.
Ist diese Probe eine Möglichkeit, „Ich liebe dich“ zu lesen?
das ist falsch -> animation: pulse 1s ease infinite,
Es sollte mit ; enden NICHT mit einem Komma.
John Gietze schrieb mit einigen Keyframes, um den Sinusrhythmus in CSS zu erzeugen!