【水平垂直居中布局】CSS实现水平垂直居中的5种方法(附源码)


文章目录

  • 写在前面
  • 涉及知识点
  • 1、子绝对定位父相对定位,子节点设置位移实现
    • 1.1效果
    • 1.2实现源码
  • 2、子绝对定位父相对定位,子节点设置上下边距
    • 2.1 效果
    • 2.2 实现源码
  • 3、利用flex布局实现
    • 3.1 效果
    • 3.2 实现源码
  • 4、利用行高和文本水平居中设置
    • 4.1 效果
    • 4.2 实现源码
  • 5、子绝对定位父相对定位,设置外边距margin实现
    • 5.1 效果
    • 5.2 实现源码
  • 6、源码分享
    • 6.1 百度网盘
    • 6.2 123网盘
    • 6.3 邮箱留言
  • 总结


写在前面

这个题目估计是所有面试的人都遇到过的,我也是6年没有挪过窝了,那时候一天去面试5/6家公司,当时真的是面对各种面试官的“毒打”,当然现在回想起来还是觉得很有意思,那么今天我就重点和大家说一下CSS子元素如何实现水平垂直居中(5种方法)。

涉及知识点

CSS水平垂直居中的五种方法,手把手教你如何实现水平垂直居中布局,水平居中,垂直居中,子容器如何水平垂直居中,flex布局实现垂直水平居中,相对绝对定位实现水平垂直居中。
版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

其实以下5种CSS水平垂直居中主要的实现方式。
在这里插入图片描述

1、子绝对定位父相对定位,子节点设置位移实现

首先我们创建父子两个dom节点,然后给父节点设置相对定位,给子节点设置绝对定位,然后再设置top和left均为50%,然后再设置位移transform属性左右-50%。
效果如下:

1.1效果

如下棕灰色部分为父节点,蓝色部分为子节点
在这里插入图片描述

1.2实现源码

html源码

<div class="partdom"><div class="father father1">父节点1<div class="son1">子节点1</div></div>
</div>

Css源码

.father {width: 100%;height: 100%;color: red;background-color: #dbd2ce;
}.father1 {position: relative;
}.son1 {position: absolute;width: 60px;height: 60px;background-color: #66ddee;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

2、子绝对定位父相对定位,子节点设置上下边距

其实这个和第一种方式是类似的,但是我们要知道的是相对定位对应的是盒子的开始位置,也就是左上角的位置,所以设置了50%之后我们得把本身的偏移量算上去才能完全水平垂直居中,如下所示效果与源码。

2.1 效果

实现效果如下所示:
在这里插入图片描述

2.2 实现源码

html源码

<div class="partdom"><div class="father father2">父节点2<div class="son2">子节点2</div></div>
</div>

Css源码

.father2 {position: relative;
}.son2 {position: absolute;width: 60px;height: 60px;background-color: #dd1122;top: 50%;left: 50%;margin-left: -30px;margin-top: -30px;color: #fff;
}

版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

3、利用flex布局实现

其实这个主要是设置父节点为flex布局方式,然后通过设置justify-content属性和align-items属性来进行设置的,具体效果和代码如下。

3.1 效果

实现效果如下:
在这里插入图片描述

3.2 实现源码

html源码

<div class="partdom"><div class="father father3"><div class="son3">子节点3</div></div>
</div>

Css源码

.father3 {display: flex;justify-content: center;align-items: center;
}.son3 {width: 60px;height: 60px;background-color: #00a;color: #fff;
}

4、利用行高和文本水平居中设置

我们都知道设置文本的一些常用属性,尤其是设置文本居中我们用text-align:center,设置文本垂直居中我们会设置line-height设置50%等方式,那么今天我要说的是利用这两个属性实现dom节点水平垂直居中。
首先我们要设置子节点为行内块显示模式,由于对齐属性用的是文本的,所以我们要针对子节点设置vertical-align:middle属性,具体实现效果及代码如下所示。

4.1 效果

在这里插入图片描述

4.2 实现源码

html源码

<div class="partdom"><div class="father father4"><div class="son4">子节点4</div></div>
</div>

Css源码

.father4 {text-align: center;line-height: 200px;
}.son4 {display: inline-block;width: 60px;height: 60px;line-height: 30px;color: #fff;background-color: #66f;vertical-align: middle;
}

5、子绝对定位父相对定位,设置外边距margin实现

其实我们知道前面第一二种的人很多,这个方式的反而很少,设置完子绝对和父相对,只要把上下左右偏移设置为零,margin设置为自动即可,其中效果与源码如下所示。

5.1 效果

在这里插入图片描述

5.2 实现源码

html源码

<div class="partdom"><div class="father father5"><div class="son5">子节点5</div></div>
</div>

Css源码

.father5 {position: relative;
}.son5 {position: absolute;width: 60px;height: 60px;background-color: #66ddee;top: 0;left: 0;right: 0;bottom: 0;margin: auto;
}

其实我这个在一开始接触前端的时候就经常遇到这个问题,尤其是面试时候十之八九有这个询问,也是初级web开发必要掌握的东西!整体5个实现效果如下,我做了一个整理
在这里插入图片描述

6、源码分享

6.1 百度网盘

链接:https://pan.baidu.com/s/11Z6gCTosQhTfqCFfjhhR-Q
提取码:hdd6

6.2 123网盘

链接:https://www.123pan.com/s/ZxkUVv-7BI4.html
提取码:hdd6

6.3 邮箱留言

评论区留下您的邮箱账号,博主看到第一时间发给您,祝您生活愉快!


总结

以上就是今天要讲的内容,本文主要介绍了CSS水平垂直居中的五种方法,手把手教你如何实现水平垂直居中布局,水平居中,垂直居中,子容器如何水平垂直居中,flex布局实现垂直水平居中,相对绝对定位实现水平垂直居中,也期待大家一起进步哈,2023年一起加油!!!

版权声明:此文原创于CSDN博主-《拄杖盲学轻声码》,主页有很多分享的代码,期待您的访问。

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

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

相关文章

EasyPOI 实战总结

EasyPOI实战总结 简介 easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法 使用EasyPOI 环境搭建 # 1.引入相关依…

【PHP】PHP开发教程-PHP开发环境安装

1、PHP简单介绍 PHP&#xff08;全称&#xff1a;Hypertext Preprocessor&#xff09;是一种广泛使用的开放源代码脚本语言&#xff0c;特别适用于Web开发。它嵌入在HTML中&#xff0c;通过在HTML文档中添加PHP标记和脚本&#xff0c;可以生成动态的、个性化的Web页面。 PHP最…

【力扣】202. 快乐数 <哈希>

【力扣】202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 【快乐数】 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过程…

VS中插入Qt插件后配置项目笔记

Project下要创建四个文件夹: bin(输出目录\工作目录) 、include(头文件目录) 、lib(动态库目录) 、src(源码目录) 一、主项目模块配置&#xff1a; 1.配置属性——>常规——>输出目录加入(..\..\bin\) 2.配置属性——>调试——>工作目录加入($(OutDir)) 备注&am…

openresty安装与网站发布

文章目录 安装依赖下载安装包解压安装包安装启动nginx配置环境变量配置开机启动发布静态网站 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台&#xff0c;其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动…

ASCII编码表:字符对照表和值查询

ASCII码值32到126之间是可打印的字符&#xff0c;而ASCII码值0到31是控制字符&#xff0c;127是删除字符&#xff0c;它们在表格中没有对应的可见字符 ASCII码值字符0NUL (空字符)1SOH (标题开始)2STX (正文开始)3ETX (正文结束)4EOT (传输结束)5ENQ (传输结束)6ACK (确…

【业务功能篇84】微服务SpringCloud-ElasticSearch-Kibanan-电商实例应用

一、商品上架功能 ElasticSearch实现商城系统中全文检索的流程。 1.商品ES模型 商品的映射关系 PUT product {"mappings": {"properties": {"skuId": {"type": "long"},"spuId": {"type": "ke…

《Dive into Deep Learning》

《Dive into Deep Learning》&#xff1a;https://d2l.ai/ Interactive deep learning book with code, math, and discussionsImplemented with PyTorch, NumPy/MXNet, JAX, and TensorFlowAdopted at 500 universities from 70 countries 《动手学深度学习》中文版&#xff1…

微信小程序教学系列(6)

第六章&#xff1a;小程序商业化 第一节&#xff1a;小程序的商业模式 在这一节中&#xff0c;我们将探讨微信小程序的商业模式&#xff0c;让你了解如何将你的小程序变成一个赚钱的机器&#xff01; 1. 广告收入 小程序的商业模式之一是通过广告收入赚钱。你可以在小程序中…

musl libc ldso 动态加载研究笔记:动态库的加载次序与初始化次序

前言 musl ldso 是按照什么次序加载动态链接的应用程序的共享库的&#xff1f;如果共享库之间有依赖&#xff0c; musl ldso 如何处理先初始化哪个 共享库&#xff1f; musl ldso 的代码可以在 musl 官方代码&#xff1a; ldso\dlstart.c 与 ldso\dynlink.c&#xff0c;其中动…

算法:图解前缀和问题

文章目录 实现原理实现思路一维前缀和模板二维前缀和模板 典型例题一维前缀和二维前缀和寻找数组中心下标除自身以外数组的乘积关系矩阵和 总结 实现原理 前缀和问题和二分查找类似&#xff0c;也是有一些固定的模板的&#xff0c;在理解原理的基础上进行实践&#xff0c;就能…

【Git】学习总结

【Git】学习总结 【一】安装【二】Git克隆项目代码【1】idea下载git项目【2】创建新的分支【3】新建的分支推送到远程【4】合并最新代码到主分支【5】切换分支 【三】提交本地项目到远程&#x1f680;1. 配置 Git&#x1f680;2. 创建项目远程仓库&#x1f680;3. 初始化本地仓…

MybatisPlus(1)

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 MyBatis-Plus&#xff08;简称MP&#xff09;是一个 Mybatis 的增强工具&…

70吨服务区生活污水处理设备加工厂家电话

70吨服务区生活污水处理设备加工厂家电话 设备简单说明 调节池 由于来水标高低&#xff0c;无法直接流入地埋式生活污水处理设备&#xff0c;在生化一体化设备前增加集水调节池一座。集水提升池内装有两台潜水提升泵&#xff0c;将集水提升池内的废水提升至一体化污水处理设备。…

后端项目开发:集成Druid数据源

Druid作为连接池中间件可以监控数据库访问性能&#xff0c;对数据库密码加密&#xff0c;查看SQL执行日志&#xff0c;扩展JDBC。 添加依赖 <!-- druid --> <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter&…

unity动画融合

1、抛砖引玉 在大型复杂的场景中&#xff0c;一定遇到过手在鼓掌&#xff0c;头在摇头&#xff0c;腿又是其他动作的要求&#xff0c;但是这些东西又不能做一起&#xff0c;因为有时候要把某个动画单独使用&#xff0c;这时候就用到了动画融合&#xff0c;利用动画状态机分层机…

Java——简单的文件读取和写入

这段代码是一个简单的文件读取和写入的例子。它创建了一个BufferFile类&#xff0c;构造方法接受一个文件名作为参数。BufferFile类中的write方法用于从标准输入读取内容&#xff0c;并将其写入到指定的文件中&#xff0c;直到输入"end"为止。read方法用于读取指定文…

限时 180 天,微软为 RHEL 9 和 Ubuntu 22.04 推出 SQL Server 2022 预览评估版

导读近日消息&#xff0c;微软公司今天发布新闻稿&#xff0c;宣布面向 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;9 和 Ubuntu 22.04 两大发行版&#xff0c;以预览模式推出 SQL Server 2022 评估版。 近日消息&#xff0c;微软公司今天发布新闻稿&#xff0c;宣布…

【力扣】59. 螺旋矩阵 II <模拟>

【力扣】59. 螺旋矩阵 II 给你一个正整数 n n n &#xff0c;生成一个包含 1 到 n 2 n^2 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n n n n nn 正方形矩阵 m a t r i x matrix matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,…

docker以distribution和registry管理个人镜像仓库

目录 一.distribution 1.扩展源下载docker-distribution并启动 2.打标签并认证安全仓库 3.推送到私人仓库 4.拉取镜像 二.registry 1.拉取registry的镜像 2.运行容器并打标签 3.认证安全仓库 4.推送到私人仓库 5.拉取镜像 一.distribution 1.扩展源下载docker-dist…