Hye 我正在為我的網頁進行輪播引導,但我對用戶上傳的影像大小有疑問。當用戶上傳更大尺寸的影像時,它會顯示在我的網頁上。如何使影像大小跟隨輪播的大小,即我的輪播寬度是視圖螢屏的 100%?即使影像的大小是正方形,它也會在輪播中擴展影像。
這是我的網頁布局。
網頁截圖
在我嘗試添加 css 的答案之一之后。
img.d-block{
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
變成這樣。
在此處輸入影像描述
這是我的 bootstrap5.css
.carousel {
position: relative
}
.carousel.pointer-event {
touch-action: pan-y
}
.carousel-inner {
position: relative;
width: 100%;
height: 500px !important;
overflow: hidden
}
.carousel-inner::after {
display: block;
clear: both;
content: ""
}
.carousel-item {
position: relative;
display: none;
float: left;
width: 100%;
margin-right: -100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transition: transform .6s ease-in-out
}
@media (prefers-reduced-motion:reduce) {
.carousel-item {
transition: none
}
}
.carousel-item-next,
.carousel-item-prev,
.carousel-item.active {
display: block
}
.active.carousel-item-end,
.carousel-item-next:not(.carousel-item-start) {
transform: translateX(100%)
}
.active.carousel-item-start,
.carousel-item-prev:not(.carousel-item-end) {
transform: translateX(-100%)
}
.carousel-fade .carousel-item {
opacity: 0;
transition-property: opacity;
transform: none
}
.carousel-fade .carousel-item-next.carousel-item-start,
.carousel-fade .carousel-item-prev.carousel-item-end,
.carousel-fade .carousel-item.active {
z-index: 1;
opacity: 1
}
.carousel-fade .active.carousel-item-end,
.carousel-fade .active.carousel-item-start {
z-index: 0;
opacity: 0;
transition: opacity 0s .6s
}
@media (prefers-reduced-motion:reduce) {
.carousel-fade .active.carousel-item-end,
.carousel-fade .active.carousel-item-start {
transition: none
}
}
.carousel-control-next,
.carousel-control-prev {
position: absolute;
top: 0;
bottom: 0;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
width: 15%;
padding: 0;
color: #fff;
text-align: center;
background: 0 0;
border: 0;
opacity: .5;
transition: opacity .15s ease
}
@media (prefers-reduced-motion:reduce) {
.carousel-control-next,
.carousel-control-prev {
transition: none
}
}
.carousel-control-next:focus,
.carousel-control-next:hover,
.carousel-control-prev:focus,
.carousel-control-prev:hover {
color: #fff;
text-decoration: none;
outline: 0;
opacity: .9
}
.carousel-control-prev {
left: 0
}
.carousel-control-next {
right: 0
}
.carousel-control-next-icon,
.carousel-control-prev-icon {
display: inline-block;
width: 2rem;
height: 2rem;
background-repeat: no-repeat;
background-position: 50%;
background-size: 100% 100%
}
.carousel-control-prev-icon {
background-image: url("data:image/svg xml,")
}
.carousel-control-next-icon {
background-image: url("data:image/svg xml,")
}
.carousel-indicators {
position: absolute;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
display: flex;
justify-content: center;
padding: 0;
margin-right: 15%;
margin-bottom: 1rem;
margin-left: 15%;
list-style: none
}
.carousel-indicators [data-bs-target] {
box-sizing: content-box;
flex: 0 1 auto;
width: 30px;
height: 3px;
padding: 0;
margin-right: 3px;
margin-left: 3px;
text-indent: -999px;
cursor: pointer;
background-color: #fff;
background-clip: padding-box;
border: 0;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
opacity: .5;
transition: opacity .6s ease
}
@media (prefers-reduced-motion:reduce) {
.carousel-indicators [data-bs-target] {
transition: none
}
}
.carousel-indicators .active {
opacity: 1
}
.carousel-caption {
position: absolute;
right: 15%;
bottom: 1.25rem;
left: 15%;
padding-top: 1.25rem;
padding-bottom: 1.25rem;
color: #fff;
text-align: center
}
.carousel-dark .carousel-control-next-icon,
.carousel-dark .carousel-control-prev-icon {
filter: invert(1) grayscale(100)
}
.carousel-dark .carousel-indicators [data-bs-target] {
background-color: #000
}
.carousel-dark .carousel-caption {
color: #000
}
然后這是我的 index.blade.php
<div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="{{ asset('assets/images/owl.png') }}" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="{{ asset('assets/images/owl.png') }}" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="{{ asset('assets/images/owl.png') }}" class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
uj5u.com熱心網友回復:
我補充height:100%說.carousel-item。并將這些樣式添加到影像中:
img.d-block{
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
}
.carousel {
position: relative
}
.carousel.pointer-event {
touch-action: pan-y
}
.carousel-inner {
position: relative;
width: 100%;
height: 500px !important;
overflow: hidden
background: lightblue;
}
.carousel-inner::after {
display: block;
clear: both;
content: ""
}
.carousel-item {
position: relative;
display: none;
float: left;
width: 100%;
margin-right: -100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
transition: transform .6s ease-in-out
height: 100%;
}
img.d-block{
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
}
@media (prefers-reduced-motion:reduce) {
.carousel-item {
transition: none
}
}
.carousel-item-next,
.carousel-item-prev,
.carousel-item.active {
display: block
}
.active.carousel-item-end,
.carousel-item-next:not(.carousel-item-start) {
transform: translateX(100%)
}
.active.carousel-item-start,
.carousel-item-prev:not(.carousel-item-end) {
transform: translateX(-100%)
}
.carousel-fade .carousel-item {
opacity: 0;
transition-property: opacity;
transform: none
}
.carousel-fade .carousel-item-next.carousel-item-start,
.carousel-fade .carousel-item-prev.carousel-item-end,
.carousel-fade .carousel-item.active {
z-index: 1;
opacity: 1
}
.carousel-fade .active.carousel-item-end,
.carousel-fade .active.carousel-item-start {
z-index: 0;
opacity: 0;
transition: opacity 0s .6s
}
@media (prefers-reduced-motion:reduce) {
.carousel-fade .active.carousel-item-end,
.carousel-fade .active.carousel-item-start {
transition: none
}
}
.carousel-control-next,
.carousel-control-prev {
position: absolute;
top: 0;
bottom: 0;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
width: 15%;
padding: 0;
color: #fff;
text-align: center;
background: 0 0;
border: 0;
opacity: .5;
transition: opacity .15s ease
}
@media (prefers-reduced-motion:reduce) {
.carousel-control-next,
.carousel-control-prev {
transition: none
}
}
.carousel-control-next:focus,
.carousel-control-next:hover,
.carousel-control-prev:focus,
.carousel-control-prev:hover {
color: #fff;
text-decoration: none;
outline: 0;
opacity: .9
}
.carousel-control-prev {
left: 0
}
.carousel-control-next {
right: 0
}
.carousel-control-next-icon,
.carousel-control-prev-icon {
display: inline-block;
width: 2rem;
height: 2rem;
background-repeat: no-repeat;
background-position: 50%;
background-size: 100% 100%
}
.carousel-control-prev-icon {
background-image: url("data:image/svg xml,")
}
.carousel-control-next-icon {
background-image: url("data:image/svg xml,")
}
.carousel-indicators {
position: absolute;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
display: flex;
justify-content: center;
padding: 0;
margin-right: 15%;
margin-bottom: 1rem;
margin-left: 15%;
list-style: none
}
.carousel-indicators [data-bs-target] {
box-sizing: content-box;
flex: 0 1 auto;
width: 30px;
height: 3px;
padding: 0;
margin-right: 3px;
margin-left: 3px;
text-indent: -999px;
cursor: pointer;
background-color: #fff;
background-clip: padding-box;
border: 0;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
opacity: .5;
transition: opacity .6s ease
}
@media (prefers-reduced-motion:reduce) {
.carousel-indicators [data-bs-target] {
transition: none
}
}
.carousel-indicators .active {
opacity: 1
}
.carousel-caption {
position: absolute;
right: 15%;
bottom: 1.25rem;
left: 15%;
padding-top: 1.25rem;
padding-bottom: 1.25rem;
color: #fff;
text-align: center
}
.carousel-dark .carousel-control-next-icon,
.carousel-dark .carousel-control-prev-icon {
filter: invert(1) grayscale(100)
}
.carousel-dark .carousel-indicators [data-bs-target] {
background-color: #000
}
.carousel-dark .carousel-caption {
color: #000
}
<div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://picsum.photos/1250
" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="https://picsum.photos/1230
" class="d-block w-100" alt="...">
</div>
<div class="carousel-item">
<img src="https://picsum.photos/1240
" class="d-block w-100" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467919.html
標籤:html css 推特引导 引导程序 4 引导程序 5
上一篇:所選選項回傳標簽而不是文本值
