Как сделать изображение подходящим для контейнера для слайд-шоу? - PullRequest
0 голосов
/ 21 июня 2019

Я пытался сделать фотографию, чтобы заполнить div, который является контейнером для слайд-шоу.Кажется, я не могу этого добиться, и я уверен, что мне не хватает каких-то мелких деталей.

Я попытался изменить настройки ширины и высоты для изображения, а также для самого контейнера.

CSS

img {width: 100%;
    height: 50%;}

.slideshow-container {
  max-width: 1000px;
  margin: auto;
}

.slideshow-container div { 
    margin: 0px auto;
    width: 100%;
    text-align: center;}
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
}

.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}

.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active, .dot:hover {
  background-color: #717171;
}

.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

HTML

<div class="slideshow container">

        <div class="mySlides">
            <img src="images/education.jpg" alt="children doing classwork">
            <div class="text">Education</div>
        </div>

        <div class="mySlides">
            <img src="images/family.jpg" alt="a mother father and son at the beach">
            <div class="text">Family</div>
        </div>

        <div class="mySlides">
            <img src="images/community.jpg" alt="community standing together">
            <div class="text">Community</div>
        </div>

        <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
        <a class="next" onclick="plusSlides(1)">&#10095;</a>
    </div>
    <br>
    <div style="text-align: center;">
        <span class="dot" onclick="currentSlide(1)"></span>
        <span class="dot" onclick="currentSlide(2)"></span>
        <span class="dot" onclick="currentSlide(3)"></span>
    </div>

Всякий раз, когда я изменяю ширину на 100%, все изображение становится больше, чем размер экрана.Я хочу, чтобы изображение занимало 100% ширины, но только около 50% высоты всего экрана.Я думаю, может быть, размер контейнера нужно изменить, но я тоже пытался, но безрезультатно.Другое дело, что если я не оставлю ширину на 100%, изображение перестанет реагировать на экран разных размеров.Об этом нужно помнить при оказании помощи.

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

У вас есть 2 небольшие проблемы, которые нужно исправить:

Во-первых, нужно уместить mySlides Высота класса, чтобы он составлял 50% экрана.

примерно так:

.slideshow-container .mySlides img {
  width: 100%;
  height: 100%
  object-fit: cover;
}

.slideshow-container {
  max-width: 1000px;
  margin: auto;
}

.slideshow-container .mySlides {
  margin: 0px auto;
  width: 100%;
  text-align: center;
height: 50vh;
}

в img: я использовал 100% для ширины и высоты и подгонки обложки, чтобы она закрывала свой контейнер.

для mySlides div: я использовал высоту 50vh, чтобы она соответствовала половине высоты экрана.

вы можете просто изменить его и сделать его статичным: например: height: 500px;

0 голосов
/ 21 июня 2019

U может использовать для этого подгонку объекта. Ваш код должен выглядеть так:

.slideshow-container img
{
  object-fit: cover;
}

Ссылка на документы MDN

...