javascript - 子元素的margin为负值,就改变继承过来的width值,是什么原理?
怪我咯
怪我咯 2017-04-11 13:04:24
[JavaScript讨论组]

以上代码中.parent是父元素,设置了width:700px;子元素.son继承过来的时候,应该是700px,
但是子元素.son设置了margin-top:-20px;之后,.son的width就变成了720px,当子元素.son设置了margin-top:20px;则.son的width就变成了680px?是什么原理

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
巴扎黑

因为这是规范的规定啊.
块级元素水平方向格式化有如下规则

'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = 包含块的宽度

这条规则, 在水平 margin 取负值的情况下也是适用的.
你算算, .son 的宽度 720 加上 -20, 是不是正好等于 700, 也就是包含块 .parent 的宽度.

详细请看这里:
http://www.ayqy.net/doc/css2-...

天蓬老师

补充下楼上的答案,纠正你几个概念。
1.width不继承;
2.width的值默认为auto(由浏览器计算),不是100%。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号