CSS关于居中的问题

文章目录

  • 1. 行内和块级元素自身相对父控件居中
    • 1.1. 块级元素相对父控件居中
    • 1.2. 行内元素相对于父控件居中
  • 2. 实现单行文字垂直居中
  • 3. 子绝父相实现子元素的水平垂直居中
    • 3.1. 方案一
      • 3.1.1. 示例
    • 3.2. 方案二
      • 3.2.1. 示例
    • 3.3. 方案三(推荐)
      • 3.3.1. 示例
    • 3.4. 方案四(了解一下)
  • 4. flex 实现水平垂直居中
    • 4.1. 方法一
    • 4.2. 方法二

1. 行内和块级元素自身相对父控件居中

给行内和块级元素设置宽高,出现的现象:

  • 设置宽高对行内元素没有效果
  • 设置宽度对块级元素有效果
span {width: 100px;height: 100px;text-align: center;background-color: skyblue;
}
div {width: 100px;height: 100px;background-color: pink;
}

image-20240309142431457

原因是因为行内元素的宽高是由内容决定的。

1.1. 块级元素相对父控件居中

只能通过盒子模型的外边距实现,这个属性写在元素本身上面。

div {width: 100px;height: 100px;background-color: pink;margin: 0 auto;
}

image-20240309142720538

如果是没有设置宽高的话,可以通过父控件的text-align实现,但是不能用margin: 0 auto实现。

1.2. 行内元素相对于父控件居中

只能通过父控件的text-align实现。

body {text-align: center;
}
span {width: 100px;height: 100px;background-color: skyblue;
}

image-20240309142928395

2. 实现单行文字垂直居中

对于单行文字:可以实现文字垂直居中(height 等于 line-height)。

image-20240309144235356

div {width: 300px;height: 300px;background-color: pink;line-height: 300px;
}
<div>我是单行文字</div>

由于字体设计原因,靠上述办法实现的居中,并不是绝对的垂直居中,但如果一行中都是文字,不会太影响观感。

3. 子绝父相实现子元素的水平垂直居中

前提:定位的元素必须设置宽和高!!!

这里我们创建父元素和子元素,并设置样式。

.father {width: 600px;height: 600px;background: pink;
}
.son {width: 300px;height: 300px;background: #95a299;
}

image-20240310184506760

3.1. 方案一

直接计算移动的需要距离。

left: 父子元素高度差的一半;
top: 父子元素宽度差的一半;

3.1.1. 示例

子元素 y 轴移动的距离是父子元素高度差的一半,

子元素 x 轴移动的距离是父子元素宽度差的一半。

.father {width: 600px;height: 600px;background: pink;position: relative;
}.son {width: 300px;height: 300px;background: #95a299;position: absolute;top: 150px;left: 150px;
}

弊端:偏移值lefttop是写死的,如果父元素的宽度发生改变,子元素就无法水平居中了。

3.2. 方案二

这里的lefttop我们可以用百分比来表示,子元素相对父元素移动 50%的距离后,再根据子元素的外边距进行调整。

left: 50%;
top: 50%;
margin-left: 自身宽度的一半;
margin-top: 自身高度的一半;

3.2.1. 示例

.son {width: 300px;height: 300px;background: #95a299;position: absolute;top: 50%;left: 50%;margin-left: -150px; /* 向左移动自身宽度的一半 */margin-top: -150px; /* 向上移动自身宽度的一半 */
}

弊端:由于margin-leftmargin-top值是写死的,如果 son 的宽度发生改变,子元素也无法水平居中。

3.3. 方案三(推荐)

子元素相对父元素移动 50%的距离后,使用transform调整子元素的位置。

3.3.1. 示例

width: 300px;
height: 300px;
background: #95a299;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

优势:不用计算调整子元素移动移动的距离,用百分比表示即可。

3.4. 方案四(了解一下)

子绝父相,子元素设置以下属性,也能进行水平垂直居中。

简单理解:四个方向有相同的力在拉这个盒子,margin:auto是让这个盒子的位置保持中立,来达到盒子处于正中心。

        left: 0;right: 0;top: 0;bottom: 0;margin: auto;

4. flex 实现水平垂直居中

4.1. 方法一

父元素开启 flex 布局,随后使用 justify-contentalign-items 实现水平垂直居中。

display: flex;
/* 设置子元素水平居中 */
justify-content: center;
/* 设置子元素垂直居中 */
align-items: center;
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>12-flex布局-实现子元素水平垂直居中</title><style>.father {background: pink;height: 300px;display: flex;/* 设置子元素水平居中 */justify-content: center;/* 设置子元素垂直居中 */align-items: center;}.son {width: 100px;height: 100px;background: #a5ccaf;}</style></head><body><div class="father"><div class="son"></div></div></body>
</html>

4.2. 方法二

父容器开启 flex 布局,随后子元素 margin: auto

.father {background: pink;height: 300px;display: flex;
}
.son {width: 100px;height: 100px;background: #a5ccaf;margin: auto;
}

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

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

相关文章

AI大模型知识点大梳理_ai大模型的精度以下哪项描述的准确

AI大模型是什么 AI大模型是指具有巨大参数量的深度学习模型&#xff0c;通常**包含数十亿甚至数万亿个参数。**这些模型可以通过学习大量的数据来提高预测能力&#xff0c;从而在自然语言处理、计算机视觉、自主驾驶等领域取得重要突破。 AI大模型的定义具体可以根据参数规模…

短信验证码研究:公开的短信验证码接口、不需要注册的短信验证码接口

短信验证码研究&#xff1a;公开的短信验证码接口、不需要注册的短信验证码接口 0 说明 本文提供了一个短信验证码接口&#xff0c;主要用于以下场景&#xff1a; 1、用于开发调试 2、用于申请验证码困难的企业和个人 3、用于短信验证码认证还没有通过&#xff0c;但是着急…

DBeaver操作MySQL无法同时执行多条语句的解决方法

DBeaver选择数据库连接&#xff0c;在【驱动属性】中将allowMultiQueries允许执行多条语句置为True

泰迪智能科技大数据实验室产品-实训管理平台介绍

高校大数据实验室通常配备有先进的计算机硬件和软件工具&#xff0c;以及专门的数据库和分析平台&#xff0c;以便研究人员和学生能够进行复杂的数据处理、分析和解释。主要利用大数据技术进行科学研究、技术开发和人才培养。 泰迪智能科技实训管理平台作为教学核心&#xff0c…

JS进阶-构造函数

学习目标&#xff1a; 掌握构造函数 学习内容&#xff1a; 构造函数 构造函数&#xff1a; 封装是面向对象思想中比较重要的一部分&#xff0c;js面向对象可以通过构造函数实现的封装。 同样的将变量和函数组合到了一起并能通过this实现数据的共享&#xff0c;所不同的是借助…

小程序需要进行软件测试吗?小程序测试有哪些测试内容?

在如今移动互联网快速发展的时代&#xff0c;小程序已成为人们生活中不可或缺的一部分。然而&#xff0c;面对日益增长的小程序数量和用户需求&#xff0c;小程序的稳定性和质量问题日益突显。因此&#xff0c;对小程序进行软件测试显得尤为重要。 近期的一项调查显示&#xf…

【架构】分布式与微服务架构解析

分布式与微服务架构解析 一、分布式1、什么是分布式架构2、为什么需要分布式架构3、分布式架构有哪些优势&#xff1f;4、分布式架构有什么劣势&#xff1f;5、分布式架构有哪些关键技术&#xff1f;6、基于分布式架构如何提高其高性能&#xff1f;7、如何基于架构提高系统的稳…

【工具】咸鱼小助手,一款咸鱼之王辅助工具

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ Github&#xff1a;咸鱼之王的自动化脚本&#xff0c;自动答题、爬塔、领资源等 下载&#xff1a;(密码:9u22) 咸鱼小助手 文档&#xff1a;腾讯文档 视…

软考《信息系统运行管理员》-3.2信息系统设施运维的环境管理

3.2信息系统设施运维的环境管理 1 计算机机房的选址要求 电子计算机机房地理位置 选择水源充足&#xff0c;电子比较稳定可靠&#xff0c;交通通信方便&#xff0c;自然环境清洁的地点要远离产生粉尘、油烟、有害气体以及生产或存储具有腐蚀性、易燃、易爆物品的工厂、仓库、…

3d模型选不中任何东西是什么原因?---模大狮模型网

在进行3D模型设计过程中&#xff0c;有时会遇到无法选择模型中的任何元素的问题。这种情况可能会影响设计师的工作效率和体验&#xff0c;因此了解问题的原因以及如何解决是至关重要的。本文将探讨在3D建模中遇到无法选中模型元素的原因及解决方法。 一、问题原因分析 无法选中…

07浅谈大语言模型可调节参数tempreture

浅谈temperature 什么是temperature&#xff1f; temperature是大预言模型生成文本时常用的两个重要参数。它的作用体现在控制模型输出的确定性和多样性&#xff1a; 控制确定性&#xff1a; temperature参数可以控制模型生成文本的确定性&#xff0c;大部分模型中temperatur…

医疗器械网络安全 | 漏洞扫描、渗透测试没有发现问题,是否说明我的设备是安全的?

尽管漏洞扫描、模糊测试和渗透测试在评估系统安全性方面是非常重要和有效的工具&#xff0c;但即使这些测试没有发现任何问题&#xff0c;也不能完全保证您的医疗器械是绝对安全的。这是因为安全性的评估是一个多维度、复杂且持续的过程&#xff0c;涉及多个方面和因素。以下是…

数模打怪(一)之层次分析法

一、什么是层次分析法 层次分析法&#xff08;AHP&#xff09;主要用于解决评价类问题&#xff08;可打分&#xff09; 比如哪种方案更好、哪位运动员更优秀等 二、层次分析法的三个步骤 1、建立层次结构 分析题目&#xff0c;找出评价类问题的三要素&#xff1a; &#x…

android13 设置左右分屏修改为单屏幕,应用分屏改为单屏

1.前言 android13中,系统设置变成,左边是一级菜单,右侧是二级菜单, 这样跟我们以前android7/8/9的布局是不一样的,我们需要将它修改为一级菜单,点进去才是二级菜单这种。 效果如下 2.系统设置实现分析 它这里使用的是google新出的embedding activity, 相关的知识这里…

从重庆元宇宙国风秀看未来元宇宙发展趋势

2024年2月24日&#xff0c;为纪念梅兰芳先生诞辰130周年&#xff0c;以“新国风东方美”为主题的【承华灵境】元宇宙国风秀在重庆市人民大礼堂发布。这场活动将中国经典艺术与数字化技术融合&#xff0c;呈现了一场新国风东方美学的跨越时空人文科技之旅&#xff0c;其中的重点…

最后纪元Last Epoch可以通过什么搬砖 游戏搬砖教程

来喽来喽&#xff0c;最后纪元&#xff0c;一款《最后纪元》是一款以获得战利品为基础的暗黑风格动作RPG游戏&#xff0c;玩家将从2281年的毁灭时代追溯到由女神Eterra创造的世界&#xff0c;通过多个时代与黑暗的命运对抗&#xff0c;找到拯救世界的方式。游戏有五种职业&…

萌啦数据多少钱一个月,萌啦数据价格是多少

在跨境电商的浩瀚星海中&#xff0c;Ozon作为俄罗斯及独联体地区领先的电商平台&#xff0c;正吸引着越来越多的商家和创业者的目光。而“萌啦ozon数据”作为专注于Ozon平台数据分析与洞察的服务提供商&#xff0c;更是成为了众多商家在数据驱动决策道路上的得力助手。然而&…

MobaXterm工具

MobaXterm 是一个增强型的 Windows 终端。其为 Windows 桌面提供所有重要的远程网络终端工具&#xff08;如 SSH、X11、RDP、VNC、FTP、SFTP、Telnet、Serial、Mosh、WSL 等&#xff09;&#xff0c;和 Unix 命令&#xff08;如 bash、ls、cat、sed、grep、awk、rsync 等&#…

每日一题~abc356(对于一串连续数字 找规律,开数值桶算贡献)

添加链接描述 题意&#xff1a;对于给定的n,m 。计算0~n 每一个数和m & 之后&#xff0c;得到的数 的二进制中 1的个数的和。 一位一位的算。最多是60位。 我们只需要计算 在 1-n这些数上&#xff0c;有多少个数 第i位 为1. 因为是连续的自然数&#xff0c;每一位上1 的…

ICMP隧道

后台私信找我获取工具 目录 ICMP隧道作用 ICMP隧道转发TCP上线MSF 开启服务端 生成后门木马 msf开启监听 开启客户端icmp隧道 执行后门木马&#xff0c;本地上线 ICMP隧道转发SOCKS上线MSF 开启服务端 生成后门木马 msf开启监听 开启客户端icmp隧道 ​执行后…