Heim >Web-Frontend >CSS-Tutorial >Kann CSS ein Seitenverhältnis von 1:1 aufrechterhalten, indem es Elementhöhe und -breite dynamisch anpasst?

Kann CSS ein Seitenverhältnis von 1:1 aufrechterhalten, indem es Elementhöhe und -breite dynamisch anpasst?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 16:40:11408Durchsuche

Can CSS Maintain a 1:1 Aspect Ratio by Dynamically Matching Element Height to Width?

Höhe und Breite im CSS-Fluid-Layout dynamisch anpassen

In einem Fluid-CSS-Layout können Elemente ihre Größe automatisch an den verfügbaren Platz anpassen . Dies kann eine Herausforderung darstellen, wenn versucht wird, ein bestimmtes Seitenverhältnis wie ein Quadrat oder ein Rechteck beizubehalten.

Frage:

Kann CSS verwendet werden, um die Höhe festzulegen? Ein Element muss die gleiche Breite wie seine Breite haben und ein 1:1-Aspekt beibehalten Verhältnis?

Beispiel:

Betrachten Sie ein Containerelement und ein verschachteltes div-Element mit der folgenden Struktur und Layout:

+----------+
| body     |
| 1:3      |
|          |
| +------+ |
| | div  | |
| | 1:1  | |
| +------+ |
|          |
|          |
|          |
|          |
|          |
+----------+

CSS:

div {
  width: 80%;
  height: same-as-width
}

Lösung:

Während es nicht möglich ist, die Höhe festzulegen Um die Breite explizit nur mit CSS anzupassen, kann eine Problemumgehung mithilfe eines Dummy-Elements und einer cleveren Lösung erreicht werden Positionierung.

#container {
  display: inline-block;
  position: relative;
  width: 50%;
}

#dummy {
  margin-top: 75%;
  /* 4:3 aspect ratio */
}

#element {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: silver/* show me! */
}
<div>

Indem wir die Eigenschaft „margin-top“ für das Dummy-Element verwenden und sie auf 75 % festlegen (um einem Seitenverhältnis von 4:3 zu entsprechen), erstellen wir eine Referenz für die Höhe. Das Element wird dann absolut innerhalb dieser Referenzfläche positioniert, sodass sich eine Höhe ergibt, die seiner Breite entspricht.

Das obige ist der detaillierte Inhalt vonKann CSS ein Seitenverhältnis von 1:1 aufrechterhalten, indem es Elementhöhe und -breite dynamisch anpasst?. 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