各个布局的区别以及示例
各个布局的区别以及示例
在前端开发中,常见的布局方式主要有以下几种,每种布局都有其适用场景和特点:
1. 普通文档流(Normal Flow)
- 特点:默认布局方式,元素按照HTML顺序依次排列。
- 适用场景:简单页面、文本内容为主的布局。
- 示例代码:
<div class="box">Box 1</div> <div class="box">Box 2</div> <div class="box">Box 3</div>
.box {width: 100px;height: 100px;background: lightblue;margin: 10px; }
2. 浮动布局(Float)
- 特点:元素脱离文档流,向左或向右浮动,常用于文字环绕图片或旧版多栏布局。
- 适用场景:传统多栏布局(需配合
clearfix
清除浮动)。 - 示例代码:
<div class="float-left">左浮动</div> <div class="float-right">右浮动</div> <div class="clearfix"></div>
.float-left { float: left; width: 50%; } .float-right { float: right; width: 50%; } .clearfix::after {content: "";display: block;clear: both; }
3. 定位布局(Position)
- 特点:通过
position
属性控制元素位置(相对、绝对、固定等)。 - 适用场景:叠加元素(如弹窗)、固定在视口的元素(导航栏)。
- 示例代码:
<div class="parent"><div class="child">绝对定位</div> </div>
.parent {position: relative;height: 200px;background: #eee; } .child {position: absolute;top: 20px;left: 20px;background: lightcoral; }
4. Flexbox布局
- 特点:一维布局,通过弹性容器控制子项的对齐、分布和顺序。
- 适用场景:单行或单列布局、居中对齐、动态分配空间。
- 示例代码:
<div class="flex-container"><div class="flex-item">1</div><div class="flex-item">2</div><div class="flex-item">3</div> </div>
.flex-container {display: flex;justify-content: space-between;background: #f0f0f0; } .flex-item {width: 80px;height: 80px;background: lightgreen; }
5. Grid布局
- 特点:二维布局,通过网格定义行和列,精准控制布局。
- 适用场景:复杂网格结构(如仪表盘、卡片布局)。
- 示例代码:
<div class="grid-container"><div class="header">Header</div><div class="sidebar">Sidebar</div><div class="main">Main</div> </div>
.grid-container {display: grid;grid-template-columns: 1fr 3fr;grid-template-rows: 80px auto;gap: 10px; } .header { grid-column: 1 / 3; background: lightblue; } .sidebar { background: lightyellow; } .main { background: lightpink; }
6. 多列布局(Multi-column)
- 特点:将内容自动分割为多列(类似报纸布局)。
- 适用场景:长文本分栏显示。
- 示例代码:
.multi-column {column-count: 3;column-gap: 20px; }
如何选择布局?
布局方式 | 适用场景 | 核心优势 |
---|---|---|
普通文档流 | 简单页面、线性内容 | 默认行为,无需额外代码 |
Float | 传统多栏布局、文字环绕 | 兼容性好(但现代布局中已少用) |
Position | 元素叠加、固定位置 | 精准控制位置 |
Flexbox | 一维布局、动态分配空间、居中 | 响应式对齐和分配空间 |
Grid | 二维复杂布局、网格结构 | 同时控制行和列 |
Multi-column | 长文本分栏 | 自动分栏 |
现代布局推荐:
- 首选Flexbox:用于组件内的排列(如导航栏、表单)。
- 首选Grid:用于整体页面结构(如主页布局)。
- 避免Float:除非需要兼容旧浏览器。
相关文章:
各个布局的区别以及示例
各个布局的区别以及示例 在前端开发中,常见的布局方式主要有以下几种,每种布局都有其适用场景和特点: 1. 普通文档流(Normal Flow) 特点:默认布局方式,元素按照HTML顺序依次排列。适用场景&am…...
什么是MVC?
导语: 在Java后端面试中,“MVC架构”是绕不开的基础话题。它不仅关乎项目的整体设计思路,更体现了候选人的架构理解能力与编码规范意识。本文将从面试官视角出发,结合高频问题、代码示例、答题技巧与加分项,带你全面吃…...

STM32的ADC简介
一、ADC简介 STM32的ADC是一种12位逐次逼近型模拟数字转换器。它具备18个通道,能够测量16个外部信号源以及2个内部信号源。各通道的A/D转换可以执行单次、连续、扫描或间断模式。转换结果可采用左对齐或右对齐的方式(12位)存储于16位数据寄存…...

Bash shell四则运算
文章目录 四则运算1. expr 命令2. $(( )) 表达式(推荐)3. $[ ] 表达式(已弃用)4. let 命令小数运算i 和 i 区别 四则运算 算术运算: - * / %(取模,求余数) Bash sh…...

(javaSE)Java数组进阶:数组初始化 数组访问 数组中的jvm 空指针异常
数组的基础 什么是数组呢? 数组指的是一种容器,可以用来存储同种数据类型的多个值 数组的初始化 初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。 数组初始化的两种方式:静态初始化,动态初始化 数组的静态初始化 初始化…...

力扣刷题Day 70:在排序数组中查找元素的第一个和最后一个位置(34)
1.题目描述 2.思路 方法1(自己写的):一次二分查找找到等于target的一个元素索引axis,然后向左右延伸找边界。 方法2(灵茶山艾府佬的闭区间二分查找写法):定义一个lower_bound()函数找到第一个…...
vue 多端适配之pxtorem
在 Vue 3 Vite 项目中使用 postcss-pxtorem 自动将 px 单位转换为 rem 单位,可以按照以下步骤配置: 一、基础版本 1. 安装依赖 首先安装必要的插件: npm install postcss postcss-pxtorem autoprefixer -D # 或 yarn add postcss postcs…...

图片压缩工具 | 图片属性详解及读取解析元数据
ℹ️ 图片信息及属性 基本属性 格式类型:JPEG、PNG、GIF、WEBP、BMP、TIFF等文件大小:以KB、MB等为单位的存储空间占用创建/修改日期:文件的元数据时间戳 视觉属性 尺寸/分辨率 宽度(像素)高度(像素&…...
React---day8
9.6 不可变数据的力量 我们知道是不能够修改this.state里面的数据的 举个例子 export class App extends React.PureComponent{constructor(){super();this.state {userList:[{name : "tom" , age : 18},{name : "lily" , age : 20},{name : "tik…...

C# Onnx 动漫人物人脸检测
目录 效果 模型信息 项目 代码 下载 参考 效果 模型信息 Model Properties ------------------------- stride:32 names:{0: face} --------------------------------------------------------------- Inputs ------------------------- name&am…...

C++内存列传之RAII宇宙:智能指针
文章目录 1.为什么需要智能指针?2.智能指针原理2.1 RAll2.2 像指针一样使用 3.C11的智能指针3.1 auto_ptr3.2 unique_ptr3.3 shared_ptr3.4 weak_ptr 4.删除器希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 智能指针是 C 中用于自动…...

PVE 虚拟机安装 Ubuntu Server V24 系统 —— 一步一步安装配置基于 Ubuntu Server 的 NodeJS 服务器详细实录1
前言 最近在基于 NodeJS V22 写一个全栈的项目,写好了,当然需要配置服务器部署啦。这个过程对于熟手来说,还是不复杂的,但是对于很多新手来说,可能稍微有点困难。所以,我把整个过程全部记录一下。 熟悉我…...
GitHub 趋势日报 (2025年06月03日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 2404 onlook 860 system-design-primer 380 nautilus_trader 372 agent-zero 357 …...
出现dev/nvmeOnip2 contains a file system with errors, check forced 解决方法
目录 前言1. 问题所示2. 原理分析3. 解决方法4. 彩蛋前言 爬虫神器,无代码爬取,就来:bright.cn Java基本知识: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新)1. 问题所示 出现如下问题: dev/nvmeOnip2 co…...
Vue3.5 企业级管理系统实战(二十二):动态菜单
在前几篇内容中已完成菜单、角色及菜单权限等相关开发,若要在左侧菜单根据用户角色动态展示菜单,需对 Sidebar 中的相关数据进行修改。鉴于其他相关方法及类型已在前文实现,本文不再重复阐述。 1 修改 Sidebar 组件 在 src/layout/componen…...
磨皮功能 C++/C的OpenCV 实现
磨皮功能 C/C的OpenCV 实现 前提条件 OpenCV 安装: 你需要正确安装 OpenCV 库。C 编译器: 如 G。 C 代码 #include <opencv2/opencv.hpp> #include <iostream> #include <string>// 使用标准命名空间 using namespace std; using …...
蓝牙防丢器应用方案
蓝牙防丢器通常由两个主要部分构成:一个小型装置,亦称为标签,以及一个与之配对的手机应用程序。该标签内置一个微型蓝牙芯片,能够与配对的手机应用程序进行通信。一旦标签与手机之间的连接中断,手机应用程序便会接收到…...

TDengine 开发指南——高效写入
高效写入 本章内容将介绍如何发挥 TDengine 最大写入性能,通过原理解析到参数如何配置再到实际示例演示,完整描述如何达到高效写入。 为帮助用户轻松构建百万级吞吐量的数据写入管道,TDengine 连接器提供高效写入的特性。 启动高效写入特性…...

Linux kill 暂停命令
暂停进程 kill -19 在一台服务器上部署了360Pika服务,先用RedisClient连接一下,可以连接 现在暂停进程 暂停后发现再次连接无法连接 恢复进程 kill -18 恢复后可连接...
Unity与Excel表格交互热更方案
在Unity中实现与Excel表格的交互并支持热更是许多游戏开发中的常见需求。以下是几种实现方案: 1. 使用ScriptableObject存储表格数据 实现步骤: 将Excel表格导出为CSV格式 编写编辑器脚本将CSV数据导入到ScriptableObject 在运行时通过Resources或Ad…...
LVS、NGINX、HAPROXY的调度算法
目录 一、LVS(Linux Virtual Server)调度算法 (一)静态调度算法 (二)动态调度算法 二、NGINX调度算法 (一)内置调度算法 (二)第三方模块支持的调度算法…...
C++ 使用 ffmpeg 解码本地视频并获取每帧的YUV数据
一、简介 FFmpeg 是一个开源的多媒体处理框架,非常适用于处理音视频的录制、转换、流化和播放。 二、代码 示例代码读取一个本地视频文件,解码并将二进制文件保存下来。 注意: 代码中仅展示了 YUV420P 格式,其他 NV12/NV2…...
分布式微服务系统架构第143集:pom文件
加群联系作者vx:xiaoda0423 仓库地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus https://webvueblog.github.io/JavaPlusDoc/ ✅ 各字段说明及是否可改 字段名说明是否可修改修改建议…...

2.0 阅读方法论与知识总结
引言 本文将详细分析考研英语阅读做题步骤,并对方法论进行总结,最后通过真题练习巩固方法。 一、做题步骤 所有技巧都建立在精读真题的基础上!建议按以下节奏复习: 1️⃣ 做题 先看题干了解文章大致主旨(看看有没有…...

5. Qt中.pro文件(1)
本节主要讲.pro文件的作用和一些相关基础知识与操作。 本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1 PRO文件 1.1 pro文件作用 添加需要用到的QT模块,如通过QT module_name来添加需要用到的Qt模块。指定生…...
第八部分:第三节 - 事件处理:响应顾客的操作
用户与界面的互动是通过事件触发的,比如点击按钮、在输入框中输入文本、提交表单等。React 提供了一套跨浏览器的事件系统,让我们可以在组件中方便地处理这些事件。这就像点餐系统需要能够识别顾客的各种操作(按键、滑动屏幕)并作…...
共识机制全景图:PoW、PoS 与 DAG 的技术对比
目录 共识机制全景图:PoW、PoS 与 DAG 的技术对比 🧱 一、工作量证明(PoW) 原理概述 优点 缺点 示例代码(Python) 💰 二、权益证明(PoS) 原理概述 优点 缺点 …...
学习笔记085——Spring Data JPA笔记
1、什么是Spring Data JPA? Spring Data JPA 是 Spring 框架的一个子项目,它简化了基于 JPA (Java Persistence API) 的数据访问层的实现。它通过减少样板代码和提供默认实现,让开发者能够更快速地构建数据访问层。 1.1、主要特点 减少样板…...
可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana
可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana 在当今数据驱动的业务环境中,可视化大屏已成为企业展示数据洞察的重要工具。本文将从功能、部署、分享、参数化大屏四个维度对主流可视化大屏工具进…...
内网穿透:打破网络限制的利器!深入探索和简单实现方案
在如今这个数字化时代,网络已经成为我们生活和工作中不可或缺的一部分。但你是否遇到过这样的困扰:在家办公时,想要访问公司内部的文件服务器,却因为网络限制无法连接;搭建了一个炫酷的个人网站,却只能在自…...