2019独角兽企业重金招聘Python工程师标准>>>

当设置了父元素的宽度,子元素设置宽度为100%后再在加上子元素上添加padding或margin值就会溢出。举个例子:

<!-- 示例 --><!-- html -->
<div class="parent"><div class="child"></div>
</div><!-- css -->
.parent {width: 500px;height: 50px;background-color: green;border: 1px solid #E74D4D;
}
.child {width: 100%;height: 30px;margin: 20px;background-color: pink;
}

示例

这是因为设置了width: 100%;后已经将父元素占满,再添加margin值就会溢出(默认溢出值为左侧的margin值)

解决方法:

  1. 父元素设置padding
<!-- 弊端是增加了parent占用的宽度 -->
.parent {width: 500px;height: 50px;padding: 20px;background-color: green;border: 1px solid #E74D4D;
}
.child {width: 100%;height: 30px;background-color: pink;
}
  1. [ 推荐 ]利用css3中的box-sizing: border-box; 属性解释链接
    设置他以后,相当于以怪异模式解析,borderpadding全会在你设置的宽度内部。
.parent {width: 500px;height: 50px;padding:20px;background-color: green;border: 1px solid #E74D4D;box-sizing: border-box;
}
.child {width: 100%;height: 30px;background-color: pink;
}
  1. 子元素外添加一个div
<div class="parent"><div class="child2">    <!-- 设置margin: 20px; --><div class="child"></div></div>
</div>

** end **


下面是彩蛋。。。

我在举这个例子的时候发现了一个css hack(针对不同的浏览器/不同版本写相应的CSS code的过程):父元素与子元素之间的margin-top问题。
html代码

<div class="box1"> <div class="box2"></div>
</div>

css样式

.box1{height:200px;width:200px;background:gray;}
.box2{height:100px;width:100px;background:gold;margin-top:50px;}

结果

示例

父元素的盒子包含一个子元素盒子,给子元素盒子一个垂直外边距margin-top,父元素盒子也会往下走margin-top的值,而子元素和父元素的边距则没有发生变化。

解决方法:

  1. 修改父元素的高度,增加padding-top样式模拟(padding-top:1px;常用)
  2. 为父元素添加overflow:hidden;样式即可(完美)
  3. 为父元素或者子元素声明浮动(float:left;可用)
  4. 为父元素添加border(border:1px solid transparent可用)
  5. 为父元素或者子元素声明绝对定位

ps:

子元素设置margin-top后,父元素跟随下移的问题

https://www.cnblogs.com/bluey/p/6417922.html

css中hack是什么

https://www.cnblogs.com/Renyi-Fan/p/9006084.html

转载于:https://my.oschina.net/jack088/blog/3042690

多方法解决设置width:100%再设置margin或padding溢出的问题相关推荐

  1. div宽度设置width:100%后再设置padding或margin超出父元素的解决办法

    在设置了元素宽度width100%后再加上margin和padding超出父元素宽度,其实解决的方法很简单,直接使用CSS的 box-sizing 属性就可以解决这个问题,这个是CSS3新属性,可以将 ...

  2. 解决div宽度设置width:100%后再设置padding或margin超出父元素的办法

    前言: 有时候我们需要子div和父div一样宽(高),但是需要设置一定边距时,如果子元素使用width:100%在设置padding或margin的话,就会出现溢出问题. HTML <div c ...

  3. css中width、height、margin、padding默认值总结

    默认值 left   top   right   bottom   width   height: 默认值为 auto margin  padding:  默认值为 0 百分比参照于谁 width  ...

  4. 块状元素的居中,首先设置宽度,再设 margin: 0 auto

    块状元素的居中,首先设置宽度 width="10px",再设 margin: 0 auto; . 转载于:https://www.cnblogs.com/npk19195globa ...

  5. 微信小程序设置width 100%有用,但height 100%不起作用的解决办法

    问题原因: %设定宽高是根据父级宽高来定的,假设页面并没有缺省的高度值,当你让一个元素的高度设定为百分比高度时,无法根据获取父元素的高度,也就无法计算自己的高度. 解决办法: 给页面设定一个绝对的高度 ...

  6. position: relative_设置relative 后再设置定位 原有位置空白

    问题描述:当元素同时设置position:relative和top时,元素原本位置会出现空白. 还原代码: /*css*/.skyblue,.yellowgreen,.pink { height: 6 ...

  7. width:100%和 max-width:100%的区别

    width:100% 和 max-width:100%的区别: width: 100%(不包括margin和padding和border)是将所有指定元素的宽度拉伸或收缩到和父元素的宽度一致, 而ma ...

  8. html不能超出div的宽度,DIV设置width后超出父元素应该如何解决

    这次给大家带来DIV设置width后超出父元素应该如何解决,解决DIV设置width后超出父元素的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 本文介绍的是利用CSS3的新属性box-siz ...

  9. html设置页面大小始终100%,css width 100% 宽度百分之百设置与不设置

    css宽度百分之百设置与不设置 css width可以设置具体固定数值比如10px.500px.980px.1200px等,以达到网页固定宽度显示.css 宽度 width也可以设置百分比值,比如80 ...

最新文章

  1. java 强制垃圾回收_Java垃圾回收机制
  2. php实现socket
  3. php点菜系统开题报告,点餐管理系统的设计与实现-开题报告
  4. 二十、预处理CSS的LESS
  5. c#_导出table功能
  6. 如何理解java回电话
  7. .net框架读书笔记---虚方法
  8. 程序员浪漫起来到底有多可怕!
  9. JS Math.sin() 与 Math.cos() 用法
  10. [投稿] Speex回声消除原理深度解析
  11. 《推荐系统实战(一)》基于统计的电影推荐系统(tmdb-5000数据集,数据清洗、特征提取、搭建模型等详细过程)
  12. java中socket学习_java的socket学习
  13. Android Studio+SDK+tools下载、安装、配置及应用程序运行(详细,亲测)
  14. C#与VC相互调用之C#调用VC的DLL
  15. 量化交易系统之python+mysql(二)
  16. html中js左右图片切换效果,JS实现图片切换特效
  17. uni.navigateTo页面跳转时传对象参数
  18. 联想 thinkpad usb 移动硬盘 u盘 BIOS 启动 ubuntu 系统
  19. 控件:可见、隐身、走开
  20. Umeng App监管执法合规自查通知

热门文章

  1. UITabBarController背景图片和适配
  2. 【Redis】Redis最大连接数maxTotal设置过小的问题
  3. 正则验证手机号和电话号码
  4. java中成员变量和全局变量的区别_成员变量与全局变量的区别
  5. 小P的故事——神奇的换零钱
  6. js 捕获鼠标右键事件
  7. 服务器出现信号问题,网络故障中出现的丢包是什么意思?什么又是丢包率?
  8. VR数字展厅——助力商企实现数字化营销展示
  9. 计算机学科三大科学形态,计算机科学与技术方法论-计算学科中的三个学科形态ppt...
  10. java replaceall 引号_Java 1.4 String.replaceAll单引号问题