Bootstrap裡面的元件Carousel(輪播),在切換圖片的時候,若是圖片大小不一樣,常會有不好看的畫面出現。
一般水平置中比較簡單
.carousel-inner > .item > img{
width: 80%;
margin: auto;
}
如果要垂直置中的話,我查了一些方法,有一種把圖片變成背景的方法,但我覺得不太好用。
所以用另一個方法,是改變圖片的位置,但是要先設定.item的高度,然後移動圖片的高度往下移50%,再往上移50%,這樣就剛好在一半的位置,達到垂直置中的效果。這是來源網址
.carousel-inner > .item {
height: 300px;
}
.carousel-inner .item img {
position:relative;
top:50%;
transform: translateY(-50%);
}
但這時候如果想要設計一個響應式(RWD)的網站,就會發現要去設定每種寬度視窗 .item的高度
可以使用簡單的jquery解決,就是去偵測 .item目前的高度,再去設定一次
$(".carousel-inner > .item").css("height",$(".carousel-inner > .item > img").height());
但如果又想在測試的時候,改變視窗寬度測試,就可以使用jquery的resize()事件
$( window ).resize(function() {
$(".carousel-inner > .item").css("height",$(".carousel-inner > .item > img").height());
});
以上