html5 - css中有关负边距(negative margin)的一个问题?
黄舟
黄舟 2017-04-17 12:08:28
0
1
411
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        body{
            margin:0;
            font-size:5em;
        }

        .a,.b,.c{
            width:200px;
            height:200px;
        }

        .a{
            background-color: red;
            width:100%;
            float:left;
            
        }

        .b{
            background-color: green;
            width:100%;
            float:left;   
        }

        .c{
            background-color: yellow;
            float: left;
            /*margin-left:-100%;*/
        }
    </style>
</head>
<body>
    <p class="a">a</p> 
    <p class="b">b</p> 
    <p class="c">c</p>      
</body>
</html>

代码如上,在浏览器中显示如下:

如果给方块C添加margin-left:-100%,效果如下:

方块C移动到了绿色部分,看了相关博文了解负边距是能够移动添加了float属性的元素,这还能理解,但如果把-100%改成-200%,我以为可以让方块C再移上去到红色部分,但却没有,似乎移到了绿色部分的左边而且到了屏幕外,这是为什么? 如图:

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
左手右手慢动作

float 是很怪异的一个css属性,也是新手常犯迷糊的一个属性。页面元素添加该属性后,该元素会从页面上“飘”起,然后其父级元素高度归零(即脱离文档流),这是常见的浮动效果。但实际使用中,它貌似是只影响上一行结构的。
你的代码, 如果给 .c 继续添加 margin-top: -200px; 的话,就可以实现 .c 叠加在 .a 上了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!