css实现居中的方法

devtools/2024/11/13 15:25:00/
htmledit_views">

水平居中

1. 行内设置text-align

给父元素设置text-align为center,一般用于实现文字水平居中

2. 给当前元素设置margin:0 auto

原理:块级独占一行,表现为在水平方向上占满整个父容器,当水平方向padding,border,width成定值时,margin左右为auto,默认margin左右平分剩余空间

html"><head><style>.content{width: 600px;height: 300px;border: 1px solid #000;}.box{width: 200px;height: 200px;background-color: darkcyan;margin: 0 auto;}</style>
</head>
<body><div class="content"><div class="box"></div></div>
</body>

但是当该元素设置了position为absolute时,需要加上left为0,right为0才能使margin:0 auto生效,让元素左右边界都紧贴其包含块的边缘。

html">.box{width: 200px;height: 200px;background-color: darkcyan;margin: 0 auto;left: 0;right: 0;position: absolute;
}

3. justify-content

父元素设置display为flex布局,justify-content为center,设置盒子在主轴的对齐方式为center

html">.content{width: 600px;height: 300px;border: 1px solid #000;display: flex;justify-content: center;
}

4. transform + position

父元素设置relative,子元素设置absolute,left为50%,距离左边偏移父元素50%,transform为translateX(-50%),向左平移自身宽度的50%

5. margin-left + position

与transform类似,只是margin-left为负的自身宽度的一半

当未知宽高时用transform,已知宽高可以用margin-left

垂直居中

1. 单行文本可以设置line-height

设置line-height与height相等

一般用于文字垂直居中

2. align-items

父元素设置flex,align-items为center,定义元素在侧轴对齐方式为center

3. transform + position

与水平居中一样,设置top:50%距离上边偏移父元素50%,transform为translateY(-50%)

4. margin-top + position

与水平居中一样,设置top:50%,margin-top:负的自身高度的一半

5. margin:0 auto

子元素设置absolute定位,top为0,bottom为0,margin设置auto

html">.box{width: 200px;height: 100px;background-color: darkcyan;position: absolute;margin: auto;top: 0;bottom: 0;
}

6. table-cell + vertical-align

给父元素设置display为table-cell,vertical-align为middle

整体居中

行内:text-align:center; line-height:height

块级:

1. flex

html">.content{width: 400px;height: 300px;border: 1px solid #000;display: flex;justify-content: center; /*水平居中*/align-items: center;  /*垂直居中*/
}

2. transform

html">.content{width: 400px;height: 300px;border: 1px solid #000;position: relative;
}
.box{width: 200px;height: 100px;background-color: darkcyan;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%)
}

3. margin

html">.content{width: 400px;height: 300px;border: 1px solid #000;position: relative;
}
.box{width: 200px;height: 100px;background-color: darkcyan;position: absolute;top: 50%;left: 50%;margin-top: -50px;margin-left: -100px;
}


http://www.ppmy.cn/devtools/114908.html

相关文章

(k8s)Kubernetes 从0到1容器编排之旅

一、引言 在当今数字化的浪潮中&#xff0c;Kubernetes 如同一艘强大的航船&#xff0c;引领着容器化应用的部署与管理。它以其卓越的灵活性、可扩展性和可靠性&#xff0c;成为众多企业和开发者的首选。然而&#xff0c;要真正发挥 Kubernetes 的强大威力&#xff0c;仅仅掌握…

Leetcode面试经典150题-172.阶乘后的零

给定一个整数 n &#xff0c;返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;0 解释&#xff1a;3! 6 &#xff0c;不含尾随 0示例 2&#xff1a; 输入&#xff1a;n 5 输出&a…

双token无感刷新

文章目录 &#x1f7e2;双token无感刷新1、token过期续期的五种方案对比2、双token的基本概念3、双token无感刷新的原理4、双token无感刷新的实现方式5.前端实现 ✒️总结 &#x1f7e2;双token无感刷新 对于token无感刷新这个东西有复杂度的话&#xff0c;它主要在后端&#x…

【JS】ESMoudle机制与符号绑定

前言 JS 模块化有两种方式&#xff0c;分别为&#xff1a;CommonJS 和 ESModule。与 CommonJS 不同&#xff0c;ESModule 是静态模块系统&#xff0c;意味着在代码编译阶段&#xff08;而不是运行时&#xff09;&#xff0c;模块依赖关系就已经被确定。 ESModule 优势 更好地…

苍穹外卖学习笔记(七)

四.删除菜品 业务规则&#xff1a; 可以一次删除一个菜品&#xff0c;也可以一次删除多个菜品起售中的菜品不能删除被套餐关联得菜品不能删除删除菜品后&#xff0c;关联得口味数据也需要删除掉 一共需要操作三个表&#xff0c;注意加Transactional事物注解Controller /*** 删…

多边形抠图 python

目录 多边形抠图 python 多边形贴图 多边形抠图 python import cv2 import numpy as np# 创建带多边形的图像,并将多边形以外的区域设置为0 def mask_polygon(image, poly_a):# 获取多边形的外接矩形框box1_x, box1_y, box1_w, box1_h = cv2.boundingRect(np.asarray(pol…

Linux6-vi/vim

1.vi与vim vi是Linux操作系统下的标准编辑器&#xff0c;类似Windows下的记事本 vim是vi的升级版&#xff0c;包括vi的所有功能&#xff0c;而且支持shell 2.vi/vim下的三种模式 vi/vim有三种模式&#xff1a;命令模式&#xff0c;插入模式和底行模式 命令模式&#xff1a…

JFinal整合Websocket

学习笔记&#xff0c;供大家参考 总结的不错的话&#xff0c;记得点赞收藏关注哦&#xff01;导入JAR包 javax.websocket-api <dependency><groupId>javax.websocket</groupId><artifactId>javax.websocket-api</artifactId><version>1.1&…