Bootstrap Carousel 이미지가 제대로 정렬되지 않음


93

다음 이미지를보세요. 부트 스트랩 캐 러셀을 사용하여 이미지를 회전하고 있습니다. 그러나 창 너비가 크면 이미지가 테두리와 제대로 정렬되지 않습니다.

그러나 부트 스트랩에서 제공하는 캐 러셀 예제는 창 너비에 관계없이 항상 잘 작동합니다. 코드를 따르십시오.

누군가 캐 러셀이 다르게 작동하는 이유를 설명 할 수 있습니까? 이것이 이미지 크기와 관련이 있습니까? 아니면 일부 부트 스트랩 구성이 누락 되었습니까?

<section id="carousel">
<div class="hero-unit span6 columns">
    <h2>Welcome to TACT !</h2>
    <div id="myCarousel" class="carousel  slide" >
      <!-- Carousel items -->
      <div class="carousel-inner">
        <div class="item  active" >
            <img alt=""  src="/eboxapps/img/3pp-1.png">
            <div class="carousel-caption">
                <h4>1. Need a 3rd party jar?</h4>
            </div>
        </div>
        <div class="item">
            <img alt=""  src="/eboxapps/img/3pp-2.png">
            <div class="carousel-caption">
                <h4>2. Create Request</h4>
            </div>
        </div>
        <div class="item">
            <img alt=""  src="/eboxapps/img/3pp-3.png">
            <div class="carousel-caption">
                <h4>3. What happens?</h4>
            </div>
        </div>
        <div class="item">
            <img alt=""  src="/eboxapps/img/3pp-4.png">
            <div class="carousel-caption">
                <h4>4. Status is Emailed</h4>
            </div>
        </div>
      </div>
      <!-- Carousel nav -->
      <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
      <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>
    </div>
</div>

회전 목마 이미지


모든 이미지의 너비가 같습니까? 또한 .span6컨테이너 까지 뻗어 있습니까?
Andres Ilich

1
내 이미지는 모두 너비와 높이가 같습니다. 그들 모두가 늘어나는 것 같습니다. 문제를 해결하기 위해 부트 스트랩 예제에서 제공 한 것과 동일한 크기의 이미지를 만들려고했습니다. 그러나 그것은 크기를 완전히 엉망으로 만들었습니다. 그래서 이미지 크기와 CSS 스타일 사이에 링크가 있다고 생각합니다. 그러나 문서는 관계를 완전히 설명하지 않습니다.
Nambi

나는 또한이 문제에 부딪 쳤고 매우 실망 스러웠습니다. 저에게는 캐 러셀을 포함하는 div가 캐 러셀보다 더 넓은 고정 너비를 가지고 있기 때문에 발생했습니다.
WuTheFWasThat

아마도 이메일 주소를 숨기는 것이 좋은 생각
이었을

답변:


160

해결책은이 CSS 코드를 사용자 정의 CSS 파일에 넣는 것입니다.

.carousel-inner > .item > img {
  margin: 0 auto;
}

1
이것은 나를 위해 일했습니다! 나는 vekozlov 방법을 시도했지만 작동하지 않았습니다. 덕분에 많이
아 - SHIANG 한

캐 러셀 의 높이는 이미지 의 높이 에 따라 변경되므로 CSS로 고정 너비를 정의해야합니다.
QuantumHive 2015

감독자! 바라건대 이것은 .carousel-img-center와 같은 '내장'BS 클래스가 될 것입니다.
CodeFinity 2015-06-03

나는 여백을 다할 것입니다하지만 추가 발견 height:none.carousel-inner > .item > img대한 기본보다 더 나은 결과를 얻을 수height:500px
CrandellWS

.carousel-inner > .carousel-item > img { margin: 0 auto; }Bootstrap 4를 위해 해야합니다 .
Expenzor

125

부트 스트랩 3에서는 반응 형 및 중앙 클래스를 추가하기 만하면됩니다.

 <img class="img-responsive center-block" src="img/....jpg" alt="First slide">

이렇게하면 이미지 크기가 자동으로 조정되고 사진이 중앙에 배치됩니다.

편집하다:

부트 스트랩 4에서는 img-fluid클래스를 추가하기 만하면 됩니다.

<img class="img-fluid" src="img/....jpg">

9
아무 소용이없는 최고 투표 솔루션을 시도했습니다. 이것은 훨씬 더 깨끗하고 간단하며 효과적입니다. 감사합니다!
Kyle

2
얇고 깨끗합니다. 감사합니다
chiefenne

2
감사합니다. 나는 전에 이것을 봤는데 대답이 없었 음을 맹세한다. 이것은 곧바로 작동했다.
Chud37

부트 스트랩 4를 사용하고 있으며 img-fluid 클래스가 이미지를 중앙에 배치하지 않습니다. 그들은 모두 왼쪽으로 정당화됩니다.
Malchesador 2017

2
@iaacp 단지 추가 text-center받는 <div class="carousel-item">시작 태그
deanwilliammills

18

나는 같은 문제에 직면하여 다음과 같이 해결했다. 이미지가 아닌 콘텐츠를 Carousel에 삽입 할 수 있으므로 사용할 수 있습니다. 먼저 div.inner-item(중앙 정렬을 할 위치)를 삽입 한 다음이 div 안에 이미지를 삽입해야합니다.

다음은 내 코드 (Ruby)입니다.

<div id="myCarousel" class="carousel slide">
    <!-- Carousel items -->
    <div class="carousel-inner">
        <div class="active item">
            <%= image_tag "couples/1.jpg" %>
        </div> 
        <% (2..55).each do |t|%>
            <div class="item">
                <div class='inner-item'>
                    <%= image_tag "couples/#{t}.jpg" %>
                </div>
            </div> 
        <% end -%>
    </div>
    <!-- Carousel nav -->
    <a class="carousel-control left" href="#myCarousel" data-slide="prev">&lsaquo;</a>
    <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>
</div>

그리고 내 CSS 코드 (.scss) :

.inner-item {
    text-align: center;
    img {
        margin: 0 auto;
    }
}

이 CSS는 회전 목마의 이미지의 높이를 고정 할뿐만 아니라, 나를 위해 큰 일
SporkInventor

6

하지만 vekozlov 의 대답은 이미지를 중앙에 부트 스트랩 3에서 작동 회전 목마가 축소 될 때, 그것은 깰 것 : 이미지가 회전 목마 아래로 확장하는 대신 크기를 유지합니다.

대신 최상위 캐 러셀에서 div다음을 수행하세요 .

<div id="my-carousel" class="carousel slide"
    style="max-width: 900px; margin: 0 auto">
    ...
</div>

이렇게하면 전체 캐 러셀이 중앙에 배치되고 이미지 너비 (예 : 900 픽셀 또는 원하는대로 설정)를 초과하는 것을 방지 할 수 있습니다. 그러나 캐 러셀이 축소되면 이미지도 함께 축소됩니다.

물론이 스타일 정보를 CSS / LESS 파일에 넣어야합니다.


3

Bootstrap 4에서는 태그 에 mx-auto클래스를 추가 할 수 있습니다 img.

예를 들어 이미지의 너비가 75 %이면 다음과 같이 표시됩니다.

<img class="d-block w-75 mx-auto" src="image.jpg" alt="First slide">

Bootstrap은 다음으로 자동 번역 mx-auto됩니다.

ml-auto, .mx-auto {
    margin-left: auto !important;
}

.mr-auto, .mx-auto {
    margin-right: auto !important;
}

1

그것은 당신의 스타일과 관련이있을 수 있습니다. 제 경우에는 상위 "item"div 내에서 링크를 사용하고 있으므로 다음과 같이 스타일 시트를 변경해야했습니다.

.carousel .item a > img {
  display: block;
  line-height: 1;
}

기존 부 스트랩 코드 아래 :

.carousel .item > img {
  display: block;
  line-height: 1;
}

내 이미지는 다음과 같습니다.

<div class="active item" id="2"><a href="http://epdining.com/eats.php?place=TestRestaurant1"><img src="rimages/2.jpg"></a><div class="carousel-caption"><p>This restaurant is featured blah blah blah blah blah.</p></div></div>

1

해결책이 있다고 생각합니다.

개인 스타일 시트 페이지에서 이미지 크기 와 일치하도록 너비와 높이를 지정하십시오 .

스팬이있는 공간에 적합한 최상위 div에 별도의 추가 "클래스"를 만듭니다 (아래 참조).

        <div class="span6 columns" class="carousel">
            <div id="myCarousel" class="carousel slide">
                <div class="carousel-inner">
                <div class="item active">

자신의 스타일 시트에서 bootstrap.css를 건드리지 않고 "carousel"(또는 선택한 레이블)을 호출하여 원본 픽스의 너비와 높이를 일치 시키십시오!

.carousel       {
            width: 320px;
            height: 200px;

}

그래서 제 경우에는 작은 320x200 이미지를 캐 러셀에 사용하고 있습니다. bootstrap.css에 미리 설정된 크기가있을 수 있지만, 향후 릴리스에서 최신 상태를 유지하려고 할 수 있도록 변경하는 것을 좋아하지 않습니다. 이게 도움이 되길 바라 ~~


1

나는 당신과 같은 문제에 직면하고 있습니다. @thuliha의 힌트를 기반으로 다음 코드가 내 문제를 해결했습니다.

에서 html파일, 다음 샘플과 같이 수정합니다 :

<img class="img-responsive center-block" src=".....png" alt="Third slide">

에서 carousel.css클래스를 수정 :

.carousel .item {
  text-align: center;
  height: 470px;
  background-color: #777;
}

1

이 시도

    .item img{
      max-height: 300px;
      margin: auto;
    }

StackOverflow에 오신 것을 환영합니다! 이것이 질문을 어떻게 해결하는지 조금 설명한다면 당신의 대답은 많은 도움이 될 수 있습니다. 코드 전용 답변은 그렇게 잘받지 못합니다.
René Vogt

0

이미지의 너비가 span6과 정확히 460px입니까? 제 경우에는 이미지 크기가 다른 경우 이미지에 높이 속성을 지정하여 이미지가 모두 같은 높이이고 회전식 메뉴가 이미지 사이의 크기를 조정하지 않도록합니다.

귀하의 경우이 높이와 캐 러셀 내부 div의 너비 사이의 비율이 이미지의 aspectRatio와 같도록 높이를 설정하십시오.


도움이되지 않습니다. 이미지 형식이 중요하다고 생각하십니까? 부트 스트랩 예제는 PNG 파일을 사용하는 JPEG 파일을 사용합니다. 그게 어떤 차이가 있습니까?
Nambi

0

@Art L. Richards의 솔루션이 작동하지 않았습니다. 이제 bootstrap.css에서 원본 코드는 이렇게되었습니다.

.carousel .item > img {
  display: block;
  line-height: 1;
}

@ rnaka530의 코드는 부트 스트랩의 유동적 기능을 손상시킬 것입니다.

나는 좋은 해결책이 없지만 그것을 고쳤습니다. 나는 부트 스트랩의 캐 러셀 예제를 매우주의 깊게 관찰했다 . http://twitter.github.com/bootstrap/javascript.html#carousel .

img 너비가 그리드 너비보다 커야한다는 것을 알았습니다. 에서 span9당신이 870px보다 이미지가 더 준비해야하므로, 최대 870px에있다 폭. 모든 컨테이너에 테두리 또는 여백이 있으므로 img 외부에 컨테이너가 더 많은 경우 너비가 더 작은 이미지를 사용할 수 있습니다.


0

캐 러셀의 경우 모든 이미지의 높이와 너비가 정확히 같아야한다고 생각합니다.

또한 부트 스트랩에서 스캐 폴딩 페이지를 다시 참조하면 span16 = 940px임을 확신합니다. 이 점을 염두에두고 우리는

<div class="row">
     <div class="span4"> 
        <!--left content div guessing around 235px in width -->
     </div>
     <div class="span8">
        <!--right content div guessing around 470px in width -->
     </div>
</div>

예, 행 내에서 범위 공간을 설정할 때주의해야합니다. 이미지 너비가 크면 div를 다음 "행"으로 보내므로 재미가 없습니다.

링크 1


0

캐 러셀이있는 CSS 상위 div 클래스에 이것을 삽입합니다.

<div class="parent_div">
     <div id="myCarousel" class="carousel slide">
            <div class="carousel-inner">
              <div class="item active">
                <img src="assets/img/slider_1.png" alt="">
                <div class="carousel-caption">
                </div>
              </div>
            </div>
     </div>      
</div>

CSS

.parent_div { 
margin: 0 auto;
min-width: [desired width];
max-width: [desired width];
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.