div水平垂直居中的常用方法

article/2025/9/21 20:25:08

html5的文档结构

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title></title></head>
<body></body>
</html>

 效果图:

1.通过设置绝对定位和设置负边距实现:

思路:通过设置div绝对定位top:50%和left50%定位到距离上边框和左边框一半的位置,然后将div的边距设为负数分别向左和向上移动自身距离的50%,就可以实现水平垂直居中了。注意:需要实现知道div的宽高。

优点:实现方便,兼容性好
缺点:需要实现确定居中元素的宽和高
代码:

 <style>html,body{width: 100%;height: 100%;text-align: center;box-sizing: border-box;margin: 0;}body div{box-sizing: border-box;}.parent{width: 100%;height:100%;position: relative;border: 5px solid #000000;background:#ddd;}.children{position: absolute;width:500px;height:300px;top: 50%;left: 50%; margin-left: -250px;margin-top: -150px;/* margin: auto; */background:green;}</style><div class="parent"><div class="children"></div></div>

2.通过绝对定位和translate实现

思路:原理和上面差不多,也是先通过绝对定位将div定位到上,左各一半的位置,然后通过translate,向上或者向左移动自身一半的位置。

优点:实现方便,不需要事先获取居中元素的宽高。
缺点:需要浏览器支持translate
代码:

<style>html,body{width: 100%;height: 100%;text-align: center;box-sizing: border-box;margin: 0;}body div{box-sizing: border-box;}.parent{width: 100%;height:100%;position: relative;border: 5px solid #000000;background:#ddd;}.children{position: absolute;width:500px;height:300px;top: 50%;left: 50%; transform: translate(-50%, -50%);background:green;}</style><div class="parent"><div class="children"></div></div>

3.通过设置绝对定位和margin:auto来实现。
原理:这个就比较神奇了,通过设置绝对定位上下左右各为0, 然后设置margin:auto便可以实现div水平垂直居中。这个解释起来比较复杂
首先,元素margin:auto后会自动计算元素的左右边距,但是上下边距还是默认0, auto。但是当元素设置为绝对定位后,元素就会脱离文档流,这是magin:auto就会自动计算上下边距了,这样就实现了水平垂直居中。

效果:同上
优点:兼容性良好,方便程度一般
代码:

<style>html,body{width: 100%;height: 100%;text-align: center;box-sizing: border-box;margin: 0;}body div{box-sizing: border-box;}.parent{width: 100%;height:100%;position: relative;border: 5px solid #000000;background:#ddd;}.children{position: absolute;width:500px;height:300px;top: 0;left: 0;right: 0;bottom: 0;margin: auto;/* transform: translate(-50%, -50%); */background:green;}</style><div class="parent"><div class="children"></div></div>

4. flex布局

原理:css3新增弹性盒子模型可以直接设置元素的水平垂直居中。

效果同上
优点:十分方便,可以直接定义元素布局的排列方式。
缺点:兼容性有待处理

代码:

<style>html,body{width: 100%;height: 100%;text-align: center;box-sizing: border-box;margin: 0;}body div{box-sizing: border-box;}.parent{display: flex;justify-content: center;align-items: center;width: 100%;height:100%;border: 5px solid #000000;background:#ddd;}.children{position: absolute;width:500px;height:300px;background:green;}</style><div class="parent"><div class="children"></div></div>

5.使用table-cell

原理:将父级元素设置为单元格display: table-cell,然后使用vertical-align:middle;来实现子div的垂直方向的居中,然后设置子级div 的margin:auto;实现水平方向上居中。

效果同上,不过单元格布局不是太常用。

代码:

<style>html,body{width: 100%;height: 100%;text-align: center;box-sizing: border-box;margin: 0;}body div{box-sizing: border-box;}.parent{display: table-cell;vertical-align: middle;width: 1080px;height:700px;border: 5px solid #000000;background:#ddd;}.children{/* position: absolute; */width:500px;height:300px;background:green;margin: auto;}</style><div class="parent"><div class="children"></div></div>


http://chatgpt.dhexx.cn/article/kapqMDHC.shtml

相关文章

div水平垂直居中的七种方法

学习笔记&#xff08;一&#xff09; div水平垂直居中的七种方法 文章目录 学习笔记&#xff08;一&#xff09;前言一、绝对定位法1.方法一2.方法二3.方法三4.方法四 二、flex布局法1.方法五 三、将小div转成行内块1.方法六 四、网格布局1.方法七 总结 前言 在写小demo过程中…

div 垂直居中的六种方法

利用CSS进行元素的水平居中&#xff0c;比较简单&#xff0c;行级元素设置其父元素的text-align center&#xff0c;块级元素设置其本身的left 和 right margins为auto即可。本文收集了六种利用css进行元素的垂直居中的方法&#xff0c;每一种适用于不同的情况&#xff0c;在实…

CSS进阶篇--div中的内容垂直居中的五种方法

一、行高&#xff08;line-height&#xff09;法 如果要垂直居中的只有一行或几个文字&#xff0c;那它的制作最为简单&#xff0c;只要让文字的行高和容器的高度相同即可&#xff0c;比如&#xff1a; p { height:30px; line-height:30px; width:100px; overflow:hidden; }这段…

div水平垂直居中的四种方式

让div水平居中的方式&#xff0c;我所知道的就是以下这四种。 文章目录 一、margin二、绝对定位三、子元素绝对定位父元素相对定位四、flex布局总结 一、margin 第一种方式我们可以利用外边距属性来使div水平垂直居中 先来看一段有问题的代码 <!DOCTYPE html> <ht…

div水平垂直居中方法汇总(共六种)

文章目录 第一种第二种第三种第四种第五种第六种 第一种 绝对定位方法&#xff1a;不确定当前div的宽度和高度&#xff0c;采用 transform: translate(-50%,-50%); 当前div的父级添加相对定位&#xff08;position: relative;&#xff09; <!DOCTYPE html> <html lang…

缓存设计(本地缓存 + 分布式缓存)

缓存设计 前言正文缓存对象缓存服务缓存策略本地缓存Guava的使用 分布式缓存Redis缓存分布式缓存的生命周期分布式缓存的一致性问题 源码解读从缓存中获取秒杀品 分布式锁 总结参考链接 前言 大家好&#xff0c;我是练习两年半的Java练习生&#xff0c;本篇文章会分析秒杀系统…

分布式缓存解决方案

高并发首选&#xff1a;缓存 项目代码下载地址&#xff1a;https://gitee.com/tyytx/distrbute-demo.git 接口高并发的解决思路&#xff1a;1、加缓存 2、数据静态化 3、集群 4、分布式 5、同步转异步 6、限流、降级 适合加缓存的场景&#xff1a;读多写少的数据&#xff0c;不…

ehcache作为分布式缓存的研究

ehcache支持两种拓扑结构&#xff0c;一种是Distributed Caching&#xff0c;另一种是Replicated Caching Distributed Caching 这和一般意义上的分布式缓存非常类似&#xff0c;这一类型的缓存是有client-server之分的&#xff0c;application通过client向server端请求缓存数据…

分布式缓存平台方案

目录 1、总体说明 1.1、采取redis的原因 1.2、平台总体架构 2、多协议支持方案 3、高可用&#xff08;HA&#xff09;方案 3.1、基础设施 3.2、故障检测 3.3、故障切换 4、分布式方案 4.1、垂直扩展 4.2、水平扩展 5、容量管理 6、安全 6.1、配置安全 6.2、访问安…

分布式缓存架构基础

一、缓存概述 1.1 什么是缓存 缓存在wiki上的定义&#xff1a;用于存储数据的硬件或软件的组成部分&#xff0c;以使得后续更快访问相应的数据。缓存中的数据可能是提前计算好的结果、数据的副本等。典型的应用场景&#xff1a;有cpu cache, 磁盘cache等。本文中提及到缓存主要…

基于redis分布式缓存实现

简单说明下&#xff0c;写此文章算是对自己近一段工作的总结&#xff0c;希望能对你有点帮助&#xff0c;同时也是自己的一点小积累。 一.为什么选择redis 在项目中使用redis做为缓存&#xff0c;还没有使用memcache,考虑因素主要有两点&#xff1a; 1.redis丰富的数据结构,其…

本地缓存与分布式缓存

更多内容&#xff0c;前往 IT-BLOG 一般而言&#xff0c;现在互联网应用&#xff08;网站或App&#xff09;的整体流程&#xff0c;可以概括如图所示&#xff0c;用户请求从界面&#xff08;浏览器或App界面&#xff09;到网络转发、应用服务再到存储&#xff08;数据库或文件系…

Spring分布式缓存

什么是分布式缓存 在实际开发场景中&#xff0c;往往单机应用无法满足当前的需求&#xff0c;需要对项目进行分布式部署&#xff0c;由此每个项目中的缓存都是属于自己独立服务的&#xff0c;并不能共享&#xff0c;其次当某个服务更新了缓存&#xff0c;其他服务并不知道&…

高性能分布式缓存的设计原理

又是一个没有开工红包的公司&#xff01;&#xff01;&#xff01; 问题分析 通过以上对话&#xff0c;各位是否能够猜到所有缓存穿透的原因呢&#xff1f;回答之前我们先来看一下缓存策略的具体代码 缓存服务器IPhash(key)%服务器数量 这里还要多说一句&#xff0c;key的取值…

redis 分布式缓存 详解

1、Redis概述 1.1、NoSQL NoSQL(Not Only SQL)&#xff0c;意即不仅仅是SQL, 泛指非关系型的数据库。 1.2、Redis安装 首先需要从Redis官网上下载Redis的源码包&#xff0c;将下载的包上传到Linux&#xff0c;之后将gz文件进行解压。 # 解压gz文件 tar -zxvf redis-6.2.6…

本地缓存、分布式缓存以及多级缓存

像MySql等传统的关系型数据库已经不能适用于所有的业务场景&#xff0c;比如电商系统的秒杀场景&#xff0c;APP首页的访问流量高峰场景&#xff0c;很容易造成关系型数据库的瘫痪&#xff0c;随着缓存技术的出现很好的解决了这个问题。 一、缓存的概念&#xff08;什么是缓存…

分布式架构系列:缓存

一、缓存概述 缓存是分布式系统中的重要组件&#xff0c;主要解决高并发&#xff0c;大数据场景下&#xff0c;热点数据访问的性能问题。提供高性能的数据快速访问。 1.1缓存的原理 &#xff08;1&#xff09; 将数据写入/读取速度更快的存储&#xff08;设备&#xff09;&…

分布式缓存那些事儿

在前面的一些文章中&#xff0c;从实战的角度&#xff0c;讲解了有关memcached的应用、容灾、监控等等。但是缺乏对理论的讲解和原理性的剖析。本文将从理论的角度去介绍&#xff0c;让大家从宏观上对“分布式缓存、nosql”等技术有所了解&#xff0c;以便进一步学习和使用。在…

分布式缓存和本地缓存的区别

分布式缓存和本地缓存的区别 redis/memcached**分布式缓存**和map/guava**本地缓存**的区别什么是缓存一致性&#xff1f; redis/memcached分布式缓存和map/guava本地缓存的区别 缓存分为本地缓存和分布式缓存&#xff0c;使用map或guava的是本地缓存&#xff0c;轻量而快速&a…

分布式数据:缓存技术

分布式数据&#xff1a;缓存技术 前言什么是分布式缓存&#xff1f;Redis 分布缓存原理Memcached 分布式缓存原理对比分析知识扩展&#xff1a;除了分布式存储中的缓存&#xff0c;还有计算机体系结构和网络中的缓存&#xff0c; 它们又分别是什么呢&#xff1f;总结 前言 分布…