开发者社区> 问答> 正文

css负边距的问题?

这里有两个div, 都向左浮动,其中sub 设置了margin-left:-100%; 请问为何会出现这样的效果,sub能够占据到main上面。

在线demo:
http://codepen.io/anon/pen/zvJeNG点击预览

请问这个负边距有何妙用,为何-100% 和 -190px(div的宽度)效果截然不同呢?

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Document</title>
</head>
<body>
   <div class="main">
    this is main</div>
  
    <div class="sub">
      this is sub
    </div>
 </body>
</html>

.main{
  float:left;
  width:100%;
  background-color:aqua;
}
.sub{
  float:left;
  width: 190px;
  margin-left:-100%;
  background-color:black;
 
}

展开
收起
杨冬芳 2016-06-06 10:44:37 1750 0
1 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista

    margin值是百分比数的时候,是相当于元素的包含块的width来计算的

    你这儿的.sub margin-left:-100%的100% 是相对于sub的包含块 body的width 来计算
    也就是body的宽度

    而-190px就只是190个像素

    2019-07-17 19:27:51
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载