You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整W3Schools Lightbox灯箱组件的图片布局?

解决方案

第一步:修复现有CSS错误

先修正原有代码里的语法和逻辑问题:

  • 替换原有错误的html、body规则,删除固定宽度和全局溢出隐藏配置:
html, body {
    height: 100%;
    margin: 0;
    background-color: #FFE8D6;
    overflow-x: hidden;
}
  • 删除原有单独的body { overflow-x: hidden; }重复规则,修改#main容器配置避免横向滚动:
#main {
    transition: margin-left .5s;
    padding: 20px;
    box-sizing: border-box;
    width: 100%;
}
  • 把Sass嵌套语法替换为普通浏览器可识别的CSS:
a svg{
  transition:all .5s ease;
}
a svg:hover{
  /* 取消注释可开启旋转效果 transform:rotate(180deg); */
}
  • 替换原有浮动网格规则为自动适配的响应式网格样式:
/* 响应式图片网格 */
.row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
  padding: 16px 0;
}
.column img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  cursor: pointer;
}
  • 给Lightbox弹窗增加更高层级避免被侧边栏遮挡,在原有.modal规则中新增一行:
.modal {
    z-index: 999;
    /* 原有其他属性保留无需修改 */
}

第二步:补充HTML结构

在#main容器内的homeimg图片下方,添加网格和Lightbox弹窗结构:

<!-- 图片网格部分 -->
<div class="row">
  <div class="column">
    <img src="你的缩略图1地址" alt="图片1说明" class="hover-shadow" onclick="openModal();currentSlide(1)">
  </div>
  <div class="column">
    <img src="你的缩略图2地址" alt="图片2说明" class="hover-shadow" onclick="openModal();currentSlide(2)">
  </div>
  <!-- 有多少张图片就新增多少个对应column结构 -->
</div>

<!-- Lightbox弹窗结构 -->
<div id="myModal" class="modal">
  <span class="close cursor" onclick="closeModal()">&times;</span>
  <div class="modal-content">

    <div class="mySlides">
      <div class="numbertext">1 / 4</div> <!-- 分母根据总图片数量修改 -->
      <img src="你的高清图1地址" style="width:100%">
    </div>

    <div class="mySlides">
      <div class="numbertext">2 / 4</div>
      <img src="你的高清图2地址" style="width:100%">
    </div>
    <!-- 对应多少张图片就新增多少个mySlides结构 -->

    <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
    <a class="next" onclick="plusSlides(1)">&#10095;</a>

    <div class="caption-container">
      <p id="caption"></p>
    </div>
  </div>
</div>

第三步:补充Lightbox交互逻辑

在原有侧栏控制JS代码后面添加Lightbox控制代码:

function openModal() {
  document.getElementById("myModal").style.display = "block";
}

function closeModal() {
  document.getElementById("myModal").style.display = "none";
}

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides(slideIndex += n);
}

function currentSlide(n) {
  showSlides(slideIndex = n);
}

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var captionText = document.getElementById("caption");
  if (n > slides.length) {slideIndex = 1}
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";
  }
  slides[slideIndex-1].style.display = "block";
  captionText.innerHTML = slides[slideIndex-1].querySelector('img').alt;
}

内容的提问来源于stack exchange,提问作者JLo27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 09:45:04