1. 请说出你知道的水平垂直居中的方法

总结

  1. 容器 flex 布局,jsutify-content: center; align-items: center;
  2. 容器 flex 布局,子项 margin: auto;
  3. 容器 relative 布局,子项 absolute 布局,left: 50%; top: 50%; transform: translate(-50%, -50%);
  4. 子项 absolute 布局,设置固定宽、高,top,left,bottom,right 都设置为 0,然后设置 margin: auto;

方法一:Flexbox 布局(推荐)

实现方式:

.container {display: flex;justify-content: center; /* 水平居中 */align-items: center; /* 垂直居中 */
}

特点:

  • 简洁、语义明确。
  • 支持现代浏览器。
  • 子元素不需要设置宽高。

方法二:Flex + margin: auto;

实现方式:

.container {display: flex;
}.child {margin: auto;
}

特点:

  • 利用 Flex 容器的自动外边距特性进行居中。
  • 子元素需为块级元素或具有尺寸(宽高)。

方法三:绝对定位 + transform(适用于未知宽高)

实现方式:

.container {position: relative;
}.child {position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);
}

特点:

  • 不依赖子元素的宽高。
  • 兼容性较好。
  • 适用于响应式设计。

方法四:绝对定位 + margin: auto(适用于已知宽高)

实现方式:

.container {position: relative;
}.child {position: absolute;left: 0;right: 0;top: 0;bottom: 0;width: 200px;height: 100px;margin: auto;
}

特点:

  • 需要指定子元素的宽高。
  • margin: auto 在绝对定位下依然有效。

方法五:Grid 布局(现代方式)

实现方式:

.container {display: grid;place-items: center;
}

特点:

  • 使用 CSS Grid 的简写属性 place-items
  • 写法简洁,兼容性良好(现代浏览器支持)。

方法六:表格单元格对齐(旧方法)

实现方式:

.container {display: table-cell;vertical-align: middle;text-align: center;
}

特点:

  • 父容器需有明确的高度。
  • 适合文本或内联元素居中。

方法七:line-height + text-align(适用于单行文本)

实现方式:

.container {height: 100px;line-height: 100px;text-align: center;
}

特点:

  • 仅适用于单行文本。
  • 不适合复杂结构。

总结对比表

方法是否需要知道宽高是否推荐适用场景
Flex 布局✅ 推荐现代布局首选
Flex + margin auto⚠️ 可选简单场景
绝对定位 + transform✅ 推荐响应式设计
绝对定位 + margin auto⚠️ 可选固定尺寸
Grid 布局✅ 推荐现代项目
表格单元格❌ 不推荐老旧项目兼容
line-height❌ 不推荐单行文本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/diannao/91289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS Code `launch.json` 完整配置指南:参数详解 + 配置实例

文章目录📦 一、基本结构🔍 二、单个配置项详解示例配置:🧩 三、字段说明与可选值📁 四、常用变量(宏替换)🛠️ 五、常见配置实例1️⃣ 调试当前打开的 .py 文件2️⃣ 调试 Jupyter …

使用浏览器inspect调试wx小程序

edge://inspect/#devices调试wx小程序 背景: 在开发混合项目的过程中,常常需要在app环境排查问题,接口可以使用fiddler等工具来抓包,但是js错误就不好抓包了,这里介绍一种调试工具-浏览器。 调试过程 首先电脑打开edg…

【论文阅读】-《Simple Black-box Adversarial Attacks》

简单黑盒对抗攻击 Chuan Guo Jacob R. Gardner Yurong You Andrew Gordon Wilson Kilian Q. Weinberger 摘要 我们提出了一种在黑盒(black-box)场景下构建对抗样本(adversarial images)的极其简单的方法。与白盒(…

基于ASP.NET+SQL Server实现(Web)企业进销存管理系统

企业进销存管理系统的设计和实现一、摘要进销存管理是现代企业生产经营中的重要环节,是完成企业资源配置的重要管理工作,对企业生产经营效率的最大化发挥着重要作用。本文以我国中小企业的进销存管理为研究对象,描述了企业进销存管理系统从需…

(LeetCode 面试经典 150 题 ) 15. 三数之和 (排序+双指针)

题目:15. 三数之和 思路:排序双指针,时间复杂度0(n^2nlogn)。 先将数组nums升序排序,方便去重和使用双指针。第一层for循环来枚举第一位数,后面使用双指针来找到第二个、第三个数即可,细节看注释。 C版本…

easy-springdoc

介绍 简化springdoc的使用&#xff08;可以搭配knife4j-openapi3-jakarta-spring-boot-starter一起使用&#xff09; maven引用 <dependency><groupId>io.github.xiaoyudeguang</groupId><artifactId>easy-springdoc</artifactId><version>…

配置nodejs,若依

1.配置node.js环境 Node.js — Download Node.js 1.下载好一路下一步&#xff0c;可以安装到d盘 装完之后执行 npm -v 显示版本号即安装成功 2.安装好后新建两个文件夹&#xff0c;node_cache和node_global 3.配置环境变量 新建变量 在path里编辑变量 4.配置用户变量 5.…

Python学习之路(十二)-开发和优化处理大数据量接口

文章目录一、接口设计原则二、性能优化策略1. 数据库优化2. 缓存机制3. 并发模型三、内存管理技巧1. 内存优化实践2. 避免内存泄漏四、接口测试与监控1. 性能测试2. 日志与监控3. 错误处理与限流五、代码示例&#xff08;Flask 流式处理&#xff09;六、部署建议一、接口设计原…

【实时Linux实战系列】实时数据流的网络传输

在实时系统中&#xff0c;数据流的实时传输是许多应用场景的核心需求之一。无论是工业自动化中的传感器数据、金融交易中的高频数据&#xff0c;还是多媒体应用中的视频流&#xff0c;都需要在严格的时间约束内完成数据的传输。实时数据流的传输不仅要求高吞吐量&#xff0c;还…

C#数组(一维数组、多维数组、交错数组、参数数组)

在 C# 中&#xff0c;数组是一种用于存储固定大小的相同类型元素的集合。数组可以包含值类型、引用类型或对象类型的元素&#xff0c;并且在内存中是连续存储的。以下是关于 C# 数组的详细介绍&#xff1a;1. 一维数组声明与初始化// 声明数组 int[] numbers; // 声…

Dify离线安装包-集成全部插件、模板和依赖组件,方便安可内网使用

项目介绍 Dify一键离线安装包&#xff0c;集成安装了全部插件、模板&#xff0c;并集成了dify全部插件所需的依赖组件。方便你在内网、安可环境等离线状态下使用。 Dify是一个开源的LLM应用开发平台。其直观的界面结合了AI工作流、RAG管道、Agent、模型管理、可观测性功能等&…

面试150 翻转二叉树

思路 采用先序遍历&#xff0c;可以通过新建根节点node&#xff0c;将原来root的右子树连到去node的左子树中&#xff0c;root的左子树连到去node的右子树中。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): …

C++-linux系统编程 3.gcc编译工具

GCC编译工具链完全指南 GCC&#xff08;GNU Compiler Collection&#xff09;是Linux系统下最常用的编译器套件&#xff0c;支持C、C、Objective-C等多种编程语言。本章将深入讲解GCC的编译流程、常用选项及项目实战技巧。 一、GCC编译的四个核心阶段 GCC编译一个程序需要经过四…

uView UI 组件大全

uView UI 是一个基于 uni-app 的高质量 UI 组件库&#xff0c;提供丰富的跨平台组件&#xff08;支持 H5、小程序、App 等&#xff09;。以下是其核心组件的分类大全及功能说明&#xff0c;结合最新版本&#xff08;1.2.10&#xff09;整理&#xff1a; &#x1f4e6; 一、基础…

QWidget 和 QML 的本质和使用上的区别

QWidget 和 QML 是 Qt 框架中两种不同的 UI 开发技术&#xff0c;它们在底层实现、设计理念和使用场景上有显著区别。以下是它们的本质和主要差异&#xff1a;1. 本质区别特性QWidgetQML (Qt Modeling Language)技术基础基于 C 的面向对象控件库基于声明式语言&#xff08;类似…

中转模型服务的风险

最近发现一些 AI 相关帖子下&#xff0c;存在低质 claude code 中转的小广告。 其中转的基本原理就是 claude code 允许自己提供 API endpoint 和 key&#xff0c;可以使用任意一个 OpenAI API 兼容的供应商&#xff0c;就这么简单。 进一点 claude token&#xff0c;再混入一点…

前端Vue.js面试题(3)

✨✨✨目录 1.v-model的原理是什么样的&#xff1f; 2.Vue的生命周期&#xff1f; 3.Vue子组件和父组件执行顺序&#xff1f; 4.created和mounted的区别&#xff1f; 5.vue中&#xff0c;推荐在哪个生命周期发起请求&#xff1f; 6.keep-alive中的生命周期有哪些&#xf…

leetcode:HJ18 识别有效的IP地址和掩码并进行分类统计[华为机考][字符串]

学习要点 bitset<8>ostringstreamstoistring.findstring.substr 题目链接 识别有效的IP地址和掩码并进行分类统计_牛客题霸_牛客网 题目描述 解法 #include <iostream> #include <bits/stdc.h> #include <sstream> #include <string> #inclu…

JavaEE Tomcat

企业开发介绍 JavaEE 规范 JavaEE规范是J2EE规范的新名称,早期被称为 J2EE 规范,其全称是 Java 2 Platform Enterprise Edition,是由 SUN 公司领导、各厂家共同制定并得到广泛认可的工业标准(JCP 组织成员)。 其中,JCP 组织(官网)的全称是 Java Community Process,…

什么是神经网络,常用的神经网络,如何训练一个神经网络

神经网络&#xff1a;是深度学习的核心技术。模仿生物神经元工作方式的计算模型&#xff0c;由大量互相连接是神经元组成&#xff0c;通过数据学习复杂的模式和关系。1、神经网络基本组成&#xff1a;神经元、层、连接神经元神经网络的最小单元。每个神经元接受输入&#xff0c…