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

CSS3中布局方式说明

CSS3 提供了多种灵活的布局方式,适用于不同的场景和需求。以下是主要的布局方式及其特点:


1. Flexbox 布局(弹性盒子)

  • 用途:一维布局(水平或垂直方向排列元素)。
  • 特点
    • 通过 display: flex 启用。
    • 弹性分配容器内项目的空间,支持对齐、排序和动态调整大小。
    • 适合导航菜单、卡片布局或组件内部的元素排列。
  • 示例属性justify-content, align-items, flex-grow

2. Grid 布局(网格布局)

  • 用途:二维布局(同时控制行和列)。
  • 特点
    • 使用 display: grid 定义网格容器。
    • 通过行和列的模板定义复杂布局,支持响应式设计。
    • 适合整体页面结构、仪表盘或表单布局。
  • 示例属性grid-template-columns, grid-gap, grid-area

3. 多列布局(Multi-column)

  • 用途:将内容分割为多列(类似报纸排版)。
  • 特点
    • 使用 column-countcolumn-width 控制列数和宽度。
    • 支持列间距 (column-gap) 和分割线 (column-rule)。
    • 适合长文本内容的分栏显示。

4. 浮动布局(Float)

  • 用途:传统布局方式,实现文字环绕或简单网格。
  • 特点
    • 通过 float: left/right 使元素浮动。
    • 需配合 clearfix 清除浮动,逐渐被 Flex/Grid 取代。
    • 常见于早期响应式设计的栅格系统。

5. 定位布局(Positioning)

  • 用途:精确控制元素位置。
  • 特点
    • 使用 position: relative/absolute/fixed/sticky
    • 结合 top, left 等属性定位,适合叠加元素或固定导航栏。
    • 可能脱离文档流,需谨慎使用。

6. 表格布局(Table)

  • 用途:模拟传统表格结构。
  • 特点
    • 使用 display: table, table-row, table-cell
    • 适合需要等高等宽的布局,但语义化较差。

7. 响应式布局(Responsive Design)

  • 用途:适配不同屏幕尺寸。
  • 核心工具
    • 媒体查询(Media Queries):通过 @media 规则应用不同样式。
    • 视口单位vw, vh, vmin, vmax 实现动态尺寸。
    • 常结合 Flex/Grid 实现自适应布局。

8. Inline-Block 布局

  • 用途:行内块元素水平排列。
  • 特点
    • 使用 display: inline-block 使元素在同一行显示。
    • 需处理元素间的默认间隙(如通过父容器 font-size: 0)。

9. CSS Shapes(形状布局)

  • 用途:实现非矩形文本环绕(如圆形、多边形)。
  • 特点
    • 使用 shape-outside 定义元素周围内容的流动形状。
    • 适合创意排版或图文混排设计。

10. Subgrid(子网格)

  • 用途:在 CSS Grid 中嵌套网格时保持对齐。
  • 特点
    • 子元素继承父网格的轨道定义(grid-template-rows: subgrid)。
    • 增强复杂布局的一致性,但兼容性需注意。

选择建议

  • 现代项目优先使用 Flexbox 和 Grid:功能强大且语义清晰。
  • 简单布局可用浮动或定位:适合小型调整或旧浏览器支持。
  • 多列文本用 Multi-column:快速实现分栏效果。
  • 响应式设计结合媒体查询:确保跨设备兼容性。

掌握这些布局方式后,可根据需求灵活组合,构建高效、可维护的页面结构。

相关文章:

CSS3中布局方式说明

CSS3 提供了多种灵活的布局方式,适用于不同的场景和需求。以下是主要的布局方式及其特点: 1. Flexbox 布局(弹性盒子) 用途:一维布局(水平或垂直方向排列元素)。特点: 通过 display…...

kafka-web管理工具cmak

一. 背景: 日常运维工作中,采用cli的方式进行kafka集群的管理,还是比较繁琐的(指令复杂?)。为方便管理,可以选择一些开源的webui工具。 推荐使用cmak。 二. 关于cmak: cmak是 Yahoo 贡献的一款强大的 Apac…...

T41LQ专为人工智能物联网(AIoT)应用设计,适用于智能安防、智能家居、机器视觉等领域 软硬件资料+样品测试

君正(Ingenic)T系列芯片涵盖多个型号,每个型号根据不同应用需求提供了多个版本。以下是各型号及其主要版本: 1. T23系列: T23N:标准版,适用于移动摄像机、安全监控、视频通话和视频分析等应用…...

Unity中动态切换光照贴图LightProbe的方法

关键代码:LightmapSettings.lightmaps lightmapDatas; LightmapData中操作三张图:lightmapColor,lightmapDir,以及一张ShadowMap 这里只操作前两张: using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public cl…...

考研408数据结构线性表核心知识点与易错点详解(附真题示例与避坑指南)

一、线性表基础概念 1.1 定义与分类 定义:线性表是由n(n≥0)个相同类型数据元素构成的有限序列,元素间呈线性关系。 分类: 顺序表:元素按逻辑顺序存储在一段连续的物理空间中(数组实现&…...

C++基础知识(七)之STL算法、智能指针、文件操作、C++异常、断言

二十一、STL算法 STL提供了很多处理容器的函数模板,它们的设计是相同的,有以下特点: 1)用迭代器表示需要处理数据的区间。 2)返回迭代器放置处理数据的结果(如果有结果)。 3)接受…...

vue3.2响应式优化

Vue 3.2 在响应式方面做了诸多优化,进一步提升了性能,下面为你详细介绍: 1. shallowReactive 和 shallowRef 的性能优势 原理:shallowReactive 和 shallowRef 是浅层响应式 API。shallowReactive 仅对对象的第一层属性进行响应式…...

【Linux】线程概念与控制

线程概念与控制 一.Linux线程概念1.什么是线程?2.分页式存储管理1.虚拟地址和页表的由来2.物理内存管理3.页表4.页目录结构5.两级页表的地址转换6.缺页中断(异常) 3.线程的优点(面试题)4.线程的缺点5.线程异常6.线程用途 二.Linux进程VS线程1.进程和线程2.进程的多个…...

零基础学习Python之循环详解:从入门到实践_我的学习Python记录11

零基础学习Python之循环详解:从入门到实践_我的学习Python记录11 一、前言 最近我在学习Python,发现很多编程概念和用法都让我感到陌生,尤其是循环这个概念。今天,我将分享我学到的循环知识,希望能帮助到和我一样的初…...

电子电路中,正负双电源供电的需求原因

1. 允许信号双向摆动 - **交流信号的处理**:许多电路(如音频放大器、运算放大器)需要处理正负交替变化的交流信号(例如声音信号、传感器输出)。如果仅用单正电源(如12V),信号的“负…...

ROS环境搭建

ROS首次搭建环境 注:以下内容都是在已经安装好ros的情况下如何搭建workplace 一、创建工作空间二、创建ROS包三、注意 注:以下内容都是在已经安装好ros的情况下如何搭建workplace 如果没有安装好,建议鱼香ros一步到位:鱼香ROS 我也是装了好久…...

java后端开发day26--常用API(一)

(以下内容全部来自上述课程) 1.Math 1.简单介绍 是一个帮助我们用于进行数学计算的工具类私有化构造方法,所有的方法都是静态的 2.常用方法 不要背,忘了就查文档。 3.练习题 1.判断一个数是否为质数(优化版&am…...

SpringBoot接口自动化测试实战:从OpenAPI到压力测试全解析

引言:接口测试的必要性 在微服务架构盛行的今天,SpringBoot项目的接口质量直接影响着系统稳定性。本文将分享如何通过自动化工具链实现接口的功能验证与性能压测,使用OpenAPI规范打通测试全流程,让您的接口质量保障体系更加完备。…...

分布式中间件:Redis介绍

目录 Redis 概述 Redis 的特点 高性能 丰富的数据结构 持久化 分布式特性 简单易用 Redis 的数据结构 字符串(String) 哈希(Hash) 列表(List) 集合(Set) 有序集合&…...

Python中文自然语言处理库SnowNLP

SnowNLP 介绍 SnowNLP 是一个基于 Python 的中文自然语言处理库,专为处理中文文本而设计。它受到 TextBlob 的启发,但与 TextBlob 不同的是,SnowNLP 没有使用 NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字…...

Linux-计算机网络.udp

1.收发函数: read()/write () ///通用文件读写,可以操作套接字。 recv(,0) /send(,0) ///TCP 常用套机字读写 recvfrom()/sendto() ///UDP 常用套接字读写 ssize_t recv(int sockfd, void *buf, size_t len, …...

【大厂AI实践】清华:清华古典诗歌自动生成系统“九歌”的算法

【大厂AI实践】清华:清华古典诗歌自动生成系统“九歌”的算法 🌟 嗨,你好,我是 青松 ! 🌈 自小刺头深草里,而今渐觉出蓬蒿。 文章目录 **01 自动作诗缘起****1. 诗歌自动写作** **02 九歌的模型…...

Docker安装Postgres_16数据库

PostgreSQL简介 PostgreSQL 是一个功能强大、开源的关系型数据库管理系统(RDBMS),以其可靠性、功能丰富性和可扩展性而闻名。它支持复杂的查询、事务完整性、并发控制以及多种数据类型和扩展功能,适用于各种规模的应用程序; 适用传…...

VSCode 移除EmmyLua插件的红色波浪线提示

VSCode 中安装插件EmmyLua,然后打开lua文件的时候,如果lua代码引用了C#脚本的变量,经常出现 “undefined global variable: UnityEngineEmmyLua(undefined-global)” 的红色波浪线提示,这个提示看着比较烦人,我们可以通…...

快慢指针【等分链表、判断链表中是否存在环】

一、等分链表:找到链表的中间节点 Java 实现 class ListNode {int val;ListNode next;ListNode(int val) {this.val val;this.next null;} }public class MiddleOfLinkedList {public ListNode findMiddleNode(ListNode head) {if (head null) {return null;}L…...

doris:阿里云 DLF

阿里云 Data Lake Formation(DLF) 是阿里云上的统一元数据管理服务。兼容 Hive Metastore 协议。 什么是 Data Lake Formation 因此我们也可以和访问 Hive Metastore 一样,连接并访问 DLF。 连接 DLF​ 创建 DLF Catalog​ CREATE CATALOG dlf PROPERTIES ("…...

大模型巅峰对决:DeepSeek vs GPT-4/Claude/PaLM-2 全面对比与核心差异揭秘

文章目录 一、架构设计深度解剖1.1 核心架构对比图谱1.2 动态MoE架构实现架构差异分析表 二、训练策略全面对比2.1 训练数据工程对比2.2 分布式训练代码对比DeepSeek混合并行实现GPT-4 Megatron实现对比 2.3 关键训练参数对比 三、性能表现多维评测3.1 基准测试全景对比3.2 推理…...

C语言基础知识02

格式化输入输出 函数名:printf() 格式控制符:%c //把数据转换成字符型 cahr %d //把数据转换为有符号十进制整型 int short %ld // long %f //把数据转成单精度浮点型 flot %d //double %s …...

Linux的进程观:简单性如何成就强大性(三)

1. 环境变量 1.1. 基本概念 环境变量(environment variables)⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数。 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪⾥,但是照样可以链接…...

element-ui infiniteScroll 组件源码分享

简单分享 infiniteScroll 组件源码,主要有以下四个方面: 1、infiniteScroll 页面结构。 2、infiniteScroll 组件属性。 3、组件内部的方法。 4、存在的问题。 一、infiniteScroll 页面结构: 二、页面属性。 2.1 infinite-scroll-disab…...

vulnhub靶场之【digitalworld.local系列】的bravery靶机

前言 靶机:digitalworld.local-bravery,IP地址为192.168.10.8 攻击:kali,IP地址为192.168.10.6 kali采用VMware虚拟机,靶机采用virtualbox虚拟机,网卡都为桥接模式 这里官方给的有两种方式,…...

SpringBoot 整合mongoDB并自定义连接池,实现多数据源配置

要想在同一个springboot项目中使用多个数据源,最主要是每个数据源都有自己的mongoTemplate和MongoDbFactory。mongoTemplate和MongoDbFactory是负责对数据源进行交互的并管理链接的。 spring提供了一个注解EnableMongoRepositories 用来注释在某些路径下的MongoRepo…...

部署Joplin私有云服务器postgres版-docker compose

我曾经使用过一段时间 Joplin,官方版本是收费的,而我更倾向于将数据掌握在自己手中。因此,在多次权衡后,我决定自己搭建 Joplin 服务器并进行尝试。 个人搭建的版本与数据库直连,下面是使用 Docker Compose 配置数据库…...

C++20 标准化有符号整数:迈向更可预测的整数运算

文章目录 一、背景:为什么需要标准化?二、2 的补码:原理与优势(一)2 的补码原理(二)2 的补码的优势 三、C20 的变化:明确 2 的补码四、如何利用这一特性优化代码(一&…...

npm ERR! code 128 npm ERR! An unknown git error occurred

【问题描述】 【问题解决】 管理员运行cmd(右键window --> 选择终端管理员) 执行命令 git config --global url.“https://”.insteadOf ssh://git cd 到项目目录 重新执行npm install 个人原因,这里执行npm install --registryhttps:…...