在部分内垂直居中旋转木马
Vertically center a carousel inside a section
我有一个非常基本的 Flickity 旋转木马,里面有一些图片。我的问题是它停留在页面顶部,我想将整个旋转木马垂直居中放置在我的部分内。我的部分高度等于我的设备的高度,所以它基本上是全屏的。我尝试了很多东西,但我不知道如何解决。我试图在我的部分应用 display:flex;
和 align-items:center;
技巧,但它破坏了整个旋转木马...
我的代码:
**style.css** ```
/* external css: flickity.css */
* {
box-sizing: border-box;
}
body {
font-family: sans-serif;
}
#section-b {
padding: 0px;
margin: 0px;
background: #0b1320;
text-align: center;
color: white;
min-height: 100vh;
}
.carousel {
background: #0b1320;
}
.carousel-cell {
width: 70%;
height: 200px;
/* flex-box, center image in cell */
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-align-items: center;
align-items: center;
}
.carousel-cell img {
display: block;
max-width: 100%;
max-height: 100%;
/* dim unselected */
opacity: 0.7;
-webkit-transform: scale(0.85);
transform: scale(0.85);
-webkit-filter: blur(5px);
filter: blur(5px);
-webkit-transition: opacity 0.3s, -webkit-transform 0.3s, transform 0.3s, -webkit-filter 0.3s, filter 0.3s;
transition: opacity 0.3s, transform 0.3s, filter 0.3s;
}
/* brighten selected image */
.carousel-cell.is-selected img {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
-webkit-filter: none;
filter: none;
}
@media screen and (min-width: 768px) {
.carousel-cell {
height: 400px;
}
}
@media screen and (min-width: 960px) {
.carousel-cell {
width: 60%;
}
}
/* buttons, no circle */
.flickity-prev-next-button {
width: 60px;
height: 60px;
background: transparent;
opacity: 0.6;
}
.flickity-prev-next-button:hover {
background: transparent;
opacity: 1;
}
/* arrow color */
.flickity-prev-next-button .arrow {
fill: white;
}
.flickity-prev-next-button.no-svg {
color: white;
}
/* closer to edge */
.flickity-prev-next-button.previous {
left: 0;
}
.flickity-prev-next-button.next {
right: 0;
}
/* hide disabled button */
.flickity-prev-next-button:disabled {
display: none;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="https://npmcdn.com/flickity@2.2.1/dist/flickity.css" />
</head>
<body>
<!-- Flickity HTML init -->
<section id="section-b">
<div class="carousel js-flickity">
<!-- images from unsplash.com -->
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/orange-tree.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/submerged.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/look-out.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/one-world-trade.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/drizzle.jpg" alt="..." />
</div>
</div>
<script src="https://npmcdn.com/flickity@2.2.1/dist/flickity.pkgd.js"></script>
</section>
</body>
</html>
指向 flickity.css 和 flickity.js
的链接
您的 section
块已正确对齐,而 div.carousel
未正确对齐。
我已经解决了这个问题,使用额外的包装器元素 - div.center-wrap
。
样式也已更改:
.carousel {
background: #0b1320;
width: 100%;
}
div.center-wrap {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
完整代码片段:
**style.css** ```
/* external css: flickity.css */
* {
box-sizing: border-box;
}
body {
font-family: sans-serif;
}
#section-b {
padding: 0px;
margin: 0px;
background: #0b1320;
text-align: center;
color: white;
min-height: 100vh;
}
.carousel {
background: #0b1320;
width: 100%;
}
div.center-wrap {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.carousel-cell {
width: 70%;
height: 200px;
/* flex-box, center image in cell */
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-align-items: center;
align-items: center;
}
.carousel-cell img {
display: block;
max-width: 100%;
max-height: 100%;
/* dim unselected */
opacity: 0.7;
-webkit-transform: scale(0.85);
transform: scale(0.85);
-webkit-filter: blur(5px);
filter: blur(5px);
-webkit-transition: opacity 0.3s, -webkit-transform 0.3s, transform 0.3s, -webkit-filter 0.3s, filter 0.3s;
transition: opacity 0.3s, transform 0.3s, filter 0.3s;
}
/* brighten selected image */
.carousel-cell.is-selected img {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
-webkit-filter: none;
filter: none;
}
@media screen and (min-width: 768px) {
.carousel-cell {
height: 400px;
}
}
@media screen and (min-width: 960px) {
.carousel-cell {
width: 60%;
}
}
/* buttons, no circle */
.flickity-prev-next-button {
width: 60px;
height: 60px;
background: transparent;
opacity: 0.6;
}
.flickity-prev-next-button:hover {
background: transparent;
opacity: 1;
}
/* arrow color */
.flickity-prev-next-button .arrow {
fill: white;
}
.flickity-prev-next-button.no-svg {
color: white;
}
/* closer to edge */
.flickity-prev-next-button.previous {
left: 0;
}
.flickity-prev-next-button.next {
right: 0;
}
/* hide disabled button */
.flickity-prev-next-button:disabled {
display: none;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="https://npmcdn.com/flickity@2.2.1/dist/flickity.css" />
</head>
<body>
<!-- Flickity HTML init -->
<section id="section-b">
<div class="center-wrap">
<div class="carousel js-flickity">
<!-- images from unsplash.com -->
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/orange-tree.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/submerged.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/look-out.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/one-world-trade.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/drizzle.jpg" alt="..." />
</div>
</div>
<script src="https://npmcdn.com/flickity@2.2.1/dist/flickity.pkgd.js"></script>
</div>
</section>
</body>
</html>
我有一个非常基本的 Flickity 旋转木马,里面有一些图片。我的问题是它停留在页面顶部,我想将整个旋转木马垂直居中放置在我的部分内。我的部分高度等于我的设备的高度,所以它基本上是全屏的。我尝试了很多东西,但我不知道如何解决。我试图在我的部分应用 display:flex;
和 align-items:center;
技巧,但它破坏了整个旋转木马...
我的代码:
**style.css** ```
/* external css: flickity.css */
* {
box-sizing: border-box;
}
body {
font-family: sans-serif;
}
#section-b {
padding: 0px;
margin: 0px;
background: #0b1320;
text-align: center;
color: white;
min-height: 100vh;
}
.carousel {
background: #0b1320;
}
.carousel-cell {
width: 70%;
height: 200px;
/* flex-box, center image in cell */
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-align-items: center;
align-items: center;
}
.carousel-cell img {
display: block;
max-width: 100%;
max-height: 100%;
/* dim unselected */
opacity: 0.7;
-webkit-transform: scale(0.85);
transform: scale(0.85);
-webkit-filter: blur(5px);
filter: blur(5px);
-webkit-transition: opacity 0.3s, -webkit-transform 0.3s, transform 0.3s, -webkit-filter 0.3s, filter 0.3s;
transition: opacity 0.3s, transform 0.3s, filter 0.3s;
}
/* brighten selected image */
.carousel-cell.is-selected img {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
-webkit-filter: none;
filter: none;
}
@media screen and (min-width: 768px) {
.carousel-cell {
height: 400px;
}
}
@media screen and (min-width: 960px) {
.carousel-cell {
width: 60%;
}
}
/* buttons, no circle */
.flickity-prev-next-button {
width: 60px;
height: 60px;
background: transparent;
opacity: 0.6;
}
.flickity-prev-next-button:hover {
background: transparent;
opacity: 1;
}
/* arrow color */
.flickity-prev-next-button .arrow {
fill: white;
}
.flickity-prev-next-button.no-svg {
color: white;
}
/* closer to edge */
.flickity-prev-next-button.previous {
left: 0;
}
.flickity-prev-next-button.next {
right: 0;
}
/* hide disabled button */
.flickity-prev-next-button:disabled {
display: none;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="https://npmcdn.com/flickity@2.2.1/dist/flickity.css" />
</head>
<body>
<!-- Flickity HTML init -->
<section id="section-b">
<div class="carousel js-flickity">
<!-- images from unsplash.com -->
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/orange-tree.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/submerged.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/look-out.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/one-world-trade.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/drizzle.jpg" alt="..." />
</div>
</div>
<script src="https://npmcdn.com/flickity@2.2.1/dist/flickity.pkgd.js"></script>
</section>
</body>
</html>
指向 flickity.css 和 flickity.js
的链接您的 section
块已正确对齐,而 div.carousel
未正确对齐。
我已经解决了这个问题,使用额外的包装器元素 - div.center-wrap
。
样式也已更改:
.carousel {
background: #0b1320;
width: 100%;
}
div.center-wrap {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
完整代码片段:
**style.css** ```
/* external css: flickity.css */
* {
box-sizing: border-box;
}
body {
font-family: sans-serif;
}
#section-b {
padding: 0px;
margin: 0px;
background: #0b1320;
text-align: center;
color: white;
min-height: 100vh;
}
.carousel {
background: #0b1320;
width: 100%;
}
div.center-wrap {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.carousel-cell {
width: 70%;
height: 200px;
/* flex-box, center image in cell */
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-pack: center;
-webkit-justify-content: center;
justify-content: center;
-webkit-align-items: center;
align-items: center;
}
.carousel-cell img {
display: block;
max-width: 100%;
max-height: 100%;
/* dim unselected */
opacity: 0.7;
-webkit-transform: scale(0.85);
transform: scale(0.85);
-webkit-filter: blur(5px);
filter: blur(5px);
-webkit-transition: opacity 0.3s, -webkit-transform 0.3s, transform 0.3s, -webkit-filter 0.3s, filter 0.3s;
transition: opacity 0.3s, transform 0.3s, filter 0.3s;
}
/* brighten selected image */
.carousel-cell.is-selected img {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
-webkit-filter: none;
filter: none;
}
@media screen and (min-width: 768px) {
.carousel-cell {
height: 400px;
}
}
@media screen and (min-width: 960px) {
.carousel-cell {
width: 60%;
}
}
/* buttons, no circle */
.flickity-prev-next-button {
width: 60px;
height: 60px;
background: transparent;
opacity: 0.6;
}
.flickity-prev-next-button:hover {
background: transparent;
opacity: 1;
}
/* arrow color */
.flickity-prev-next-button .arrow {
fill: white;
}
.flickity-prev-next-button.no-svg {
color: white;
}
/* closer to edge */
.flickity-prev-next-button.previous {
left: 0;
}
.flickity-prev-next-button.next {
right: 0;
}
/* hide disabled button */
.flickity-prev-next-button:disabled {
display: none;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="https://npmcdn.com/flickity@2.2.1/dist/flickity.css" />
</head>
<body>
<!-- Flickity HTML init -->
<section id="section-b">
<div class="center-wrap">
<div class="carousel js-flickity">
<!-- images from unsplash.com -->
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/orange-tree.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/submerged.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/look-out.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/one-world-trade.jpg" alt="..." />
</div>
<div class="carousel-cell">
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/82/drizzle.jpg" alt="..." />
</div>
</div>
<script src="https://npmcdn.com/flickity@2.2.1/dist/flickity.pkgd.js"></script>
</div>
</section>
</body>
</html>