当前位置: 首页 > news >正文

前端css 的固定布局,流式布局,弹性布局,自适应布局,响应式布局

1. 固定布局

容器的宽高是固定的,单位一般是px,不会随着屏幕大小变化

2.流式布局(百分比布局/vw)

vw: 视图宽度的百分比,1vw代表视窗宽度的1% 

vh: 视图高度的百分比,1vh代表视窗高度的1%

特点: 

  • 宽度随屏幕大小变化
  • 单位用%或vw 
  • 高度通常不随内容变化

缺点: 

  • 浏览器字体无法随着变化

3. 弹性布局 

使用display: felx,通过弹性容器控制子元素在主轴/交叉轴上的位置和大小

特点: 

  • 灵活高效,简化多列布局
  • 对齐和居中简单
  • 响应式能力强

4.自适应布局

针对多个设备设计不同的固定宽度布局,通常通过媒体查询切换布局

特点:

根据屏幕大小切换不同的固定布局

一般设计几个断点(如 320px、768px、1024px)

5.响应式布局

结合 流式布局 + 媒体查询 + 弹性布局等方式,实现单套代码适配所有设备

特点:

页面随屏幕自动适配

常配合 flex/grid + 媒体查询 + %/vw 等单位使用

优点: 

一套代码适配所有设备(PC、Pad、手机)

缺点:

开发初期复杂,调试工作量大

方案: 媒体查询(Media Query)+ 百分比/弹性布局

这是最经典的方式,主要用于多设备断点适配(PC、平板、手机)

/* PC端布局 */
@media screen and (min-width: 1024px) {
.container { width: 80%; }
}

/* 平板布局 */
@media screen and (max-width: 1023px) and (min-width: 768px) {
.container { width: 90%; flex-direction: column; }
}

/* 手机布局 */
@media screen and (max-width: 767px) {
.container { width: 100%; flex-direction: column; padding: 1rem; }
}

方案 2:rem + viewport(vw)+ flex 自适应方案(移动端适配)

移动端最主流方案之一,阿里、京东、淘宝、小程序后台等都用过。

// 设置根字体大小:375px 屏幕设置为 37.5px
document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';

.container {
width: 7.5rem; /* 相当于 375px */
padding: 0.5rem;
display: flex;
}

自适应布局 vs 响应式布局:核心区别

对比项自适应布局(Adaptive)响应式布局(Responsive)
📐 布局策略设置多个断点,加载时匹配一个布局基于屏幕宽度流式变化,页面结构自动调整
🔁 是否需刷新页面✅ 是(首次加载就匹配一个布局,不动态变化)❌ 否(实时响应页面宽度变化,自动调整)
🧱 断点数量限定几个(如手机、平板、桌面)可以是连续的,或者结合媒体查询做到细腻控制
🧠 原理检测设备类型 / 屏幕宽度,选择不同的“固定布局”使用 %vwflex、媒体查询动态适配
📦 常用技术JS判断 + 不同的 layout 或媒体查询CSS媒体查询 + 流式单位 + 弹性/Grid布局等
💡 举例加载时选择 320px、768px、1024px 三套布局之一页面宽度从 300px 到 1600px 都能流畅变化

http://www.lryc.cn/news/603202.html

相关文章:

  • ZKmall开源商城中台架构实践:API 网关与服务治理如何撑起电商技术骨架
  • 在 PolkaVM 上用 Rust 实现 ERC20 合约的全流程开发指南
  • 接口自动化测试pytest框架
  • c++-list
  • 【VOS虚拟操作系统】未来之窗打包工具在前端资源优化中的应用与优势分析——仙盟创梦IDE
  • Redis内存使用耗尽情况分析
  • 40+个常用的Linux指令——下
  • 艾利特机器人:光伏机器人如何重塑清洁能源制造新格局
  • 【CDH】CDH环境中升级ZooKeeper的实战记录
  • 基于KMeans、AgglomerativeClustering、DBSCAN、PCA的聚类分析的区域经济差异研究
  • 【Linux知识】Linux Shell 脚本中的 `set -ex` 命令深度解析
  • 复现cacti的RCE(CVE-2022-46169)
  • Go 客户端玩转 ES|QL API 直连与 Mapping Helpers 实战详解
  • upload-labs靶场通关(1-12)
  • 服务器之光:Nginx--反向代理模块详解及演练
  • 图论:Bellman_ford算法
  • 《汇编语言:基于X86处理器》第10章 结构和宏(3)
  • 【WRF-Chem 实例1】namelist.input 详解- 模拟CO2
  • 鸿蒙Harmony-自定义List组件,解决List组件手势滑动点击卡住问题
  • 【图像噪点消除】——图像预处理(OpenCV)
  • 创建型设计模式-工厂方法模式和抽象工厂方法模式
  • 社区老人健康信息管理系统|基于springboot社区老人健康信息管理系统设计与实现(源码+数据库+文档)
  • Gartner发布CTEM指南:使用持续威胁暴露管理来减少网络攻击
  • 智能体安全与可信AI:防护机制与伦理考量
  • 利用 C# 实现 Word 文档多维度统计(字数、字符数、页数、段落数、行数)
  • macOS “Sploitlight“漏洞曝光:攻击者可窃取Apple Intelligence缓存数据
  • FreeRTOS在中断上下文中设置事件组,调度很慢的的解决方法
  • JavaWeb 入门:CSS 基础与实战详解(Java 开发者视角)
  • 如何在在NPM发布一个React组件
  • pycharm中安装pythonocc