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

这篇具有很好参考价值的文章主要介绍了面试常问:水平居中和垂直居中的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

水平居中

  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;
}

文章来源地址https://www.toymoban.com/news/detail-667386.html

到了这里,关于面试常问:水平居中和垂直居中的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS实现元素水平垂直居中的各种方法

    关于 CSS 如何将元素进行水平垂直居中的几种常用方法 前言         在设计网页页面的过程中,总会有将元素或者文字进行水平或者垂直居中的要求,各种CSS样式调整,搞的头都大了。这里将会介绍 CSS 中几种常用到的水平垂直居中的方法,希望能够对你有所帮助。 接下

    2024年02月08日
    浏览(34)
  • CSS图片水平垂直居中的三种方法

    我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致。 其次最重要的是设置图片元素的vertical-align属性为middle,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐方式。 代码示例: 具体方式是先使用定位让图

    2024年02月13日
    浏览(39)
  • css-4:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

    1、背景 在开发中,经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素。 居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成两个大类。 居中元素(子元素)的宽高已

    2024年02月14日
    浏览(29)
  • css基础知识七:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

    一、背景 在开发中经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素 居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成两个大类: 居中元素(子元素)的宽高已知

    2024年02月11日
    浏览(36)
  • CSS水平垂直居中

    1.利用定位 + margin:auto 2.flex布局 3.grid布局 一、利用position+margin:auto  二、利用flex 三、gird布局

    2024年02月14日
    浏览(34)
  • 【CSS 布局】水平垂直方向居中

    单行元素 方式一: relative 和 absolute 方式二: relative 和 absolute (变种,适合于宽高固定) 方式三: flex 和 margin 方式四: flex 方式五: flex 多行元素

    2024年02月13日
    浏览(33)
  • CSS 水平垂直居中的方式

    目录 在不知道子元素宽高的情况下,水平垂直居中的六种方式: 1、弹性盒子布局方式来实现(flex)。  2、绝对定位 + transform 3、table标签 4、display:table-cell 5、display: grid 6、writing-mode 属性 在实际使用最好测试下最低版本是否支持对应的实现方式,尽量选各个浏览器支持比

    2024年02月08日
    浏览(45)
  • css垂直水平居中的几种实现方式

    一、固定宽高: 1、定位 + margin-top + margin-left 设置父元素的position为相对定位,子元素绝对定位,并在 top 和 left 方向上移动父元素50%的距离。 但这个时候,是子元素的上边框和左边框距离父元素150px,整体向右下角偏了一些,所以还需要再用 margin 调整至中心位置,数值分别

    2024年01月18日
    浏览(31)
  • 【前端 | CSS系列】—— 第1篇:如何实现水平垂直居中对齐?

    单纯的元素 左右居中 对齐: 块级元素 可以使用 magrin: 0 auto ; 非块级元素 使用 text-align: center;

    2024年02月13日
    浏览(39)
  • 水平居中、垂直居中的几种方法

    ① 若是针对inline, 内联块inline-block, 内联表inline-table, inline-flex元素及img,span,button等元素 父元素设置  text-align:center; 或者用绝对定位、弹性布局、grid网格布局实现; ② 不定宽块状元素 设置  margin:0 auto; 或者用绝对定位、弹性布局、grid网格布局、table表布局实现; grid网格布

    2023年04月19日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包