【面试题】在 CSS 中,实现一个 div 中的子 div 水平垂直居中

1. 使用 Flexbox

特点:简单、直观,现代浏览器支持良好。
代码:

css

.parent {display: flex;justify-content: center; /* 水平居中 */align-items: center;     /* 垂直居中 */height: 200px;           /* 父容器需有高度 */
}
.child {/* 子元素样式随意 */
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 实现简单,代码少。

  • 动态适应子元素大小。 缺点:

  • 兼容性稍差(IE9 及以下不支持)。


2. 使用 Grid

特点:类似 Flexbox,但更强大,适合复杂布局。
代码:

css

.parent {display: grid;place-items: center; /* 同时实现水平和垂直居中 */height: 200px;
}
.child {/* 子元素样式随意 */
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 语法简洁,功能强大。

  • 支持二维布局。 缺点:

  • 兼容性较 Flexbox 更差(IE11 需要前缀)。


3. 使用 position absolute 和 transform

特点:传统方法,兼容性好。
代码:

css

.parent {position: relative;height: 200px;
}
.child {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 兼容性极佳(支持老旧浏览器)。

  • 不依赖父元素具体宽高。 缺点:

  • 需要知道子元素宽高变化时调整 transform。

  • 代码稍复杂。


4. 使用 position absolute 和 margin auto

特点:需要固定子元素宽高。
代码:

css

.parent {position: relative;height: 200px;
}
.child {position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;width: 100px; /* 子元素需固定宽高 */height: 50px;
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 兼容性好。

  • 不需要额外的计算。 缺点:

  • 子元素必须有明确的宽高。

  • 不够灵活。


5. 使用 position absolute 和计算偏移

特点:手动计算偏移量,适合固定尺寸场景。
代码:

css

.parent {position: relative;height: 200px;
}
.child {position: absolute;top: 50%;left: 50%;width: 100px; /* 子元素需固定宽高 */height: 50px;margin-left: -50px; /* 宽度的一半 */margin-top: -25px;  /* 高度的一半 */
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 兼容性极好。

  • 直观易懂。 缺点:

  • 需要手动计算宽高偏移。

  • 子元素尺寸变化时需调整。


6. 使用 table-cell

特点:利用表格特性,较老式方法。
代码:

css

.parent {display: table-cell;vertical-align: middle;text-align: center;height: 200px;width: 200px; /* 需要宽度 */
}
.child {display: inline-block;
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 兼容性好(支持老浏览器)。 缺点:

  • 需要额外调整子元素为 inline-block。

  • 不够现代化,维护性差。


7. 使用 line-height(单行文本居中)

特点:适合单行文本或简单内容。
代码:

css

.parent {height: 200px;line-height: 200px; /* 与高度一致 */text-align: center;
}
.child {display: inline-block;line-height: normal; /* 重置子元素行高 */
}

html

<div class="parent"><div class="child">内容</div>
</div>

优点:

  • 简单,适合文本居中。 缺点:

  • 只适用于单行内容,多行或复杂内容不适用。


总结对比

方法

优点

缺点

兼容性

Flexbox

简单、灵活

IE9+

较好

Grid

简洁、强大

IE11+(需前缀)

一般

position + transform

兼容性好、动态适应

代码稍复杂

极好

position + margin

兼容性好

需固定宽高

极好

position + 计算

直观、兼容性好

需手动计算

极好

table-cell

兼容老浏览器

不够现代

极好

line-height

简单(单行)

仅限单行内容

极好

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

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

相关文章

二层综合实验

拓扑图 实验要求 1.内网IP地址使用172.16.6.0/16分配 2.sw1和sW2之间互为备份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通过DHCP获取IP地址 5.ISP只能配置IP地址 6.所有电脑可以正常访问IsP路由器环回 实验思路 这是一个二层综合实验每当拿到一个实验看清楚要求之后都有…

PS 切割图片

选择矩形工具绘制矩形 选中全部矩形&#xff0c;旋转一下角度 鼠标选中最下面的黄色图片&#xff0c;按住 Ctrl 键&#xff0c; 再用鼠标点击矩形的缩略图&#xff0c;选中选区&#xff0c;再按下 ctrlj &#xff0c;复制选区。 同样操作弄好其他的矩形选区&#xff0c;再删除…

项目管理证书 PMP 的含金量高吗?

一、国内PMP的含金量 1. 行业认可度 高需求行业&#xff1a;IT、通信、建筑、制造、金融等行业对PMP认可度较高&#xff0c;尤其是跨国企业、大型国企&#xff08;如华为、阿里、腾讯、中建等&#xff09;常将PMP作为项目经理岗位的优先录用条件。 招聘门槛&#xff1a;部分企…

旅游CMS选型:WordPress、Joomla与Drupal对比

内容概要 在旅游行业数字化转型进程中&#xff0c;内容管理系统&#xff08;CMS&#xff09;的选择直接影响网站运营效率与用户体验。WordPress、Joomla和Drupal作为全球主流的开源CMS平台&#xff0c;其功能特性与行业适配性存在显著差异。本文将从旅游企业核心需求出发&…

LeetCode349两个数组的交集

思路&#xff1a; 这个题目是查找交集&#xff0c;考虑用哈希数组&#xff0c;c语言用数组建立哈希表来解题&#xff0c;题目限定了数组长度在1000以内&#xff0c;那么可以设定一个result数组用于存储交集 1.我们需要将nums1映射到哈希表中 2.遍历nums2查询哈希表中是否存在该…

安装教程:windows上安装oracle详细教程

文章目录 前言一、下载 Oracle 安装包二、安装步骤三、连接ORACLE可视化工具1.1 PL/SQL Developer1.2 navicat 结束语优质源码分享 windows上安装oracle详细教程&#xff0c;在Windows上安装Oracle数据库需遵循以下步骤&#xff1a;首先&#xff0c;从官网下载对应版本的Oracle…

4、网工软考—VLAN配置—hybird配置

1、实验环境搭建&#xff1a; 2、实验过程 SW1&#xff1a; 先创建vlan2和vlan3 [Huawei-Ethernet0/0/2]port link-type hybrid //hybird端口 [Huawei-Ethernet0/0/2]port hybrid pvid vlan 2 [Huawei-Ethernet0/0/2]port hybrid untagged vlan 10 //撕掉vlan10的标签 …

平台清洗行动:AI浏览器用户生存率高出传统方案17倍

平台清洗行动&#xff1a;AI 浏览器用户生存率高出传统方案 17 倍 在这个数字化时代&#xff0c;网络环境的复杂性不断增加&#xff0c;用户在浏览网页时面临着各种风险&#xff0c;包括恶意软件、钓鱼攻击和隐私泄露等。为了应对这些挑战&#xff0c;AI 浏览器应运而生&#…

【C++篇】C++入门基础(一)

&#x1f4ac; 欢迎讨论&#xff1a;在阅读过程中有任何疑问&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果你觉得这篇文章对你有帮助&#xff0c;记得点赞、收藏&#xff0c;并分享给更多对C感兴趣的…

MaskFormer语义分割算法测试

MaskFormer是一套基于transformer结构的语义分割代码。 链接地址&#xff1a; https://github.com/facebookresearch/MaskFormer/tree/main 测试用的数据集&#xff1a;ADE20k Dataset MIT Scene Parsing Benchmark 该数据集可通过上述链接下载&#xff0c;其中training含有…

javaWeb vue的简单语法

一、简介 两大核心优势&#xff1a; 声明式渲染&#xff1a;Vue 基于标准 HTML 拓展了一套模板语法&#xff0c;使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。 响应性&#xff1a;Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 D…

vue create创建 Vue-router 工程

vue create创建 Vue-router 工程 参考 创建vue项目的两种方式&#xff1a;vue-create与vite https://www.cnblogs.com/reverse-x/p/16806534.html Vue2 脚手架 创建工程 测试程序 https://blog.csdn.net/wowocpp/article/details/146590400 在 上面的基础上 cd .\vue2-demo\…

CXL UIO Direct P2P学习

前言&#xff1a; 在CXL协议中&#xff0c;UIO&#xff08;Unordered Input/Output&#xff09; 是一种支持设备间直接通信&#xff08;Peer-to-Peer, P2P&#xff09;的机制&#xff0c;旨在绕过主机CPU或内存的干预&#xff0c;降低延迟并提升效率。以下是UIO的核心概念及UI…

口腔种植全流程AI导航系统及辅助诊疗与耗材智能化编程分析

一、系统架构与编程框架设计 口腔种植全流程人工智能导航系统的开发是一项高度复杂的多学科融合工程,其核心架构需在医学精准性、工程实时性与临床实用性之间实现平衡。系统设计以模块化分层架构为基础,结合高实时性数据流与多模态协同控制理念,覆盖从数据采集、智能决策到…

李宏毅机器学习笔记(1)—机器学习基本概念+深度学习基本概念

机器学习基本概念 1、获取模型 步骤 1.1、假定未知函数 带未知参数的函数 1.2、定义损失函数 真实值&#xff1a;label MAE MSE 几率分布&#xff0c;cross-entropy? 1.3、优化 单独考虑一个参数 让损失函数最小&#xff0c;找导数为零的点 单独考虑w&#xff0c;w…

专注自习室:番茄工作法实践

专注自习室&#xff1a;番茄工作法实践 我需要一个任务管理工具&#xff0c;但在网上找了很多都找不到合适的工具。市面上的大多数产品过于强调任务完成性&#xff0c;给我带来了很强的心理压力&#xff0c;这种压力最终反而降低了我的工作效率。于是我决定自己动手&#xff0…

【银河麒麟高级服务器操作系统 】虚拟机运行数据库存储异常现象分析及处理全流程

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…

阿里云数据学习20250327

课堂链接&#xff1a;阿里云培训中心 (aliyun.com) 一、课堂问题 (一)课时3 1.支持字符集的含义是什么

使用QuickReporter将多张图片插入在word多行的表格中

之前有一位QuickReporter的用户提到过一个需求。他有大量的图片需要插入在word里面&#xff0c;他的想法是将图片放在一个文件夹内&#xff0c;按编号1,2,3,...编号&#xff0c;然后自动将这些图片从前到后插入到表格中。 这次偶然发现了该需求是可以实现的&#xff0c;且在当…

【大模型】激活函数之SwiGLU详解

文章目录 1. Swish基本定义主要特点代码实现 2. GLU (Gated Linear Unit)基本定义主要特点代码实现 3. SwiGLU基本定义主要特点代码实现 参考资料 SWiGLU是大模型常用的激活函数&#xff0c;是2020年谷歌提出的激活函数&#xff0c;它结合了Swish和GLU两者的特点。SwiGLU激活函…