需求:有时页面内的一些容器需要定位在特定的某个位置,但是需要容器在水平方向上面居中显示,比如页面内的一个背景图里面放置一个容器,使用margin-top不方便,就决定使用绝对定位来设置。

实现方法:

方法一、知道容器尺寸的前提下

.element {

width: 600px; height: 400px;

position: absolute;

left: 50%;

top: 50%;

margin-top: -200px; /* 高度的一半 */

margin-left: -300px; /* 宽度的一半 */

}

缺点:该种方法需要提前知道容器的尺寸,否则margin负值无法进行精确调整,此时需要借助JS动态获取。

方法二、容器尺寸未知的前提下,使用CSS3的transform属性代替margin,transform中的translate偏移的百分比值是相对于自身大小的,设置示例如下:

.element {

position: absolute;

left: 50%;

top: 50%;

transform: translate(-50%, -50%); /* 50%为自身尺寸的一半 */

-webkit-transform: translate(-50%, -50%);

}

缺点:兼容性不好,IE10+以及其他现代浏览器才支持。中国盛行的IE8浏览器被忽略是有些不适宜的(手机web开发可忽略)。

方法三、margin: auto实现绝对定位元素的居中

.element {

width: 600px; height: 400px;

position: absolute;

left: 0;

top: 0;

right: 0;

bottom: 0;

margin: auto; /* 有了这个就自动居中了 */

}

html绝对定位怎么页面居中,绝对定位元素设置水平居中相关推荐

  1. 绝对定位元素设置水平居中

    需求:有时页面内的一些容器需要定位在特定的某个位置,但是需要容器在水平方向上面居中显示,比如页面内的一个背景图里面放置一个容器,使用margin-top不方便,就决定使用绝对定位来设置. 实现方法: ...

  2. 【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )

    文章目录 一.问题提出 二.绝对定位 居中设置 1.设置固定尺寸 2.先偏移50%再回退固定值 三.绝对定位元素 水平 / 垂直 居中 一.问题提出 绝对定位 不能通过 设置 margin: auto ...

  3. html的绝对定位脱离文档流吗,子元素设置绝对定位之后脱离文档流!

    子元素设置绝对定位之后脱离文档流之后父容器宽高都为都不撑开了. 很多时候都是宽高都是0: 子元素设置绝对定位如何让子元素自己撑开高度? 下面的这个子元素设置绝对定位后,父元素宽高都为0 了.  如何让 ...

  4. 怎么html让元素脱离文档流,子元素设置绝对定位之后脱离文档流!

    子元素设置绝对定位之后脱离文档流之后父容器宽高都为都不撑开了. 很多时候都是宽高都是0: 子元素设置绝对定位如何让子元素自己撑开高度? 下面的这个子元素设置绝对定位后,父元素宽高都为0 了.  如何让 ...

  5. CSS固定定位[相对浏览器] 相对定位[相对自己] 绝对定位[有relative的元素]

    1基础 Fixed:固定定位 是相对于浏览器窗口来定位的 Absolution: 绝对定位:当没有父元素或者父元素没有进行定位的时候,就是固定定位,以浏览器为标的物 元素会脱离文档流,若该元素没有设置 ...

  6. 关于css设置元素垂直水平居中的问题

    第一种: 利用定位属性实现,但需要知道元素的宽高 <div class="box"></div><style>.box{weight:200px ...

  7. 行内元素和块状元素的水平居中设置

    我在上一篇文章里总结了一下块状元素.内联元素.内联-块状元素的区别 三者的一个重要区别在于是不是独占一行以及能不能设置宽高.内外间距. 在这个前提下,我们应该怎么设置元素在水平方向上的居中呢? 行内元 ...

  8. CSS3 Flexbox轻松实现元素的水平居中和垂直居中

    网上有很多关于Flex的教程,对于Flex的叫法也不一,有的叫Flexbox,有的叫Flex,其实这两种叫法都没有错,只是Flexbox旧一点,而Flex是刚出来不久的东西而已,为了方便说明,赶上新技 ...

  9. html flex布局水平居中,CSS3 Flexbox轻松实现元素的水平居中和垂直居中

    网上有不少关于Flex的教程,对于Flex的叫法也不一,有的叫Flexbox,有的叫Flex,其实这两种叫法都没有错,只是Flexbox旧一点,而Flex是刚出来不久的东西而已,为了方便说明,遇上新技 ...

最新文章

  1. 有多少人在51job上找到工作_人不在日本,找到日本工作的最佳方案
  2. 数字开头的正则表达式_初学Web前端要注意什么 正则表达式是怎么回事
  3. 机器学习中梯度下降法和牛顿法的比较
  4. 学习笔记(55):Python实战编程-Scrollbar
  5. ID生成器 雪花算法
  6. scala学习-scala中:: , +:, :+, :::, +++的区别
  7. linux分支结构,实验四 Shell脚本中的分支结构
  8. 解决文件上传_使用FastDfs上传头像上传不成功的问题---SpringCloud Alibaba_若依微服务框架改造---工作笔记002
  9. i美股投资研报--Michael Kors(IPO版) _Michael Kors(KORS) _i美股
  10. access 套用表格_将ACCESS数据库导入到EXCEL表格
  11. linux五笔输入法制作_五笔98输入法制做--for Linux ibus
  12. BP神经网络代码示例
  13. 虚拟机 Bochs新版本试用DOS、UCDOS、Win3.2 -- Bochs 2.6.11于2020年1月5日发布!
  14. 我在使用Next.js, Antd, @zeit/next-css时遇到的一些问题
  15. 用matlab计算基金收益,CAPM模型计算的MATLAB实现
  16. 快手小程序预下单 tp6 demo
  17. pycharm怎么设置根目录?
  18. win10重新安装ie
  19. matlab中函数的定义和使用
  20. 华为海思Hikey 970+ Ubuntu16.04 Xenial +ROS kinetic

热门文章

  1. 洛谷月赛T2 P6858[深海少女与胖头鱼]题解
  2. docker导入镜像报错:open /var/lib/docker/tmp/docker-import-970689518/bin/json: no such file or
  3. Windows下代码比较工具Meld diff 以及 VScode配置,解决“Meld Diff Error: Error running diff command! StdErr: ‘meld‘ �
  4. Android跳转到拨打电话界面和拨打电话
  5. 浅谈偏光镜使用与选购[机器视觉系列]
  6. 冰点文库最新版3210
  7. 精彩回顾:CACTER邮件数据防泄露EDLP亮相2022世界互联网大会
  8. 根 ssl 2668 优美的暴力
  9. GoogleChrome禁止访问端口解决
  10. o在计算机进制中,计算机里的0和1,二进制