CSS:水平垂直居中

公共的 CSS 样式:

.parent {width: 300px;height: 300px;background-color:#d0e4fe;
}.child {width: 100px;height: 100px;background-color:orange;
}

HTML:

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

最终居中效果如下:
在这里插入图片描述

行内元素: text-align + vertical-align

.parent {line-height: 300px;text-align: center;	/* 水平居中*/
}.child {display: inline-block;	/* 子元素设置为行内块元素*/vertical-align: middle;	/* 垂直居中*/
}

position 定位

情况一:居中元素定宽定高

1. absolute + calc()
.parent {positon: relative;	/*使子元素相对父元素绝对定位*/
}.child {position: absolute;top: calc(50% - 50px);	/*垂直居中*/left: calc(50% - 50px);	/*水平居中*/
}

注意:在 calc() 函数中,运算符前后必须要有空格,否则会导致计算错误。

2. absolute + 负 margin
.parent {positon: relative;	/*使子元素相对父元素绝对定位*/
}.child {position: absolute;top: 50%;left: 50%;margin-top: -50px;margin-left: -50px;
}

margin 负值:当 margin-left 或 margin-top 属性值为负值时,元素会根据负值的大小向左或向上偏移。当 margin-right 或 margin-bottom 属性值为负值时,元素的位置不会改变,但会影响其身后的元素。这种情况相当于元素宽度或高度缩小,后续的元素会向该元素偏移。

3. absolute + margin auto
.parent {positon: relative;	/*使子元素相对父元素绝对定位*/
}.child {position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;
}

margin 设置为 auto 表示自动填充剩余空间。

由于块级元素默认宽度为父元素的宽度,默认高度为内容的高度。因此,在水平方向上,margin: auto 使得左右平分剩余空间达到水平居中的效果。但在垂直方向上,由于没有剩余空间,所以 margin:auto 不能实现垂直居中。

要想通过 margin: auto 实现垂直居中,需要将子元素设置为 position: absolute,同时需要设置 left: 0; right: 0; top: 0; bottom: 0; 来使子元素在水平和垂直方向上都填满父元素,这样再设置 margin: auto 就可以实现水平和垂直方向上都平分剩余空间,达到居中效果。

情况二:不需要子元素固定宽高:absolute + transform

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

实现原理:top 和 left 表示向下和向右偏移父元素宽度或高度的 50%,translate(-50%, -50%) 表示向上和向左偏移自身宽度或高度的 50%,从而实现上下左右居中。

flex 布局

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

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

grid 布局

.parent {display: grid;justify-items: center;align-items: center;	/*简写为 place-items: center; */
}

.parent {display: grid;justify-content: center;align-content: center;	/*简写为 place-content: center; */
}

.parent {display: grid;  
}.child {justify-self: center;align-self: center;	/*简写为 place-self: center; */
}

.parent {display: grid;  
}.child {margin: auto;
}

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

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

相关文章

docker-compose部署laravel项目实战(主机nginx连接项目容器)(详细配置过程)

我用的是主机上的nginx,没有用docker安装nginx&#xff0c; 所以需要先在主机上安装nginx # 更新系统yum sudo yum update# 安装安装包sudo yum install epel-release sudo yum install wget# 安装Nginx sudo yum install nginx #启动 sudo systemctl start nginx #开机自启动…

Centos7配置登录失败处理导致root被锁定处理办法

1、应用场景 root用户被系统锁定&#xff0c;无法登录系统。 2、问题现象 root锁定无法登录系统 3、原因 设置登录失败处理并对root用户生效&#xff0c;一直尝试错误的root密码或暴力破解root密码&#xff0c;导致无法自动解锁Linux的root账户 4、解决方案 1.将虚拟机开…

什么是java程序的主类,应用程序主类和小程序主类有什么不同?

在Java中&#xff0c;主类&#xff08;Main Class&#xff09;通常指的是包含main方法的类&#xff0c;这个方法是Java程序的入口点。在Java应用程序中&#xff0c;有两种主要的主类概念&#xff0c;分别是应用程序主类和小程序主类。 1. Java应用程序主类&#xff08;Applica…

gerrit(2) | 为什么使用 gerrit

gerrit(2) | 为什么使用 gerrit 本文以 Use Gerrit to Be a Rockstar Programmer 的翻译为基础&#xff0c; 增加一点个人笔记。 依照惯例&#xff0c; 中文的括号里是个人的粗浅看法。 概要 (Overview) The term rockstar is often used to describe those talented progra…

新版MQL语言程序设计:外观模式的原理、应用及代码实现

文章目录 一、什么是外观模式二、外观模式的实现原理三、外观模式的应用范围四、外观模式应用实例银行系统的设计量化交易系统的设计 五、外观模式的代码实现 一、什么是外观模式 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个…

parameter ‘MAX_BYTE‘ used as named parameter override, is a localparam

在驱动模块里把常量定义的 localparam, 然后在顶层文件里面做了修改报错。改成parameter解决 1. localparam在模块内部使用且不能实例化&#xff0c;parameter才可以在实例化的时候修改参数 2. 常量如果在顶层模块和其他模块的值不一样&#xff0c;会使用顶层模块里面的值…

机器学习中的有监督学习和无监督学习

有监督学习 简单来说&#xff0c;就是人教会计算机学会做一件事。 给算法一个数据集&#xff0c;其中数据集中包含了正确答案&#xff0c;根据这个数据集&#xff0c;可以对额外的数据希望得到一个正确判断&#xff08;详见下面的例子&#xff09; 回归问题 例如现在有一个…

[SWPUCTF 2021 新生赛]easyupload1.0

发现是上传文件第一想到是文件木马 <?php eval ($_POST[123]);?>木马上传burp修改后缀发现flag里面这个是假的 我们猜想是在phpinfo我们上传<?php eval(phpinfo(););?>木马上传burp修改后缀里面 CtrlF 发现flag

AI智能电销机器人有哪方面的技术优势?

随着科学技术的发展&#xff0c;人工智能逐渐进入了公众的视野&#xff0c;与人工智能相关的智能产品&#xff0c;也从工业革命的诞生开始在生活中不断涌现&#xff0c;虽然说人类没有被机器所取代&#xff0c;但在之后的人工智能时代&#xff0c;人类真的会被取代吗&#xff1…

Linux文件编译

一、GCC编译 我们都知道想要实现一个程序首先需要写好代码让其能运行起来&#xff0c;那么写出来的.c文件是如何被编译出来的呢&#xff1f; 1.直接编译 首先将程序直接编译为可执行文件可以通过Linux中的GCC编译器。 GCC&#xff08;是一套广泛使用的编译器工具集&#xff…

读论文:DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior

DiffBIR 发表于2023年的ICCV&#xff0c;是一种基于生成扩散先验的盲图像恢复模型。它通过两个阶段的处理来去除图像的退化&#xff0c;并细化图像的细节。DiffBIR 的优势在于提供高质量的图像恢复结果&#xff0c;并且具有灵活的参数设置&#xff0c;可以在保真度和质量之间进…

[office] sumifs函数和sump #媒体#学习roduct哪个运算更快--Excel函数 #职场发展#媒体

sumifs函数和sumproduct哪个运算更快?-Excel函数 今天&#xff0c;我了解到Excel报表需求看起来像这样&#xff1a; Excel数据库中将维护大约150,000行数据。会有数十个报告&#xff0c;每个报告都有数百种不同的过滤器设置。&#xff08;不同的产品&#xff0c;部门等&…

解决The Tomcat connector configured to listen on port 8080 failed to start

问题 启动javar报错&#xff0c;提示如下 Description: The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured. Action: Verify the connector’s configuration, identify a…

【论文笔记】Lift-Attend-Splat: Bird’s-eye-view camera-lidar fusion using transformers

原文链接&#xff1a;https://arxiv.org/abs/2312.14919 1. 引言 多模态融合时&#xff0c;由于不同模态有不同的过拟合和泛化能力&#xff0c;联合训练不同模态可能会导致弱模态的不充分利用&#xff0c;甚至会导致比单一模态方法性能更低。 目前的相机-激光雷达融合方法多基…

【JMeter】使用技巧

在这此对新版本jmeter的学习温习的过程&#xff0c;发现了一些以前不知道的功能&#xff0c;所以&#xff0c;整理出来与大分享。本文内容如下。 如何使用英文界面的jmeter如何使用镜像服务器Jmeter分布式测试启动Debug 日志记录搜索功能线程之间传递变量 如何使用英文界面的…

Vite 的全景:颠覆前端开发的新潮流

Vite 的全景:颠覆前端开发的新潮流 1. 简介 在现代前端开发领域,Vite已经成为一种引人注目的选择。Vite是一种快速、简单、可扩展的构建工具,为前端开发者提供了高效的开发体验。让我们一起深入了解这个令人兴奋的技术。 1.1 定义和概述 Vite是一个基于Vue.js的构建工具…

YOLO部署实战(5):NVIDIA Jetson Tx2部署YOLO

1 一些概念 Jetson Tx2 NVIDIA Jetson 是NVIDIA为新一代自主机器设计的的嵌入式系统&#xff0c;是一个AI平台&#xff0c;它的优势就是可以覆盖不同领域、不同行业。目前Jetson产品线已经有四个产品系列&#xff0c;包括Jetson Nano、Jetson TX2、Xavier NX和AGX Xavier。四…

MySQL温故篇(一)SQL语句基础

一、SQL语句基础 1、SQL语言分类 DDL&#xff1a;数据定义语言 DCL&#xff1a;数据控制语言 DML&#xff1a;数据操作语言 DQL&#xff1a;数据的查询语言 2、数据类型 3、字符类型 char(11) &#xff1a; 定长 的字符串类型,在存储字符串时&#xff0c;最大字符长度11个&a…

【HarmonyOS应用开发】HTTP数据请求(十四)

文章末尾含相关内容源代码 一、概述 日常生活中我们使用应用程序看新闻、发送消息等&#xff0c;都需要连接到互联网&#xff0c;从服务端获取数据。例如&#xff0c;新闻应用可以从新闻服务器中获取最新的热点新闻&#xff0c;从而给用户打造更加丰富、更加实用的体验。 那么…

【分享】我的调试nRF2401时的一些心得

无线传输,好处很多.记得调试的第一块数传模块是nRF2401.那时我在做个小项目&#xff08;液位自动控制装置&#xff09;的时候&#xff0c;用到这对nRF2401.下面就说下调试nRF2401的调试过程遇到的问题。 MSP430F149&#xff08;两块&#xff09; nRF2401(一对)4*4键盘&#xf…