Less中实现响应式设计的4种高效方案(手机、平板、电脑端)
下是4种纯Less实现的响应式方案,均封装成可复用方法。
方案1:基础设备混合封装
// 定义设备断点变量
@mobile-max: 767px;
@tablet-min: 768px;
@tablet-max: 1024px;
@desktop-min: 1025px;
// 设备混合
.mobile(@rules) {
@media (max-width: @mobile-max) {
@rules();
}
}
.tablet(@rules) {
@media (min-width: @tablet-min) and (max-width: @tablet-max) {
@rules();
}
}
.desktop(@rules) {
@media (min-width: @desktop-min) {
@rules();
}
}
// 使用示例
.header {
font-size: 16px;
.mobile({
font-size: 14px;
padding: 8px;
});
.tablet({
font-size: 15px;
padding: 12px;
});
.desktop({
font-size: 18px;
padding: 20px;
});
}
方案2:参数化设备查询
// 参数化混合
.device(@type, @rules) {
& when (@type = mobile) {
@media (max-width: 767px) { @rules(); }
}
& when (@type = tablet) {
@media (min-width: 768px) and (max-width: 1024px) { @rules(); }
}
& when (@type = desktop) {
@media (min-width: 1025px) { @rules(); }
}
}
// 使用示例
.navbar {
height: 40px;
.device(mobile, {
height: auto;
flex-direction: column;
});
.device(tablet, {
height: 50px;
padding: 0 15px;
});
}
方案3:可配置断点混合
// 通用响应式混合
.responsive(@min, @max, @rules) {
& when not (@min = 0) and not (@max = 0) {
@media (min-width: @min) and (max-width: @max) { @rules(); }
}
& when (@min = 0) {
@media (max-width: @max) { @rules(); }
}
& when (@max = 0) {
@media (min-width: @min) { @rules(); }
}
}
// 使用示例
.card {
width: 100%;
// 手机
.responsive(0, 767px, {
margin: 5px;
});
// 平板
.responsive(768px, 1024px, {
width: 48%;
margin: 8px;
});
// PC
.responsive(1025px, 0, {
width: 23%;
margin: 10px;
});
}
方案4:设备方向增强版
// 带设备方向检测
.orientation(@device, @dir, @rules) {
& when (@device = mobile) and (@dir = portrait) {
@media (max-width: 767px) and (orientation: portrait) { @rules(); }
}
& when (@device = mobile) and (@dir = landscape) {
@media (max-width: 767px) and (orientation: landscape) { @rules(); }
}
& when (@device = tablet) {
@media (min-width: 768px) and (max-width: 1024px) { @rules(); }
}
}
// 使用示例
.gallery {
grid-template-columns: 1fr;
.orientation(mobile, landscape, {
grid-template-columns: repeat(2, 1fr);
});
.orientation(tablet, _, {
grid-template-columns: repeat(3, 1fr);
});
}
方案选择建议:
- 基础混合:适合明确的三段式断点需求
- 参数化混合:需要动态选择设备类型时使用
- 可配置断点:适合需要灵活调整断点的项目
- 方向增强:需要处理横竖屏差异时使用
Less中实现响应式设计的4种高效方案(手机、平板、电脑端)的更多相关文章
- React中的响应式设计思想和事件绑定
这两个点是react入门非常重要的两个点,以前我们是直接操作dom的形式去做,react的设计思想和以前直接操作dom是完全不同的,react是一个响应式的框架,他在做编程的时候,强调的是我们不要直接 ...
- Bootstrap 响应式设计
本教程讲解如何在网页布局中应用响应式设计.在课程中,您将学到响应式 Web 设计.随着移动设备的普及,如何让用户通过移动设备浏览您的网站获得良好的视觉效果,已经是一个不可避免的问题了.响应式 Web ...
- 有关CSS中字体响应式的设置
在进行页面响应式设计中,往往需要根据屏幕分辨率来显示不同大小的字体.通常的做法是通过media queries给不同的分辨率指定不同的字体样式,例如: body { font-size: 22px; ...
- CSS 响应式设计
响应式设计是指在不同分辨率的设备中,网页布局可以自适应的调整.这种弹性化的布局使网站在不同设备中的布局都比较合理,可以为不同终端的用户提供更加舒适的界面和更好的用户体验,其根本理念是使原本 PC 上的 ...
- CSS中字体响应式的设置
在进行页面响应式设计中,往往需要根据屏幕分辨率来显示不同大小的字体.通常的做法是通过media queries给不同的分辨率指定不同的字体样式,例如: body { font-size: 22px; ...
- css响应式设计
响应式设计是指在不同分辨率的设备中,网页布局可以自适应的调整.这种弹性化的布局使网站在不同设备中的布局都比较合理,可以为不同终端的用户提供更加舒适的界面和更好的用户体验,其根本理念是使原本 PC 上的 ...
- 前端响应式设计中@media等的相关运用
现在做前端响应式网站特别,响应式成为现在前端设计一个热点,它成为热点的最主要的原因就是,移动端设备屏幕的种类多样,那么如何设置响应式屏幕. /*打印样式*/ @mediaprint{color:red ...
- css新单位vw,vh在响应式设计中的应用
考虑到未来响应式设计的开发,如果你需要,浏览器的高度也可以基于百分比值调整.但使用基于百分比值并不总是相对于浏览器窗口的大小定义的最佳方式,比如字体大小不会随着你窗口改变而改变,如今css3引入的新单 ...
- Windows10 UWP开发 - 响应式设计
Windows10 UWP开发 - 响应式设计 本篇随笔与大家简单讨论一下在开发适配不同分辨率.宽高比的Windows10 Universal App布局时的可行方式与小技巧.经验均从实践中总结, ...
- HTML5实践 -- 使用CSS3 Media Queries实现响应式设计
CSS3 Media用法介绍:http://www.w3cplus.com/content/css3-media-queries 转载请注明原创地址:http://www.cnblogs.com/so ...
随机推荐
- 生成对抗网络GAN简介
本文分享自天翼云开发者社区<生成对抗网络GAN简介>,作者:王****青 生成对抗网络(Generative Adversarial Networks,GAN)是一种深度敏感词模型,用于生 ...
- 玩转云端|演唱会一票难求?快用天翼云边缘安全加速平台AccessOne!
本文分享自天翼云开发者社区<玩转云端|演唱会一票难求?快用天翼云边缘安全加速平台AccessOne!>,作者:天翼云社区官方账号 Super Idol的笑容虽然非常甜 无数粉丝宝宝的心里却 ...
- DeepSeek 不再卡顿,从此告别服务器繁忙,请稍后再试(建议收藏!)
大家好,我是六哥. 由于DeepSeek真的太火了,也许你也跟我一样,常会遇到这样的情况: 真的让人抓狂,10条回复里常常有9条是"服务器blabla,请稍后重试",看到这话,就问 ...
- .NET周刊【1月第4期 2025-01-26】
国内文章 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解 https://www.cnblogs.com/lyhabc/p/18660810/linux-sql-ser ...
- Atcoder ABC390E Vitamin Balance 题解 [ 绿 ] [ 背包 ] [ 二分 ]
Vitamin Balance:比较板的背包. 思路 一个 dp 数组里同时存三种食物的最大维他命显然不可行,因为一种食物维他命最多不代表其他维他命也同样多,而最终的价值取决于维他命最少的那个,所以这 ...
- 使用 Git 命令和 Github 前须了解的知识
本文不包括 Git 命令的介绍与使用,只分享 Git 的关键概念与 Github 项目的基本工作流程.作者相信先了解它们对后续的学习和工作大有裨益.(如有错误和建议请大家评论告知) 版本控制系统 VC ...
- WSL2走主机IP地址代理的方式
前言 工作需求导致需要使用到WSL2,git的时候出现网络原因无法拉取.故记录一下走完整个WSL2代理的流程 WSL1 和 WSL2 网络的区别 在 WSL1 时代,由于 Linux 子系统和 Win ...
- autMan奥特曼机器人-内置微信如何定时给公众号发消息
autMan版本要求2.1.3以上 一.打开左侧栏的本地开发,然后从实时日志获取公众号的ID或名称 ![2024-10-23T01:45:34.png][1] ![2024-10-23T01:44:5 ...
- Typecho输出html颜色字教程
!!! 这里是红色 !!! !!! 这里是绿色 !!! typecho输出html教程 只需要用!!!包裹html即可实现! 用法 !!! <font color="red" ...
- Sqoop - [01] 概述
将关系型数据库(Oracle.MySQL.PG等)数据与Hadoop数据进行转换的工具. 一.Sqoop1和Sqoop2的区别 Sqoop1由client端直接接入Hadoop,任务通过解析生成对应的 ...