Less实现响应式多卡片布局完整代码案例

简介: 本文提供一套基于Less实现的响应式多卡片布局完整案例,涵盖变量统一管理、混合器复用、嵌套写法、内嵌媒体查询等核心特性,支持手机、平板、桌面三端自适应,代码简洁可维护,开箱即用。(239字)

Less实现响应式多卡片布局完整代码案例

一、文档概述

在前端页面开发中,卡片组件是资讯、商品、功能模块最常用的展示形式,原生CSS编写多卡片响应式布局会存在大量重复样式、媒体查询冗余、变量难以统一维护等问题。Less作为CSS预处理器,支持变量、混合器、嵌套、函数等特性,能够大幅简化样式代码,提升维护效率。本文通过一套完整可运行的多卡片布局案例,讲解Less核心语法在响应式场景下的落地使用,适配移动端、平板、桌面多端屏幕。

二、Less核心优势说明

  1. 变量统一管理:颜色、间距、圆角、字号等全局样式参数集中定义,修改一处全局生效;
  2. 混合器复用样式:提取卡片阴影、过渡、弹性布局等通用样式,避免代码重复;
  3. 嵌套简化层级:HTML结构与样式层级对应,可读性更强;
  4. 媒体查询内嵌:响应式规则直接写在对应选择器内部,不用分离代码,逻辑更清晰;
  5. 运算简化尺寸计算:支持数值加减乘除运算,快速适配多规格尺寸。

三、完整代码演示

3.1 HTML结构

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Less响应式卡片布局</title>
  <!-- 编译后的css文件 -->
  <link rel="stylesheet" href="card.css">
</head>
<body>
  <div class="card-wrap">
    <div class="card-item">
      <div class="card-img"></div>
      <div class="card-content">
        <h3 class="card-title">技术实战卡片一</h3>
        <p class="card-desc">基于Less预处理器搭建多端适配卡片组件,简化样式开发流程。</p>
        <div class="card-btn">查看详情</div>
      </div>
    </div>
    <div class="card-item">
      <div class="card-img"></div>
      <div class="card-content">
        <h3 class="card-title">技术实战卡片二</h3>
        <p class="card-desc">内置弹性布局与媒体查询,自动适配手机、平板、电脑屏幕。</p>
        <div class="card-btn">查看详情</div>
      </div>
    </div>
    <div class="card-item">
      <div class="card-img"></div>
      <div class="card-content">
        <h3 class="card-title">技术实战卡片三</h3>
        <p class="card-desc">统一变量管理主题色,一键切换页面整体视觉风格。</p>
        <div class="card-btn">查看详情</div>
      </div>
    </div>
  </div>
</body>
</html>

3.2 Less源代码(card.less)

// 全局样式变量
@primary: #2563eb;
@secondary: #64748b;
@light-bg: #f8fafc;
@white: #ffffff;
@shadow: 0 2px 12px rgba(0,0,0,0.08);
@radius: 10px;
@space-sm: 8px;
@space-md: 16px;
@space-lg: 24px;
@mobile: 768px;
@tablet: 1024px;

// 通用混合器-卡片阴影过渡
.card-shadow() {
   
  box-shadow: @shadow;
  transition: all 0.3s ease;
  &:hover {
   
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    transform: translateY(-4px);
  }
}

// 通用混合器-弹性居中
.flex-center() {
   
  display: flex;
  align-items: center;
  justify-content: center;
}

// 页面基础重置
* {
   
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
   
  background: @light-bg;
  padding: @space-lg;
}

// 卡片外层容器
.card-wrap {
   
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: @space-lg;
  max-width: 1200px;
  margin: 0 auto;

  // 平板适配
  @media (max-width: @tablet) {
   
    grid-template-columns: repeat(2, 1fr);
    gap: @space-md;
  }
  // 移动端适配
  @media (max-width: @mobile) {
   
    grid-template-columns: 1fr;
  }
}

// 单张卡片样式
.card-item {
   
  background: @white;
  border-radius: @radius;
  .card-shadow();
  overflow: hidden;

  .card-img {
   
    height: 160px;
    background: @primary;
    .flex-center();
    color: @white;
    font-size: 20px;
  }

  .card-content {
   
    padding: @space-md;

    .card-title {
   
      font-size: 18px;
      color: #1e293b;
      margin-bottom: @space-sm;
    }
    .card-desc {
   
      color: @secondary;
      font-size: 14px;
      line-height: 1.6;
      margin-bottom: @space-md;
    }
    .card-btn {
   
      width: 100%;
      padding: 10px 0;
      background: @primary;
      color: @white;
      text-align: center;
      border-radius: @radius;
      cursor: pointer;
      transition: background 0.3s;
      &:hover {
   
        background: #1d4ed8;
      }
    }
  }
}

3.3 Less编译说明

上述less文件需编译为标准CSS后引入页面,常用编译方式:

  1. 编辑器插件:VS Code Easy Less,保存自动生成css;
  2. 构建工具:Webpack less-loader、Vite内置Less编译;
  3. 命令行:npm less全局工具实时监听编译。

四、代码关键点解析

  1. 变量管理:所有颜色、断点、间距统一提取至顶部,修改主题无需遍历全部样式;
  2. 混合器复用.card-shadow().flex-center()封装重复逻辑,大幅精简代码量;
  3. 嵌套语法:卡片内部图片、标题、按钮直接层级嵌套,结构清晰;
  4. 响应式媒体查询内嵌:媒体规则写在对应容器内部,布局逻辑集中,便于维护;
  5. hover交互过渡:统一添加缓动动画,卡片悬浮上浮效果提升页面体验。

五、运行效果说明

  1. 桌面端:一行3张卡片,均匀等分宽度;
  2. 平板(768px-1024px):一行2张卡片,缩小间距;
  3. 手机(小于768px):单列垂直排列,铺满屏幕宽度;
  4. 鼠标悬浮卡片产生上浮与加深阴影,按钮变色,交互流畅。

海量精选技术文档和实战案例持续更新,敬请关注【风骏时光少年】

相关文章
|
20天前
|
人工智能 JSON API
AI Agent 完全入门:从“大模型”到“能干活”的智能体,一篇讲透
本文深入浅出解析AI Agent本质:非 merely 工具调用,而是“感知-规划-记忆-工具”四层闭环的行动系统。对比普通大模型“只生成答案”,Agent能自主拆解目标、多步执行任务。聚焦测试场景,详解其在自动生成数据、UI自愈、智能断言三大落地点的实效价值。
|
20天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
20天前
|
人工智能 Kubernetes 应用服务中间件
🚀【技术直播 · 重磅】Nginx Ingress 退役后,如何选对生产级网关?6月24日14:00-15:30,请锁定开发者社区直播间
"Nginx Ingress 不更新了,我该咋办?" 这场直播就是答案。 阿里云专家在线拆解迁移全流程,手把手教你不踩坑、不停服、不背锅。
162 2
|
20天前
|
人工智能 SEO
GEO效果量化方法论——从黑箱到可测量的科学体系
本文提出AI时代GEO效果量化新范式:首创“覆盖面、显著度、一致度”三维测量模型,构建可复现的PSOS(提示空间占有率)综合指标,并结合统计严谨的A/B测试,实现品牌AI可见度的精准评估与科学验证,推动GEO从模糊描述迈向数据驱动决策。
|
20天前
|
JSON 关系型数据库 Serverless
印尼行情数据API的云上部署:雅加达综合指数JCI的弹性拉取方案
本文介绍基于阿里云函数计算构建的印尼雅加达综指(JCI)实时行情系统:弹性架构支持交易时段(京时9:00–15:00)自动扩缩容,休市日智能跳过;每5秒拉取数据存入RDS Serverless,成本低、运维简。
|
20天前
|
弹性计算 运维 安全
阿里云ECS+OpenClaw+百炼Token Plan一体化方案:2026完整部署、调参、验证与故障排查手册
2026年,OpenClaw作为轻量化本地自治AI智能体框架,依靠容器化部署、多工具协同、长任务自治能力,广泛用于代码工程自动化、文档批量处理、多模态业务流水线等场景。依托阿里云ECS云服务器提供稳定持久算力,搭配百炼Token Plan统一Credits积分计费体系,能够解决智能体长期高频调用模型带来的账单波动、预算不可控、多模型切换繁琐等问题。
100 1
|
20天前
|
数据采集 人工智能 监控
MMP 的结构性盲区:当 AI 重写了获客上游
传统MMP(移动端测量伙伴)的归因体系仅覆盖从“广告触点”到“App内事件”的链路。当AI推荐(如ChatGPT)开始影响用户认知、驱动品牌搜索时,AI的影响发生在广告触点之前,形成结构性盲区。这一盲区可能导致预算分配偏差高达30-60%。市场需要一个新的“AI测量伙伴”来填补空白。
|
20天前
|
存储 缓存 安全
证券公司内部数据加密为什么不能只管“交易数据”,还要覆盖研报、策略与客户信息
在证券行业,数据安全不止于交易系统加密。研报、策略、客户资料等“交易外”高敏数据遍布终端,真正挑战在于实现文件全生命周期动态管控——加密只是起点,权限控制与行为审计才是核心。(239字)
|
20天前
|
应用服务中间件 Linux 网络安全
阿里云Linux云服务器使用Nginx+uWSGI部署Django项目全攻略
本文系统讲解在阿里云Linux云服务器上,使用Nginx+uWSGI组合部署Django项目的完整流程。从架构原理出发,详细说明ECS实例创建与安全组配置、Python与虚拟环境搭建、Django项目部署与生产环境配置、uWSGI应用服务器配置、Nginx反向代理与静态文件服务、进程管理与开机自启、域名绑定与SSL证书配置,以及常见问题排查与性能优化建议。全文提供完整的配置文件示例与命令脚本,帮助开发者将Django应用从本地开发环境平滑迁移至阿里云生产环境,实现高可用、高性能的Web服务部署。