如何垂直居中`img`?

news/2024/12/12 6:23:37/文章来源:https://www.cnblogs.com/ai888/p/18601321

有多种方法可以垂直居中 <img> 元素,选择哪种方法取决于 <img> 元素的上下文以及你想要达到的具体效果。以下是一些常用的技巧:

1. Flexbox: 这是现代布局中最推荐的方法,因为它简洁且灵活。

<div style="display: flex; align-items: center; justify-content: center;"><img src="image.jpg" alt="Image">
</div>
  • display: flex; 将父元素设置为 flex 容器。
  • align-items: center; 垂直居中对齐 flex 项(这里是图片)。
  • justify-content: center; 水平居中对齐 flex 项。

2. Grid 布局: 同样非常强大且灵活,尤其适用于更复杂的布局。

<div style="display: grid; place-items: center;"><img src="image.jpg" alt="Image">
</div>
  • display: grid; 将父元素设置为 grid 容器。
  • place-items: center;align-items: center;justify-items: center; 的简写,同时进行水平和垂直居中对齐。

3. 使用表格单元格: 将图像放置在表格单元格中,并设置垂直对齐方式。

<table><tr><td style="vertical-align: middle;"><img src="image.jpg" alt="Image"></td></tr>
</table>
  • vertical-align: middle; 将单元格内容垂直居中。

4. 绝对定位和 transform: 如果图片的尺寸是固定的,可以使用绝对定位和 transform 属性。

<div style="position: relative;"><img src="image.jpg" alt="Image" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
</div>
  • position: relative; 将父元素设置为相对定位,作为绝对定位子元素的参照物。
  • position: absolute; top: 50%; left: 50%; 将图片定位到父元素的中心。
  • transform: translate(-50%, -50%); 将图片向上和向左偏移自身宽度和高度的一半,实现真正的居中。

5. line-height: 如果图片是 inline 元素或 inline-block 元素,并且父元素只有一行文本,可以设置 line-height 等于父元素的高度。

<div style="line-height: 200px;">  <!-- 假设父元素高度为 200px --><img src="image.jpg" alt="Image" style="vertical-align: middle;">
</div>
  • vertical-align: middle;line-height 配合使用,将图片垂直居中对齐到行高。

选择哪种方法?

  • 对于简单的布局,Flexbox 或 Grid 是首选,因为它们更简洁易用。
  • 对于复杂的布局,Grid 通常更合适。
  • 如果你需要兼容非常老的浏览器,表格单元格方法可能更可靠,但代码会比较冗长。
  • 绝对定位和 transform 方法适用于尺寸固定的图片。
  • line-height 方法只适用于单行文本的场景。

记住根据你的具体情况选择最合适的方法。 建议优先使用 Flexbox 或 Grid。

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

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

相关文章

ubuntu20.04.6配置虚拟VCAN

开启vcan设备的命令: sudo ip link add dev vcan0 type vcan 如果没有vcan模块,则先用modprobe命令生成vcan模块: sudo modprobe vcan 如果模块/lib/modules/linux-headers-$(uname -r)下没有vcan.ko,则无法创建vcan模块,需安装linux-headers-$(uname -r): sudo apt inst…

ubuntu20.04.6虚拟机workstation网络配置

步骤1: 设置VMware workstation的虚拟网络编辑器,添加NAT网络:步骤2: 在本地真实主机上设置设置虚拟网络共享,允许其他机器通过本机访问网络。步骤3: 将在创建的虚拟机上配置网络,如下图:图中位置鼠标右键选择设置,将网络改为custom自定义-nat模式

新型知识付费生态系统

新型知识付费生态系统作为教育与软件行业的融合产物,已经成为推动知识传递与商业成功的核心驱动力之一。该生态系统通过一系列前沿科技应用来提升学习体验并实现资源的最佳匹配,从而重塑了在线教育行业的面貌。下面对知识付费在线教育系统的背景、现状和未来趋势进行全面分析…

转载:【AI系统】LLVM 架构设计和原理

在上一篇文章中,我们详细探讨了 GCC 的编译过程和原理。然而,由于 GCC 存在代码耦合度高、难以进行独立操作以及庞大的代码量等缺点。正是由于对这些问题的意识,人们开始期待新一代编译器的出现。在本文,我们将深入研究 LLVM 的架构设计和原理,以探索其与 GCC 不同之处。 …

山西在线教育系统公司

山西在线教育系统行业在近年来展现出蓬勃的发展态势。众多企业在这一领域积极探索并不断推陈出新。以山西交通在线教育培训平台为例,该平台不仅为交通运输系统的党员干部提供了高质量的线上直播培训课程,还显著提高了其学习效果与便捷度。山西在线教育系统作为教育的重要组成…

论文解读-A Comprehensive Survey on Graph Neural Networks

论文介绍论文是2019年定稿的,算是比较陈旧的论文,综述性质的论文。 论文发表于IEEE Transactions on Neural Networks and Learning Systems, 2021。质量挺高的。 论文主要工作论文提出了一个新的图神经网络的分类方法,把图神经网络分为四类:循环图神经网络,卷积图神经网…

基于GoogleNet深度学习网络的手语识别算法matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印)手语How are you,测试识别结果如下:手语I am fine,测试识别结果如下:手语I love you,测试识别结果如下: 2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)%% Dataset = imageDat…

vxe-table 实现任意列拖拽排序

vxe-table 实现任意列拖拽排序,通过 column-drag-config.isCrossDrag 启用任意列拖拽排序,除了自身之外。 官网:https://vxetable.cn启用后可以在不同表头直接任意拖拽,需要注意所有列必须有 field 属性 <template><div><vxe-grid v-bind="gridOptions…

医疗花费预测(保姆级教程)

目标 想要一开始快速抓住一个实验的方向,我觉得一个好方法就是抓住实验目的。 本实验:根据一个人的年龄、性别、BMI、子女个数、是否吸烟和生活地区,预测这个人在医疗方面花费的金额。 线性回归 这里我想问个问题,线性回归是什么,或者说针对于DBSCAN聚类算法之后得到的样本…

在CodeBolcks+wxWidgets+wxSmith下的C++编程教程——用向导创建一个wxWidgets项目(sTetris)

0.前言 我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。 了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”:…

国城杯

n0ob_un4er 打开题目即可得到源码<?php $SECRET = `/readsecret`; include "waf.php"; class User {public $role;function __construct($role) {$this->role = $role;} } class Admin{public $code;function __construct($code) {$this->code = $code;}f…

基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真

1.程序功能描述 基于HMM隐马尔可夫模型的金融数据预测算法.程序实现HMM模型的训练,使用训练后的模型进行预测。 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序% 初始化预测值矩阵yuce和误差矩阵err yuce = zeros(size(data, 1), lens); err = zeros(…