<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CSS Aspect Ratio: A Game Changer for Responsive Design</title> <style> /* Key Takeaways Section Styling */ .key-takeaways { margin-bottom: 2em; } .key-takeaways ul { list-style-type: disc; padding-left: 20px; } /* Image Styling */ img { max-width: 100%; height: auto; display: block; /* Prevents extra whitespace below images */ margin: 1em 0; } /* Code Example Styling */ pre { background-color: #f4f4f4; padding: 1em; border-radius: 5px; overflow-x: auto; /* Add horizontal scroll if needed */ } code { font-family: monospace; } /* Section Headings */ h2, h3 { margin-top: 2em; margin-bottom: 1em; } /* Responsive YouTube Video */ .responsive-youtube { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; } .responsive-youtube iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } /* Responsive Image Gallery */ .image-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Responsive grid */ grid-gap: 10px; } .image-gallery img { aspect-ratio: 1/1; /* Square images */ object-fit: cover; } /* Cara Menggunakan CSS Aspect-Ratio Styling */ .avatar-container { display: flex; align-items: center; } .avatar { width: 100px; height: 100px; aspect-ratio: 1/1; border-radius: 50%; overflow: hidden; margin-right: 1em; } .avatar img { object-fit: cover; width: 100%; height: 100%; } </style> </head> <body> <h1>Mastering CSS Aspect Ratio for Responsive Web Design</h1> <section class="key-takeaways"> <h2>Key Takeaways</h2> <ul> <li>The <code>aspect-ratio</code> property simplifies creating responsive elements by specifying width-to-height ratios in a single line of code.</li> <li>It streamlines responsive YouTube videos, avatars, and image galleries, eliminating complex CSS workarounds.</li> <li>It pairs well with <code>object-fit</code> for consistent avatar sizes regardless of image ratios.</li> <li>It supports <code>var()</code>, <code>calc()</code>, and floating-point numbers, setting a "preferred" constraint.</li> <li>It's widely supported in modern browsers, with the padding hack as a reliable fallback for older browsers.</li> </ul> </section> <section> <h2>Understanding Aspect Ratio's Importance</h2> <p>While web design often favors fluidity, maintaining specific width-to-height ratios is crucial for elements like responsive videos, image galleries, and avatars. The <code>aspect-ratio</code> property provides an elegant solution.</p> </section> <section> <h2>Practical Applications</h2> <h3>Responsive YouTube Videos</h3> <p>Traditionally, responsive YouTube embeds required the "padding hack." <code>aspect-ratio</code> simplifies this significantly.</p> <h4>Padding Hack (Traditional Method)</h4> <pre class="brush:php;toolbar:false"><code> <div class="responsive-youtube"> <iframe width="560" height="315" src=""></iframe> </div> .responsive-youtube { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; } .responsive-youtube iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
<code> <iframe src=""></iframe> iframe { width: 100%; aspect-ratio: 16/9; } </code>
aspect-ratio
object-fit
<code> <ul class="image-gallery"> <li><img src="image1.jpg" alt=""></li> <li><img src="image2.jpg" alt=""></li> <li><img src="image3.jpg" alt=""></li> </ul> .image-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); grid-gap: 10px; } .image-gallery img { aspect-ratio: 1/1; object-fit: cover; } </code>
aspect-ratio
object-fit
beberapa teks mengenai avatar.
<code> <div class="avatar-container"> <div class="avatar"> <img src="avatar.jpg" alt="Cara Menggunakan CSS Aspect-Ratio"> </div> <p>Some text about the avatar.</p> </div> .avatar { width: 100px; height: 100px; aspect-ratio: 1/1; border-radius: 50%; overflow: hidden; } .avatar img { object-fit: cover; width: 100%; height: 100%; } </code>
meneroka menggunakan
, pada bekas membolehkan pengendalian limpahan kandungan. var()
calc()
aspect-ratio
aspect-ratio
Harta overflow: auto
Atas ialah kandungan terperinci Cara Menggunakan CSS Aspect-Ratio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!