Heim >Web-Frontend >CSS-Tutorial >Wie erstelle ich mit CSS dreieckige Bilder mit Hintergrundbildern?

Wie erstelle ich mit CSS dreieckige Bilder mit Hintergrundbildern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 19:28:021147Durchsuche

How to Create Triangular Images with Background Images Using CSS?

Dreieckige Bilder mit Hintergrundbildern mithilfe von CSS erstellen

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.

CSS3-Dreiecke mit Hintergrundbildern: Eine praktikable Lösung

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.

Code-Implementierung für CSS3-Dreiecke mit Hintergrundbildern

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;
}

Alternativer Ansatz unter Verwendung von untergeordneten Bildern und Skew-Transformation

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn