关于拔河效应

关于拔河效应

关于拔河效应老师在视频教程里说的不是很清楚,希望有人能来解释一下我自己写了Demo,但是还是没懂。为什么写left:0,right:0,再来个margin:auto就可以让li里面的图片居中显示了。

正在回答

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

2回答

你好,看下面代码:

1. 如果外层div,内层一个div,都设置宽度时,直接写margin:auto,就可以水平居中。

html代码:

<div id="div1">  
         <div class="div2">祝学习愉快</div>  
 </div>

css代码:

  #div1{
        width:100%;
        height:300px;
        border:1px blue solid;
   }
  .div2{
        width: 100px;
        height:100px;
        margin:auto;
   }

2. 当定位后,看下面代码:

html代码:

<div id="div1">  
         <div class="div2">祝学习愉快</div>  
 </div>

css代码:

  #div1{
        width:100%;
        height:300px;
        border:1px blue solid;
        position:relative;
    }
    .div2{
          position:absolute;
          width: 100px;
          height:100px;          
          border:1px red solid;
          left:0;
          right:0;
          margin:auto;
          }

这样也是水平居中,因为代码.div2针对#div1定位,当设置left:0; right:0、margin:auto;,  左右自动计算,所以出现拔河现象,同理top:0, bottom:0 ,margin:auto; 一样,出现上下拔河。

希望对你有帮助,祝学习愉快,欢迎采纳。

  • 二农戏猪 提问者 #1
    可是为什么我这里写margin:0 auto它不能水平居中呢?还有一点老师这里设置left:0,right:0的话相对于定位的父级左右边距都是0,讲道理不是应该把图片给拉伸吗?好吧我有点钻牛角尖但是希望老师能解释的更清楚。
    2017-02-18 11:11:25
  • 同楼上求解
    2017-02-18 17:09:31
  • 轻青清 回复 提问者 二农戏猪 #3
    我也不是很懂,但是从助教给的解答看我的理解是 在相对(绝对)定位前使用margin:auto是可以居中的,但是在使用相对(绝对)定位后margin:auto要配合left:0;right:0;才能居中。但是为什么会这样还是不能理解
    2017-02-19 22:51:06
提问者 二农戏猪 2017-02-18 11:10:56

可是为什么我这里写margin:0 auto它不能水平居中呢?还有一点老师这里设置left:0,right:0的话相对于定位的父级左右边距都是0,讲道理不是应该把图片给拉伸吗?好吧我有点钻牛角尖但是希望老师能解释的更清楚。

  • 你好,注意如果正常外层,内层的关系(正常文本流),直接使用marin:0 auto,可以居中。当设置position:absolute , 定位,脱离了文本了流 (可以下,如何原父元素不设置高度,内层的元素高度不会影响父元素高度)。希望对大家有帮助。祝学习愉快,欢迎采纳。
    2017-02-21 09:26:45
  • 提问者 二农戏猪 回复 小于飞飞 #2
    谢谢老师弄清楚了
    2017-02-21 16:45:28
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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