position:absolute居中问题

position:absolute居中问题

canvas {

position: absolute;

display: block;

top: 0;

left: 0;

bottom: 0;

right: 0;

margin: auto;

background: #abcdef;

}

老师我发现以下三种写法的效果一致,是为什么呢?

canvas {

position: absolute;

display: block;

top: 0;

left: 0;

bottom: 0;

right: 0;

background: #abcdef;

}


canvas {

position: absolute;

display: block;

margin: auto;

background: #abcdef;

}


canvas {

position: absolute;

display: block;

background: #abcdef;

}

为什么把上下左右设置为0还要再加上margin:auto才可以实现居中呢?应该是position:absolute造成的吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

定位元素实现居中的方式不止一种,这也是其中一种,这种方式的代码两个关键点:

1、上下左右均0位置定位;

2、margin: auto

记住就可以了~


小丸子爱吃菜 2017-08-02 11:29:00

如果想要元素在页面中居中显示,直接设置宽度和margin:0 auto;即可;

如果给元素设置了定位实现居中的话可以先left:50%,然后再设置margin-left:-元素宽度的一半!

你写的第一种方式也可以实现,只是有些麻烦!

祝学习愉快!

  • 提问者 云是风的眼睛 #1
    谢谢老师的回答,我的margin: 0 auto可以设置水平居中,谢谢老师,但是不能垂直水平方向上同时居中。可是视频里面的canvas { position: absolute; display: block; top: 0; left: 0; bottom: 0; right: 0; margin: auto; background: #abcdef; } 这种写法可以水平和垂直方向上同时居中,我不知道其中的原理是什么。
    2017-08-02 11:53:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师