На моей странице я хочу иметь раздел героя с изображением (рисунок), и я хочу, чтобы он имел ту же ширину (100% страницы), но регулируемую высоту (так как я изменяю размер своего окна).
Но по какой-то причине высота моего изображения достигает максимума 400 пикселей (что также является минимальной высотой), что приводит к растянутому изображению, например:
Вот мой код (использует Булму):
.hero { background: url("https://cdn-images-1.medium.com/max/1600/1*XI3beonBnOwp-y5BwNOqCw.gif"); background-size: 100% 100%; background-repeat: no-repeat; min-height:400px; }
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" rel="stylesheet"/> <body class="has-navbar-fixed-top"> <nav class="navbar is-info is-fixed-top"> <div class="container has-text-centered"> <div class="navbar-brand" style="flex-grow: 1; justify-content: center;"> <a class="navbar-item" href="https://bulma.io" > <img src="https://vignette.wikia.nocookie.net/narutofanon/images/c/cc/Fdl-logo.svg/revision/latest?cb=20130812063152"> </a> </div> </div> </nav> <section class="hero is-large has-text-centered"> </section> </body>
Вот JSFIDDLE: https://jsfiddle.net/8xjtknaf/2/
Есть ли способ, я могу избежать установки значения минимальной высоты, потому что он просто чувствуетHacky.Есть ли правильный способ для моего кода определить размер моего изображения и масштабировать его соответственно?
После того как вы проверили комментарий @ xRdev_38, вы можете разместить изображение на текущем экране без полосы прокрутки.
.hero1 { width: 100%; height: 100vh; margin: 0 auto; overflow: hidden; position: relative; } .hero1 img { width: 100%; height: 100%; object-fit: cover; position: relative; }
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" rel="stylesheet"/> <body> <nav class="navbar is-info is-fixed-top"> <div class="container has-text-centered"> <div class="navbar-brand" style="flex-grow: 1; justify-content: center;"> <a class="navbar-item" href="https://bulma.io" > <img src="https://vignette.wikia.nocookie.net/narutofanon/images/c/cc/Fdl-logo.svg/revision/latest?cb=20130812063152"> </a> </div> </div> </nav> <section class="hero1"> <img src="https://cdn-images-1.medium.com/max/1600/1*XI3beonBnOwp-y5BwNOqCw.gif" alt=""> </section> </body>
Проверьте object-fit и overflow в CSS.object-fit: cover обеспечивает ваш img для идеального размещения на экране.И overflow: hidden удаляет края img, которые находятся за пределами экрана.
object-fit
overflow
object-fit: cover
img
overflow: hidden
И лично я не рекомендую использовать background-image, если только вам это действительно не нужно.Будет трудно дать значения, как в этом случае.
background-image
Кроме того, эта статья поможет вам понять единицы измерения длины CSS.