当前位置: 首页 > news >正文

面试常问:水平居中和垂直居中的方法

水平居中

  1. 文本居中
    • 如果元素为行内元素,可以将父元素的text-align属性设置为center,这样子元素就会水平居中对齐
.text{text-align: center;
}
  1. 固定宽度的居中
    • 如果元素宽度已知并固定,可以通过将左右margin设置为auto来实现水平居中。
.content{margin-left:auto;margin-right:auto;
}
  1. 绝对定位和移动
    • 可以使用绝对定位和transform来实现水平居中。首先将元素的左边距和右边距都设置为auto,然后使用transform属性将元素向左平移50%。
.content{position: absolute;left: 50%;transform: translateX(-50%);
}
  1. Flexbox布局
.content{display: flex;justify-content: center;
}
  1. 表格布局
    • 将父元素的display属性设置为table-cell,并将text-align属性设置为center。
.content{display: table-cell;text-align: center;
}

垂直居中

  1. 表格布局
    • 将父元素的display属性设置为table,并将子元素的display属性设置为table-cell,然后使用vertical-align属性将子元素垂直居中
    • 未知高度的块级父子元素居中,模拟表格布局
    • 缺点:IE67不兼容,父级 overflow:hidden 失效
.parentcont {display: table;
}
.childCont {display: table-cell;vertical-align: middle;
}
  1. Flex布局
    • 将父元素的display属性设置为flex,并使用align-items属性将子元素垂直居中。
.pacon {display: flex;align-items: center;
}
  1. 绝对定位和负边距
    • 已知高度的子元素,将父元素设置为相对定位,子元素设置为绝对定位,并使用top: 50%将其垂直居中,然后通过负边距的方式将子元素向上移动一半的高度
.parentCon{position: relative;
}
.childCon {position: absolute;top: 50%;margin-top: -`100px; /* 假设子元素高度为200px的一半 */
}
  1. 文本垂直居中
    • 对于单行文本,可以设置父元素的line-height属性和高度相等,从而实现文本的垂直居中
.con{height: 50px;line-height: 50px;
}
  1. CSS3位移
    • 使用CSS3的transform属性的translateY函数将子元素向上位移一半的高度实现垂直居中
.con {position: absolute;top: 50%;transform: translateY(-50%);
}
  1. inline-block兄弟元素
    • 通过在父元素中插入一个inline-block元素,并设置其垂直对齐方式为middle来实现垂直居中
.parentCon {height: 100%;
}
.extracon {display: inline-block;vertical-align: middle;
}
.childcon {display: inline-block;vertical-align: middle;
}
http://www.lryc.cn/news/141244.html

相关文章:

  • 第七届“蓝帽杯”初赛取证题目分享
  • go语言学习之有关变量的知识
  • 算法通过村第8关【青铜】| 二叉树的经典算法题
  • Open3D 点云均值滤波
  • C语言指针入门详解
  • 软件工程(十四) 设计模式之结构型模式(二)
  • 不解压的方式直接更新jar包内部的内容
  • 软件工程(八) UML之类图与对象图
  • 【Unity3D赛车游戏】【五】Unity中汽车加速效果是如何优化的?
  • 龙智案例:某大型零售企业如何打造高速、现代化的ITSM体系
  • jdk 03.stream
  • “华为杯”研究生数学建模竞赛2018年-【华为杯】C题:对恐怖袭击事件记录数据的量化分析
  • java8的reduce方法
  • Mac发现有的软件不能上网的破解之法
  • 定时检测接口是否正常飞书告警脚本
  • 【MySQL】2、MySQL数据库的管理
  • 8086汇编test指令学习
  • 简单js逆向案例(2)
  • azure data studio SQL扩展插件开发笔记
  • 【二分】搜索旋转数组
  • APSIM模型应用与参数优化、批量模拟
  • QT使用QXlsx实现对Excel sheet的相关操作 QT基础入门【Excel的操作】
  • ARM DIY(四)WiFi 调试
  • AIGC ChatGPT 实现动态多维度分析雷达图制作
  • Vue2向Vue3过度核心技术路由
  • ElasticSearch常用方法
  • nginx下添加http_ssl_module并且配置域名,指定端口
  • 【PHP】PHP变量
  • KVM创建虚拟机可访问外网+可使用Xshell等工具连接
  • 数据库——Redis 没有使用多线程?为什么不使用多线程?