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.hqwc.cn/news/451552.html

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

相关文章

新春营销活动推广策略和拓客方式

对于企业而言&#xff0c;新春不仅仅是庆祝和分享欢乐的时刻&#xff0c;更是一个黄金的营销机会&#xff0c;通过精心策划的节日促销活动来提升品牌知名度和销售业绩的绝佳时机。巧妙地将产品、服务与节日气氛相结合&#xff0c;企业能够创造出独特的购物体验&#xff0c;吸引…

LabVIEW电能质量监测系统

LabVIEW电能质量监测系统 随着全球能源需求的增加以及能源危机的加剧&#xff0c;对电能的有效利用和质量监控变得越来越重要。特别是在电力系统中&#xff0c;电能质量的监测对于保证电力设备的稳定运行和提高能源利用效率具有重要意义。采用LabVIEW软件开发了一套高效的电能…

智能设备管理系统:PreMaint助力药厂攻克设备管理难题

在药品生产中&#xff0c;设备管理是确保质量的关键环节。传统的手工操作和纸笔记录方式已经难以适应当今药厂的需求&#xff0c;存在诸多问题。这些问题包括设备管理工作的不成体系&#xff0c;难以随时掌握设备的状态&#xff0c;以及设备无法满足工艺流程的需求。面对这些挑…

原型中之filter()-过滤

注意&#xff1a;filter()不会对空数组进行检测、不会改变原始数组 array.filter(function(currentValue, indedx, arr), thisValue) currentValue&#xff1a;必须。当前元素的值;index&#xff1a;可选。当前元素的索引值&#xff1b;arr&#xff1a;可选。当前元素属于的数…

某人寿保险公司:超融合承载核心业务系统,支撑信创改造与数据中心异地迁移

案例亮点 45 节点超融合承载个险核心、单证管理、统信报送、销管系统等核心业务系统与关键数据库&#xff0c;采用 SmartX 原生虚拟化 ELF。基于鲲鹏&#xff08;ARM 芯片&#xff09;完成信创化改造&#xff0c;顺利通过验收。生产业务虚拟机 guest OS&#xff08;Redhat、ce…

由于误删了node依赖,导致这后面的一系列操作

文章目录 1. 事发原因&#xff1a;Delete select files2. Delete select files引起的cross-env报错3. cross-env是node_modules的依赖工具4. 那么Delete selected files到底是什么操作5. 重装node_modules依赖包&#xff0c;也报错6. 报错&#xff1a;cb() never called!7. 算了…

初识webpack(一)概念、入口配置、输出配置、loader等

目录 (一)概念 webpack的依赖图 (二)webpack的基本使用 (三)webpack的配置文件 1.入口(entry)配置 2.输出(output)配置 (三)loader 1.css文件处理 (1)安装css-loader和style-loader (2)在webpack.config.js中配置loader 2.less文件处理 3.postcss的使用 (1)安装…

分析网站加载性能各项指标、Lighthouse工具的使用

分析网站首次加载的性能可以通过查看多个关键指标来实现。以下是一些常见的性能指标以及如何分析它们&#xff1a; 如何分析网站首次加载的性能各项指标 首次内容绘制&#xff08;First Paint&#xff09;&#xff1a; 定义&#xff1a; 首次内容绘制是指浏览器第一次将像素呈…

《云原生安全攻防》-- 容器安全风险分析

在本节课程中&#xff0c;我们将提供一个全面的视角&#xff0c;来深入探讨容器环境下的安全风险&#xff0c;帮忙大家建立起容器环境下安全风险的整体认知。 在这个课程中&#xff0c;我们将学习以下内容&#xff1a; 容器技术概述&#xff1a;什么是容器技术以及它解决了什么…

BAPI创建会计凭证和冲销凭证

目录 BAPI创建会计凭证和冲销凭证组件 利润中心冲销不可能原因由于一个变量为空导致不可以冲销 代码附上创建会计凭证代码冲销会计凭证代码 BAPI创建会计凭证和冲销凭证 在使用冲销会计凭证的BAPI&#xff0c;即BAPI_ACC_DOCUMENT_REV_POST时&#xff0c;遇到下面的问题&#…

【DDD】学习笔记-什么是模型

从领域驱动的战略设计进入战术设计&#xff0c;简单说来&#xff0c;就是跨过系统视角的限界上下文边界进入它的内部&#xff0c;从分层架构的逻辑分层进入到每一层的内部。在思考内部的设计细节时&#xff0c;首先需要思考的问题就是&#xff1a;什么是模型&#xff08;Model&…

Linux网络协议栈从应用层到内核层①

文章目录 1、socket系统调用源码剖析2、struct socket 是如何创建的3、struct socket 和文件的联系4、相关数据结构的联系5、socket系统调用的整体流程图 1、socket系统调用源码剖析 系统调用原型 int socket(int domain, int type, int protocol);domain&#xff1a;表示协议…