为了账号安全,请及时绑定邮箱和手机立即绑定

关于水平居中的问题

在水平居中的讲解中,“通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中。”

同时设置float和position:relative,不会冲突吗?这样设置是为什么?float起什么作用?

正在回答

2 回答

看代码先。

.container{    float:left;
   position:relative;
   left:50%}

.container ul{
   list-style:none;
   margin:0;
   padding:0;    
   position:relative;
   left:-50%;}
.container li{float:left;display:inline;margin-right:8px;}

先设置div向右浮动50%,这个50是指浏览器窗口的一般,原来div是在左上角的,现在来到浏览器窗口一半的位置。现在我们再来看ul的属性设置,外边距margin和内填充padding都为0,也就是说ul这个容器的是和div等宽的,而且因为内填充也是0,因此li也和ul等宽!还有一个重要的点,就是li被设置成了行内元素,所以123会在一行显示,而且整个容器的宽度就是123所占的宽度,也就是说div的宽度也是一样宽,然后这里继续看ul的属性设置,left:-50%,这里的相对定位是相对div的左边框来说的,这个时候ul带着li里面的123向左移动-50%,因为ul和div的宽度一样,所以这就实现了123居中的效果!


0 回复 有任何疑惑可以回复我~
#1

山楂片大王 提问者

这个left:50%是relative的还是float的?如果是float的那relative在这里是什么作用呢?
2017-03-10 回复 有任何疑惑可以回复我~

看了好久表示没懂  同问

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识HTML(5)+CSS(3)-升级版
  • 参与学习       1226369    人
  • 解答问题       18240    个

HTML(5)+CSS(3)基础教程8小时带领大家步步深入学习标签用法和意义

进入课程

关于水平居中的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信