Próbuję uzyskać obraz pasujący do elementu div o określonym rozmiarze. Niestety obraz nie jest z nim zgodny i zamiast tego proporcjonalnie zmniejsza się do rozmiaru, który nie jest wystarczająco duży. Nie jestem pewien, jaki jest najlepszy sposób, aby dopasować obraz do jego wnętrza.
Jeśli to nie wystarczy, z przyjemnością dostarczę więcej i jestem otwarty na naprawienie innych błędów, które przeoczę.
Oto kod HTML
<div class="span3 top1">
<div class="row">
<div class="span3 food1">
<img src="images/food1.jpg" alt="">
</div>
</div>
<div class="row">
<div class="span3 name1">
heres the name
</div>
</div>
<div class="row">
<div class="span3 description1">
heres where i describe and say "read more"
</div>
</div>
</div>
Mój CSS
.top1{
height:390px;
background-color:#FFFFFF;
margin-top:10px;
}
.food1{
background-color:#000000;
height:230px;
}
.name1{
background-color:#555555;
height:90px;
}
.description1{
background-color:#777777;
height:70px;
}
html
css
twitter-bootstrap
smilefreak24
źródło
źródło
Odpowiedzi:
Możesz wyraźnie zdefiniować
width
iheight
obrazów, ale wyniki mogą nie być najlepiej wyglądające..food1 img { width:100%; height: 230px; }
jsFiddle
... zgodnie z komentarzem możesz też po prostu zablokować dowolny
overflow
- zobacz ten przykład, aby zobaczyć obraz ograniczony wysokością i obcięty, ponieważ jest zbyt szeroki..top1 { height:390px; background-color:#FFFFFF; margin-top:10px; overflow: hidden; } .top1 img { height:100%; }
źródło
width:100%;
jestmax-width:100%;
i lepiej wszystkie są w klasieimg-responsive
BS3 lubimg-fluid
BS4.Spróbuj w ten sposób:
<div class="container"> <div class="col-md-4" style="padding-left: 0px; padding-right: 0px;"> <img src="images/food1.jpg" class="img-responsive"> </div> </div>
AKTUALIZACJA:
W Bootstrap 4
img-responsive
staje sięimg-fluid
, więc rozwiązaniem wykorzystującym Bootstrap 4 jest:<div class="container"> <div class="col-md-4 px-0"> <img src="images/food1.jpg" class="img-fluid"> </div> </div>
źródło
img-fluid
teraz, nieimg-responsive
To tylko ostrzeżenie, którego Bootstrap 4 używa teraz
img-fluid
zamiastimg-responsive
, więc sprawdź dokładnie, której wersji używasz, jeśli masz problemy.źródło
img-fluid
czy to ! Dzięki !Po prostu dodaj klasę
img-responsive
do swojegoimg
tagu, będzie ona stosowana w bootstrap 3 i nowszych!źródło
Miałem ten sam problem i natknąłem się na następujące proste rozwiązanie. Po prostu dodaj trochę dopełnienia do obrazu, a jego rozmiar zostanie dopasowany do elementu div.
<div class="col-sm-3"> <img src="xxx.png" class="img-responsive" style="padding-top: 5px"> </div>
źródło
Użyłem tego i działa dla mnie.
<div class="col-sm-3"> <img src="xxx.png" style="width: auto; height: 195px;"> </div>
źródło
Jeśli ktoś z was szuka Bootstrap-4 . Tutaj jest
<div class="row no-gutters"> <div class="col-10"> <img class="img-fluid" src="/resources/img1.jpg" alt=""> </div> </div>
źródło
Przez większość czasu projekt bootstrap używa jQuery, więc możesz użyć jQuery.
Po prostu uzyskaj szerokość i wysokość rodzica za pomocą
JQuery.offsetHeight()
iJQuery.offsetWidth()
i ustaw je na element podrzędny za pomocąJQuery.width()
iJQuery.height()
.Jeśli chcesz, aby był responsywny, powtórz powyższe kroki
$(window).resize(func)
również w.źródło