• 元素居中的方法总结


    目录

    垂直居中

    行内元素垂直居中

    单行文本垂直居中

    1.line-height: 200px;

    多行文本垂直居中

    1.table+vertical-align:middle

    块级元素垂直居中

    1.display: flex;align-items: center;

    2.使用position + top +margin-top

    水平居中

    行内元素水平居中

    1.text-align:center

    ​编辑

    块级元素水平居中

    1.margin: 0 auto;

    垂直水平居中

    行内元素垂直水平居中

    1.文本属性line-height+text-align

    块级元素垂直水平居中

    1.position+transform

     2.flexbox


    垂直居中

    行内元素垂直居中

    单行文本垂直居中

    1.line-height: 200px;
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>Documenttitle>
    7. <style>
    8. * {
    9. margin: 0;
    10. padding: 0;
    11. box-sizing: border-box;
    12. }
    13. div{
    14. width: 200px;
    15. border: 1px solid red;
    16. height: 200px;
    17. }
    18. span{
    19. line-height: 200px;
    20. }
    21. style>
    22. head>
    23. <body>
    24. <div>
    25. <span> 垂直居中!span>
    26. div>
    27. body>
    28. html>

    多行文本垂直居中

    1.table+vertical-align:middle
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>Documenttitle>
    7. <style>
    8. * {
    9. margin: 0;
    10. padding: 0;
    11. box-sizing: border-box;
    12. }
    13. div{
    14. width: 200px;
    15. border: 1px solid red;
    16. height: 200px;
    17. display: table;
    18. }
    19. span{
    20. display: table-cell;
    21. vertical-align: middle;
    22. }
    23. style>
    24. head>
    25. <body>
    26. <div>
    27. <span> 多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!span>
    28. div>
    29. body>
    30. html>

    2.flex+align-items

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>Documenttitle>
    7. <style>
    8. * {
    9. margin: 0;
    10. padding: 0;
    11. box-sizing: border-box;
    12. }
    13. div{
    14. width: 200px;
    15. border: 1px solid red;
    16. height: 200px;
    17. display: flex;
    18. align-items: center;
    19. }
    20. style>
    21. head>
    22. <body>
    23. <div>
    24. <span> 多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!多行垂直居中!span>
    25. div>
    26. body>
    27. html>

    块级元素垂直居中

    1.display: flex;align-items: center;

    不是所有的浏览器都可以兼容

    2.使用position + top +margin-top
    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <style>
    7. .out{
    8. width: 500px;
    9. height: 500px;
    10. background-color: skyblue;
    11. position: relative;
    12. }
    13. .in{
    14. width: 100px;
    15. height: 100px;
    16. background-color: salmon;
    17. position: absolute;
    18. top: 50%;
    19. margin-top: -50px;
    20. }
    21. style>
    22. head>
    23. <body>
    24. <div class="out">
    25. <div class="in">div>
    26. div>
    27. body>
    28. html>

    兼容性较好

    让一个块级元素垂直居中的八种方法_块元素垂直居中__张张张i的博客-CSDN博客

    水平居中

    行内元素水平居中

    1.text-align:center

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <style>
    6. .parent {
    7. text-align: center;
    8. }
    9. style>
    10. head>
    11. <body>
    12. <div class='parent'>
    13. <span>123span>
    14. div>
    15. body>
    16. html>

    块级元素水平居中

    1.margin: 0 auto;

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. <style>
    7. .child {
    8. background: skyblue;
    9. width:200px;
    10. height:200px;
    11. margin: 0 auto;
    12. }
    13. style>
    14. head>
    15. <body>
    16. <div class='parent'>
    17. <div class='child'>div>
    18. div>
    19. body>
    20. html>

    垂直水平居中

    行内元素垂直水平居中

    1.文本属性line-height+text-align

    文本属性的话,如果你的行内元素是文本,你可以使用line-heighttext-align来实现水平和垂直居中

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <style>
    6. .parent {
    7. width: 500px;
    8. height: 500px;
    9. background-color: aqua;
    10. text-align: center; /* 水平居中 */
    11. line-height: 500px; /* 垂直居中 */
    12. }
    13. style>
    14. head>
    15. <body>
    16. <div class='parent'>
    17. <span>123span>
    18. div>
    19. body>
    20. html>

    块级元素垂直水平居中

    1.position+transform

    .container 元素被设置为相对定位,以作为 .content 元素的定位参考。.content 元素被绝对定位到 .container 内,然后使用 top: 50%; left: 50%; 将其移动到容器的中心。最后,transform: translate(-50%, -50%); 用于微调元素的位置,使其完全居中。

    1. html>
    2. <html>
    3. <head>
    4. <style>
    5. .container {
    6. position: relative;
    7. width: 100%;
    8. height: 100vh; /* 或者其他适当的高度 */
    9. background-color: aqua;
    10. }
    11. .content {
    12. position: absolute;
    13. top: 50%;
    14. left: 50%;
    15. transform: translate(-50%, -50%);
    16. }
    17. style>
    18. head>
    19. <body>
    20. <div class="container">
    21. <div class="content">要居中的内容div>
    22. div>
    23. body>
    24. html>

    使用 transform: translate(-50%, -50%); 是一种在垂直和水平方向上同时将元素居中的常用技巧。这是因为 transformtranslate 函数可以通过百分比单位相对于元素自身的尺寸进行计算。

    让我们来解释一下为什么要使用 -50% 的情况:

    1. 水平居中(左右方向)

      • 当你设置 left: 50%; 时,元素的左侧边界会定位在容器的中心点位置。
      • 但元素的中心点不在容器的中心,而是位于元素自身的宽度的一半处。
      • 通过使用 transform: translateX(-50%);,元素会向左移动自身宽度的一半,从而将元素的中心点与容器的中心点对齐,实现水平居中。
    2. 垂直居中(上下方向)

      • 同样,当你设置 top: 50%; 时,元素的顶部边界会定位在容器的中心点位置。
      • 但元素的中心点不在容器的中心,而是位于元素自身的高度的一半处。
      • 通过使用 transform: translateY(-50%);,元素会向上移动自身高度的一半,从而将元素的中心点与容器的中心点对齐,实现垂直居中。

    综合起来,transform: translate(-50%, -50%); 是将元素在水平和垂直方向上同时移动,使其中心点与容器的中心点对齐,从而实现元素的完全居中。

     2.flexbox

    1. html>
    2. <html>
    3. <head>
    4. <style>
    5. .container {
    6. display: flex;
    7. justify-content: center; /* 水平居中 */
    8. align-items: center; /* 垂直居中 */
    9. height: 100vh; /* 使容器铺满整个视口高度 */
    10. background-color: lightgray;
    11. }
    12. .content {
    13. display: inline-block; /* 将元素设置为行内块元素 */
    14. padding: 20px;
    15. background-color: white;
    16. }
    17. style>
    18. head>
    19. <body>
    20. <div class="container">
    21. <div class="content">要居中的内容div>
    22. div>
    23. body>
    24. html>

    大多数现代浏览器都支持它。然而,如果你需要考虑更旧的浏览器,特别是IE9及更早版本,Flexbox的支持可能会有限

    参考文章来自:

    元素居中的N种方法 - 掘金

    css 水平居中(8种方法)、垂直居中(8种方法) - 掘金 (juejin.cn)

  • 相关阅读:
    股票价格预测
    首发: ggrcs包,一个用于绘制直方图+限制立方样条+双坐标轴图的R包
    uniapp-自定义本地图标字体(1)
    Vim的基础操作
    电子学会2022年9月青少年软件编程(图形化)等级考试试卷(三级)答案解析
    Linux 小技巧1
    Beego 使用教程 6:Web 输入处理
    15经验模态分解及其改进程序,EMD,EEMD, CEEMDAN,三合一程序,已调试完成,替换自己数据可直接跑。
    mysql数据增删改
    读书笔记:项目管理教程之我国信息化发展的主要任务发展重点
  • 原文地址:https://blog.csdn.net/weixin_42173016/article/details/132571049