美文网首页
CSS中能否通过设置margin-top和margin-bott

CSS中能否通过设置margin-top和margin-bott

作者: 燃烧吧_小宇宙 | 来源:发表于2016-03-17 15:37 被阅读431次
<!DOCTYPE html>
<html>
<head>
    <style>
        #a{
            background-color:red;
            height: 100px;
            color: #fff;
        }
        #b{
            width: 60%;
            margin-left: auto;
            margin-right: auto;
            background-color:blue;
            height: 50px;
            margin-top: 50px;
            color: #fff;
        }
    </style>
</head>
<body>
    <div id="a">
        <div id="b">b</div>
        a
    </div>
</body>
</html>
6.png
这里看到明明是b设置的margin-top,对自己没效果反而对a产生效果了。这是因为当父级元素没有设置border-top或者padding-top的时候,他的第一个子节点(这里包括元素节点文本节点)如果设置了margin-top,那么这个margin-top会一层层往上越级直到遇到(1)一个设置了border-top或者padding-top的父元素或者(2)直到遇到body或者(3)此父级元素的第一个子节点不为他或他的父元素的时候才停下。(这里表述不清,请自己写code体会,注意每个div里面文本的位置)

** 解决方法: **
给父元素设置一个border-top或者padding-top把子元素管住就可以防止越级了。比如给#a加上border-top: 1px solid transparent;或者padding-top:1px;

cd.gif
外边距合并并不是浏览器的bug,因为所有的现代浏览器都有这个行为,而且在标准里面也写了。
参考:CSS 外边距合并**

作者:Yuki Cland
链接:https://www.zhihu.com/question/24279692/answer/27272393
来源:知乎

相关文章

  • CSS中能否通过设置margin-top和margin-bott

    ** 解决方法: **给父元素设置一个border-top或者padding-top把子元素管住就可以防止越级了。...

  • 垂直居中

    垂直居中设置要点: 1、设置元素为相对定位2、通过top设置其位置为父元素的50%3、通过margin-top向上...

  • 子元素margin-top为何会影响父元素?

    问题如下 一段很简单的代码: css如下: html结构如下 当在crystal没有设置margin-top时,浏...

  • 踩坑总结

    IE的margin-top和chrome的margin-top不一致,为了兼容IE8,有的人采用在CSS样式后加上...

  • jQuery实现显示隐藏功能与设置样式

    1、设置显示隐藏 2、通过css()设置样式 3、通过addClass()设置样式

  • CSS笔记

    CSS笔记 inline: 不能修改width和height,大小有内容撑开 margin-top margin-...

  • js动画 - 猜杯子游戏

    要点1:通过css3动画设置拿起杯子动画。要点2:在js中动态设置css动画设置。要点3:使用数组记录杯子元素的状...

  • css设计指南第二章

    CSS工作原理:找到html元素,然后设置其各种属性的机制. 可通过在head标签中通过 嵌入css样式. 标签...

  • jQuery_css

    对于jQuery的css属性方法: 它有读取css样式和设置css样式的功能; 一.读取 我们通过jQuery对象...

  • 移动端横向滚动

    html: css: .buy_type { margin-top: 40px; ...

网友评论

      本文标题:CSS中能否通过设置margin-top和margin-bott

      本文链接:https://www.haomeiwen.com/subject/wpjclttx.html