📅  最后修改于: 2023-12-03 15:14:22.081000             🧑  作者: Mango
在网站制作中,卡片是一种常见的布局方式。它能够将信息以一种更有层次感的方式呈现出来,给用户更好的体验。而水平滚动卡片,是一种特别独特的布局方式,它能够让你在有限的空间内展示更多的内容。CSS 水平滚动卡片,正是一种实现水平滚动布局的 CSS 技术,下面介绍其实现方法与使用。
首先,在 HTML 中,需要创建一个容器元素,并在其中添加卡片元素。容器元素的 width
属性需要设置为容器宽度以展示卡片内容。
<div class="card-container">
<div class="card">
<img src="https://placehold.jp/150x120.png" alt="card image" />
<h3>Card Title 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
<div class="card">
<img src="https://placehold.jp/150x120.png" alt="card image" />
<h3>Card Title 2</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
...
</div>
在 CSS 中,需要为容器元素设置 overflow: auto; white-space: nowrap;
,以实现水平滚动的效果。同时设置卡片元素为 display: inline-block;
,它会按照内部元素的尺寸紧凑排列。
.card-container {
width: 100%;
overflow: auto;
white-space: nowrap;
}
.card {
display: inline-block;
width: 300px;
margin-right: 20px;
vertical-align: top;
}
若容器内的卡片元素过多,那么就需要前进与后退的按钮以让用户在滚动时能够更好地控制。下面是前进与后退按钮样式的示例。
.prev-btn,
.next-btn {
position: absolute;
top: 50%;
padding: 5px;
font-size: 24px;
font-weight: bold;
color: #fff;
background-color: rgba(65, 116, 225, 0.8);
border: none;
border-radius: 50%;
cursor: pointer;
z-index: 1;
transform: translateY(-50%);
transition: transform 0.3s;
}
.prev-btn:hover,
.next-btn:hover {
transform: translateY(-50%) scale(1.2);
}
.prev-btn {
left: 20px;
}
.next-btn {
right: 20px;
}
最终的整体结构如下:
<div class="card-container">
<div class="card">
<img src="https://placehold.jp/150x120.png" alt="card image" />
<h3>Card Title 1</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
<div class="card">
<img src="https://placehold.jp/150x120.png" alt="card image" />
<h3>Card Title 2</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
...
</div>
<button class="prev-btn"><</button>
<button class="next-btn">></button>
.card-container {
width: 100%;
overflow: auto;
white-space: nowrap;
}
.card {
display: inline-block;
width: 300px;
margin-right: 20px;
vertical-align: top;
}
.prev-btn,
.next-btn {
position: absolute;
top: 50%;
padding: 5px;
font-size: 24px;
font-weight: bold;
color: #fff;
background-color: rgba(65, 116, 225, 0.8);
border: none;
border-radius: 50%;
cursor: pointer;
z-index: 1;
transform: translateY(-50%);
transition: transform 0.3s;
}
.prev-btn:hover,
.next-btn:hover {
transform: translateY(-50%) scale(1.2);
}
.prev-btn {
left: 20px;
}
.next-btn {
right: 20px;
}
以上就是实现 CSS 水平滚动卡片的全部内容。使用方法非常简单,只需在 HTML 中添加以上的代码片段,并根据实际需求进行 CSS 样式自定义即可。同时,效果可以通过浏览器的开发者工具进行实时调试,非常方便。