当前位置:首页 > 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(层叠样式表)是用于控制网页外观和布局的核心技术。以下是CSS网页制作的关键步骤和技巧: 基础语法与引入方式 CSS规则由选择器和声明块组成: 选择器 { 属性: 值…

css导航制作

css导航制作

基础导航栏制作 使用HTML的无序列表 <ul> 和 <li> 构建导航结构,CSS清除默认样式并横向排列: <nav> <ul class="navb…

用css制作表格

用css制作表格

使用CSS制作表格 CSS可以用来样式化HTML表格,使其更具视觉吸引力和功能性。以下是几种常见的方法: 基础表格样式 通过CSS可以调整表格的边框、间距和颜色: <table>…

css制作半圆

css制作半圆

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

css制作tab菜单

css制作tab菜单

CSS制作Tab菜单的方法 HTML结构 使用无序列表和div容器构建基础结构,列表项为标签页标题,div内放置对应内容块。 <ul class="tab-menu"> <li…

css制作响应网页

css制作响应网页

响应式网页设计基础 使用CSS制作响应式网页的核心是让页面能够根据不同设备的屏幕尺寸自动调整布局和样式。主要通过媒体查询(Media Queries)、弹性布局(Flexbox)和网格布局(Grid)…