当前位置:首页 > CSS

css 制作焦点图

2026-04-01 19:14:03CSS

使用纯CSS制作焦点图

焦点图(轮播图)通常需要HTML、CSS和JavaScript配合实现,但纯CSS方案也能通过动画和伪类实现基础效果。以下是两种常见方法:

方法一:利用CSS动画实现自动轮播

HTML结构

<div class="slider">
  <div class="slides">
    <div class="slide slide1"></div>
    <div class="slide slide2"></div>
    <div class="slide slide3"></div>
  </div>
</div>

CSS关键代码

.slider {
  width: 600px;
  height: 400px;
  overflow: hidden;
  position: relative;
}

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

.slide {
  width: 600px;
  height: 400px;
  flex-shrink: 0;
}

@keyframes slide {
  0%, 33% { transform: translateX(0); }
  33.01%, 66% { transform: translateX(-600px); }
  66.01%, 99.99% { transform: translateX(-1200px); }
}

方法二:利用radio input实现手动切换

HTML结构

<div class="slider">
  <input type="radio" name="slider" id="slide1" checked>
  <input type="radio" name="slider" id="slide2">
  <input type="radio" name="slider" id="slide3">

  <div class="slides">
    <div class="slide" style="background: #f00;"></div>
    <div class="slide" style="background: #0f0;"></div>
    <div class="slide" style="background: #00f;"></div>
  </div>

  <div class="controls">
    <label for="slide1"></label>
    <label for="slide2"></label>
    <label for="slide3"></label>
  </div>
</div>

CSS关键代码

.slider {
  position: relative;
  width: 600px;
  height: 400px;
  overflow: hidden;
}

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

#slide1:checked ~ .slides { transform: translateX(0); }
#slide2:checked ~ .slides { transform: translateX(-600px); }
#slide3:checked ~ .slides { transform: translateX(-1200px); }

.controls label {
  position: absolute;
  bottom: 20px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
}

#slide1:checked ~ .controls label:nth-child(1),
#slide2:checked ~ .controls label:nth-child(2),
#slide3:checked ~ .controls label:nth-child(3) {
  background: white;
}

优化建议

  1. 响应式适配
    使用百分比宽度和vw/vh单位替代固定像素值:

    .slider {
      width: 90vw;
      height: 60vh;
    }
  2. 过渡效果增强
    添加transition-timing-function调整动画曲线:

    .slides {
      transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
    }
  3. 无限循环优化
    对于动画方案,通过调整关键帧百分比实现无缝衔接:

    css 制作焦点图

    @keyframes slide {
      0% { transform: translateX(0); }
      33% { transform: translateX(-600px); }
      66% { transform: translateX(-1200px); }
      100% { transform: translateX(0); }
    }

浏览器兼容性说明

  • 现代浏览器均支持CSS动画和过渡
  • 旧版IE需添加-ms-前缀
  • 移动端建议添加touch-action: pan-y防止手势冲突

以上方案可根据实际需求选择,如需交互控制推荐结合JavaScript实现更复杂功能。

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

相关文章

网页制作css

网页制作css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; 属性: 值; } 例如: p { colo…

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form"&…

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead>…

css制作半圆

css制作半圆

使用 border-radius 制作半圆 通过设置 border-radius 属性,可以将矩形的边角弯曲成圆弧形状。制作半圆的关键是将宽度和高度设置为 2:1 的比例,并只对两个角应用圆角。 .…

网页制作css是什么

网页制作css是什么

CSS的定义与作用 CSS(Cascading Style Sheets,层叠样式表)是一种用于描述网页外观和格式的样式语言。它通过定义HTML元素的布局、颜色、字体等视觉属性,实现内容与表现的分离,…

css制作圆弧

css制作圆弧

CSS 制作圆弧的方法 使用 border-radius 属性 通过 border-radius 可以轻松创建圆弧效果。该属性控制元素的圆角大小,值越大圆弧越明显。例如: .arc { widt…