当前位置:首页 > CSS

css焦点图制作

2026-01-08 18:54:06CSS

使用纯CSS制作焦点图

通过CSS的动画和过渡效果实现简单焦点图轮播,无需JavaScript。以下是一个基础实现方案:

<div class="slider">
  <div class="slides">
    <div class="slide">Slide 1</div>
    <div class="slide">Slide 2</div>
    <div class="slide">Slide 3</div>
  </div>
</div>
.slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.slides {
  display: flex;
  width: 300%; /* 3 slides */
  animation: slide 10s infinite;
}

.slide {
  width: 33.33%;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: white;
}

.slide:nth-child(1) { background: #3498db; }
.slide:nth-child(2) { background: #e74c3c; }
.slide:nth-child(3) { background: #2ecc71; }

@keyframes slide {
  0% { transform: translateX(0); }
  33% { transform: translateX(-33.33%); }
  66% { transform: translateX(-66.66%); }
  100% { transform: translateX(0); }
}

结合HTML和CSS3过渡效果

实现带过渡动画的焦点图,可通过:target伪类实现手动切换:

css焦点图制作

<div class="slider">
  <div class="slides">
    <div id="slide1" class="slide">Slide 1</div>
    <div id="slide2" class="slide">Slide 2</div>
    <div id="slide3" class="slide">Slide 3</div>
  </div>

  <div class="controls">
    <a href="#slide1">1</a>
    <a href="#slide2">2</a>
    <a href="#slide3">3</a>
  </div>
</div>
.slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.slides {
  width: 300%;
  transition: transform 0.5s ease;
}

.slide {
  width: 33.33%;
  float: left;
  height: 300px;
}

#slide1:target ~ .slides { transform: translateX(0); }
#slide2:target ~ .slides { transform: translateX(-33.33%); }
#slide3:target ~ .slides { transform: translateX(-66.66%); }

响应式焦点图设计

确保焦点图在不同设备上正常显示:

css焦点图制作

.slider {
  max-width: 1200px;
  margin: 0 auto;
}

.slide {
  height: auto;
  min-height: 200px;
}

@media (max-width: 768px) {
  .slide {
    padding: 20px;
  }
}

添加导航指示器

通过CSS伪元素创建视觉指示器:

.controls a {
  display: inline-block;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #ccc;
  margin: 0 5px;
  position: relative;
}

.controls a.active::after {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
  background: #333;
  border-radius: 50%;
  top: 3px;
  left: 3px;
}

性能优化建议

避免使用可能引起重排的CSS属性:

.slides {
  will-change: transform;
  backface-visibility: hidden;
}

.slide {
  contain: layout paint style;
}

以上方案可根据实际需求组合使用或扩展功能,如添加淡入淡出效果、缩略图导航等高级特性。

标签: 焦点css
分享给朋友:

相关文章

vue 实现获取焦点

vue 实现获取焦点

实现获取焦点的方法 在 Vue 中实现获取焦点可以通过多种方式完成,以下是几种常见的方法: 使用 ref 和 focus 方法 通过 ref 属性获取 DOM 元素,并调用其 focus 方法实现焦…

css制作

css制作

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。其基本语法由选择器和声明块组成。选择器指定要样式化的HTML元素,声明块包含一个或多个属性-值对,用花括号 {} 包裹。 select…

css网页制作

css网页制作

CSS网页制作基础 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。以下是核心知识点: 选择器与样式规则 /* 标签选择器 */ p { color: #333; fo…

css制作三角形

css制作三角形

使用 border 属性创建三角形 通过设置元素的 border 属性可以实现三角形效果。原理是利用边框的交界处形成的斜边。 .triangle { width: 0; height: 0…

css网页制作教程

css网页制作教程

CSS网页制作教程 CSS(层叠样式表)是用于控制网页外观和布局的核心技术。以下是CSS网页制作的关键步骤和技巧: 基础语法与引入方式 CSS规则由选择器和声明块组成: 选择器 { 属性:…

css如何制作圆

css如何制作圆

使用 border-radius 属性制作圆 通过设置 border-radius 属性为元素添加圆角效果。当 border-radius 的值等于元素宽度和高度的一半时,元素会呈现圆形。 .cir…