Heim > Artikel > Web-Frontend > Wie erstelle ich mit CSS dreieckige Bilder mit Hintergrundbildern?
In diesem Projekt wollen wir zwei dreieckige Bilder mit Hintergrundbildern erstellen, die als Links fungieren. Das Designmodell zeigt diese Dreiecke in einer bestimmten Anordnung:
[Bild dreieckiger Bilder mit Hintergrundbildern]
Anfangs haben wir versucht, dies mithilfe von Divs und der Anwendung von Hintergrundbildern auf sie zu erreichen. Dieser Ansatz stellte jedoch eine Herausforderung dar, da man mit der Maus über den transparenten Teil des Bildes fahren musste, um den zugrunde liegenden Link zu erreichen.
Ja, das ist möglich Erstellen Sie dieses Design mithilfe von CSS3-Dreiecken und legen Sie deren Hintergrundbilder fest. Die benutzerdefinierten Formen werden tatsächlich mithilfe von Rahmen mit einer bestimmten Rahmenfarbe erstellt.
Hier ist der Code, der zum Implementieren der dreieckigen Bilder mit Hintergrundbildern mithilfe von CSS erforderlich ist :
.pageOption { position: relative; width: 900px; height: 600px; } .pageOption .photo { position: absolute; top: 0px; left: 0px; width: 900px; height: 600px; background: url('../images/menuPhoto.png') no-repeat 0 0; } .pageOption .cinema { position: absolute; bottom: 0px; right: 0px; width: 900px; height: 600px; background: url('../images/menuCinema.png') no-repeat 0 0; }
Ein alternativer Ansatz besteht darin, untergeordnete Bilder für zu verwenden Links anstelle von Hintergrundbildern. Dazu gehört das Verzerren der .option-Elemente mit unterschiedlichen Transformationsursprüngen, das Aufheben der Verzerrung ihrer untergeordneten Bilder und das Festlegen von „overflow: versteckt“ sowohl für das .pageOption- als auch das .option-Element.
HTML:
<div>
CSS:
.pageOption { overflow: hidden; position: relative; width: 40em; height: 27em; } .option, .option img { width: 100%; height: 100%; } .option { overflow: hidden; position: absolute; /* arctan(27 / 40) = 34.01935deg * need to skew by 90deg - 34.01935deg = 55.98065deg */ transform: skewX(-55.98deg); } .option:first-child { left: -.25em; transform-origin: 100% 0; } .option:last-child { right: -.25em; transform-origin: 0 100%; } .option img { transform: skewX(55.98deg); transform-origin: inherit; }
Dieser Ansatz bietet eine Sauberere Lösung mit verbesserter Unterstützung für verschiedene Browser, außer IE8/7 und Opera Mini.
Das obige ist der detaillierte Inhalt vonWie erstelle ich mit CSS dreieckige Bilder mit Hintergrundbildern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!