美文网首页
解决滚动条出现时水平居中元素的margin自动抖动问题

解决滚动条出现时水平居中元素的margin自动抖动问题

作者: Kazimi | 来源:发表于2019-08-04 16:33 被阅读0次

在很多高度不固定的网页中,当内容高度足够用一屏进行展示时,不会出现滚动条,而当内容高度高于一屏时,浏览器右侧就会出现滚动条。滚动条的宽度会影响页面的可用宽度,这时候,使用 margin: 0 auto; 来居中的元素就会导致 margin 的自动变化,从而引起元素位置的抖动。
要想解决抖动问题,让元素在有无滚动条的条件下都处于同一个位置,有几种解决办法。

1. 使用 overflow:scroll 解决

Html:{
overflow-y:scroll;
}

这种方法让内容高度无论是否超过一屏滚动条始终都会出现,这样就不存在滚动条出现前后可用宽度不统一的问题,也就不会造成 margin 的自动变化引起元素位置抖动。
很多人不喜欢在不需要滚动条时多出来一个滚动条,就要用到第二种方法了。

2.使用 calc 解决

Html{
    padding-left: calc(100vw - 100%);
}

这种方法使用 calc 计算出一个滚动条的宽度,用 margin 或者 padding 占用,其中 100vh 是包括滚动条宽度的浏览器内部宽度,100% 则是实际可用宽度。在出现滚动条时,相当于左右两侧都出现了滚动条宽度,从而使水平居中的元素仍然保持水平居中。

参考链接:

相关文章

  • 解决滚动条出现时水平居中元素的margin自动抖动问题

    在很多高度不固定的网页中,当内容高度足够用一屏进行展示时,不会出现滚动条,而当内容高度高于一屏时,浏览器右侧就会出...

  • css水平居中布局总结

    水平居中 1. 子元素margin: 0 auto 父子元素的宽度皆已定,子元素的margin设为左右自动,mar...

  • CSS小技巧

    1.元素水平居中 内联元素水平居中text-align:center; 块元素水平据居中margin:0 auto...

  • CSS(五)对齐方式(居中)

    一、水平居中 margin: auto;设置子容器margin属性,可使元素在父容器内水平居中 二、垂直居中 li...

  • 居中大法

    水平居中 行内元素水平居中给它的父级元素设置 块级元素水平居中给该元素设置margin值 子元素有浮动对父元素进行...

  • 前端常用布局

    1、水平居中 方法一:margin:0 auto; 是最常见的水平居中解决方案,但有其局限性:块级元素,已知宽度,...

  • 一篇文章带你了解CSS对齐方式

    一、居中 1. 居中对齐元素 将块元素水平居中对齐(像 ) , 使用 margin: auto; 设置元素的宽度...

  • 让元素绝对居中

    我们都知道margin:0 auto;的样式可以让元素水平居中,但是margin:auto;却不能让元素垂直居中,...

  • 元素居中

    水平居中 行内元素居中:text-align:center块级元素居中:设置宽度,左右margin:auto; 垂...

  • 如何实现居中

    水平居中1、内联元素居中:父元素设置text-align:center 2、块级元素居中:该元素设置margin-...

网友评论

      本文标题:解决滚动条出现时水平居中元素的margin自动抖动问题

      本文链接:https://www.haomeiwen.com/subject/cldydctx.html