元素的水平居中和垂直几种方案

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

总结一下各种元素的水平居中和垂直居中方案。

水平居中:

1.行内元素水平居中 text-align: center

定义行内内容(例如文字)如何相对它的块父元素对齐;不仅可以让文字水平居中,还可以让行内元素水平居中

注意:给行内元素的父元素设置

  • left:左对齐
  • right:右对齐
  • center:正中间显示
  •  justify:两端对齐

2.块级元素的水平居中  margin: 0 auto;

 设置当前块级元素(宽度): margin: 0 auto;

原理:一个块级元素默认独占一行,默认宽度是容器的宽度,margin-left,margin-right默认为0,若设置父元素的宽度为100px,本身的宽度是50px,则会自动设置该元素的margin-right为50px,即该元素的整体宽度仍然等于父元素的宽度。

当设置margin-left:auto,margin-right:auto,为了使该元素的宽度等于父容器的宽度,浏览器会使左右两侧的margin会平分剩余的宽度,所以会使该块级元素水平居中。

 3.绝对定位

    元素有宽度情况下, left0/right0/margin: 0 auto;

4.flex    justify-content: center

display:flex;
justify-content:center;

垂直居中:

  • 1.绝对定位

        * 元素有高度情况下, top0/bottom0/margin: auto 0;

<style>
   .container {
      position: relative;
      height: 300px;
    }
    .box1 {
      position: absolute;
      width: 100px;
      height: 100px;
      top: 0;
      bottom: 0;
      margin: auto 0;
    }
</style>
<div class="container">
    <div class="box1">我居中了</div>
</div>

 父元素height:300px,子元素height:100px,margin-top和margin-button会均分垂直方向剩余的距离。

 弊端:

     1>绝对定位会使元素脱离标准流,可能影响其他元素的布局

     2>必须给元素设置高度

  • 2. flex布局(直接使用flex)

<style>
   .container {
      display: flex;
      align-item:center;
      height: 300px;
    }
    .box1 {
      width: 100px;
    }
</style>
<div class="container">
    <div class="box1">我居中了</div>
</div>

    弊端:

      1> flex-container中的flex-item都会垂直居中

      2> 相对来说, 兼容性差一点点(基本可以忽略)

  • 3.相对定位+translate

  • 父元素设置高度,子元素可以不设置高度

  • 先向下移动父元素高度的一半

  • 在向上移动自身高度的一半

top:50%;transform: translate(0,-50%);

<style>
    .box1 {
      position: relative;
      top:50%;
      transform: translate(0,-50%);
    }
</style>
<div class="container">
    <div class="box1">我居中了</div>
</div>

思考:向下移动父元素高度的一半的时候为什么不适用margin-top:50% ?

margin的百分比是相对于包含块(父元素)的宽度。

4.文本垂直居中

line-height:两行文本base-line之间的距离,该距离正好等于一行的高度

当行高大于字体高度时,剩余的行距会上下均分,所以文字始终位于行高的中间,当设置行高等于容器的高度时,文字正好可以在容器中垂直居中。

注意:该方法只能用于文本,因为文本具有在行高中居中显示的特性文章来源地址https://www.toymoban.com/news/detail-739041.html

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

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

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

相关文章

  • css垂直水平居中的几种实现方式

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

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

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

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

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

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

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

    2024年02月13日
    浏览(52)
  • CSS水平垂直居中(最常见的三种方案flex、grid、absolute)

    本文简单介绍一下现代 CSS 中最常见的三种水平垂直居中方案。 html: css: 方案1:父元素设置 flex 布局,并设置主轴以及交叉轴的对齐方式: 方案2:父元素设置 flex 布局,子元素设置 margin: auto : 父元素设置 grid 布局,以及 place-items: center 。 place-items  是  align-items  和 

    2024年01月16日
    浏览(47)
  • 居中一个元素(水平+垂直居中)

    我们的示例代码全在此基础上修改: 具体原理参考下面这篇博客: flex 弹性布局_本郡主是喵的博客-CSDN博客 对于内容是 行内式元素(内容大小撑起标签宽高)或文字, 是有效的。 line-heignt == height ,能使文字垂直对齐,text-align:center,能使内容居中水平对齐 父元素,采用相对布局,

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

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

    2023年04月19日
    浏览(39)
  • CSS实现盒子模型水平居中、垂直居中、水平垂直居中的多种方法

    水平居中效果图 水平居中 全局样式 第一种:margin+width 这种方法适用于已经知道width的盒子,实现起来比较简单 第二种:text-align+inline-block 这种方法适用于多种场景(width不固定) 第三种:float+position 这种方法适用于多种场景(width不固定) 第四种: 这种方法适用于多种场

    2024年02月09日
    浏览(67)
  • uniapp 页面元素水平垂直居中

    在uniapp中如何让一个源码在页面中水平垂直居中?可添加如下操作: 在App.vue添加如下代码设置页面宽度100%显示 在你要居中的页面添加 效果如下

    2024年02月15日
    浏览(37)
  • 元素水平垂直居中的5种方式

    1、利用弹性盒子 将父元素设置为display:flex; 通过:  justify-content: center;  align-items: center; 来设置元素的垂直水平居中 2、将元素转化为表格的形式 父元素设置:  display: table-cell;  vertical-align: middle;  text-align: center; 子元素需设置: display: inline-block;  vertical-align: middle;//消除行

    2024年01月16日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包