多方法解决设置width:100%再设置margin或padding溢出的问题
当设置了父元素的宽度,子元素设置宽度为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值)
解决方法:
- 父元素设置
padding
<!-- 弊端是增加了parent占用的宽度 -->
.parent {
width: 500px;
height: 50px;
padding: 20px;
background-color: green;
border: 1px solid #E74D4D;
}
.child {
width: 100%;
height: 30px;
background-color: pink;
}
- [ 推荐 ]利用css3中的
box-sizing: border-box;属性解释链接
设置他以后,相当于以怪异模式解析,border和padding全会在你设置的宽度内部。
.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;
}
- 子元素外添加一个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的值,而子元素和父元素的边距则没有发生变化。
解决方法:
- 修改父元素的高度,增加padding-top样式模拟(padding-top:1px;常用)
- 为父元素添加overflow:hidden;样式即可(完美)
- 为父元素或者子元素声明浮动(float:left;可用)
- 为父元素添加border(border:1px solid transparent可用)
- 为父元素或者子元素声明绝对定位
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溢出的问题的更多相关文章
- div宽度设置width:100%后再设置padding或margin超出父元素的解决办法
div宽度设置width:100%后再设置padding或margin超出父元素的解决办法 一.总结 一句话总结:直接加上box-sizing:border-box;即可解决上述问题. 1.box-s ...
- input 设置 width:100% 和padding后宽度超出父节点
input 设置 width:100% 和padding后宽度超出父节点 添加如下css即可: box-sizing: border-box; -webkit-box-sizing: border-b ...
- 前端面试题CSS-div宽度设置为100%,设置属性margin-left和margin-right时出现的问题
前端面试题CSS-div宽度设置为100%,设置属性margin-left和margin-right时出现的问题 div格式如下 <div class="a"> < ...
- css top,right,bottom,left设置为0有什么用?它和width:100%和height:100%有什么区别?
壹 ❀ 引 当我们使用position属性时,总免不了与top,left,right,bottom四个属性打交道,那么这四个属性都设置为0时有什么用,与宽高设置100%又有什么区别?本文对此展开讨论 ...
- width:100% 和 max-width:100%; 有区别吗【转藏】
这个博客是基于“Pelican+Markdown+定制的my-gum主题”的.定制的主题将博文正文页面的 右边栏去掉,这导致在Firefox等浏览器中,正文中大的图片会突破正文块的宽度,高度也得不到限 ...
- 设置height:100%无效的解决方法
设置height:100%无效的解决方法 刚接触网页排版的新手,常出现这种情况:设置table和div的高height="100%"无效,使用CSS来设置height:" ...
- table和div设置height:100%无效的完美解决方法
刚接触网页排版的新手,常出现这种情况:设置table和div的高height="100%"无效,使用CSS来设置height:"100%"也无效,为什么会这样呢 ...
- hibernate中保存一个对象后再设置此对象的属性为什么不需要调用update方法了
hibernate中保存一个对象后再设置此对象的属性为什么不需要调用update方法了 例如session.save(user);user.setAge(20); 原因: hibernate对象的三种 ...
- 解决body设置height:100%无效问题
1. 解决html设置height:100%无效问题 通常我们需要让自己的网页内容能够更好的适配各种屏幕大小,会采用height:100%,但是我们发现问题出来了,height:100%无效,其实解决 ...
随机推荐
- Java基础知识2-Java基本语法
数据类型 1.Java程序的基本组成 关键字:被Java语言赋予特定含义的单词,不能作标识符,如private. 标识符:由数字.字母.$和_组成的字符串,用于引用变量.且首字母不能是数字. 变量:程 ...
- spring初级java 应用。搭建环境。基本语法
搭建环境完成之后.使用spring config editor打开配置的spring xml文件. 自己实现了,spring在java上的一些基本的应用.一共看了四节视频.下面是自己实现的编码: 最基 ...
- 在tap的碎片上与活动进行绑定实现点击事件(日期时间选择以及按钮跳转时间)
主要是掌握怎样在Fragment类型的.java文件中实现对于文本框或者按钮点击事件的触发操作. 相应的出发时间都是之前的代码.主要是怎样在Fragment怎样实现相应的操作主要是对于getActiv ...
- 在.net core中完美解决多租户分库分表的问题
前几天有人想做一个多租户的平台,每个租户一个库,可以进行水平扩展,应用端根据登录信息,切换到不同的租户库 计划用ef core实现,他们说做不出来,需要动态创建dbContext,不好实现 然而这个使 ...
- html的嵌套规则
html元素分为块状元素和内联元素,块状元素作为其他元素的容器. 块状元素可以嵌套其他块状元素 块状元素可以嵌套内联元素 内联元素不能嵌套块状元素 p内不能嵌套块状元素 有几个特殊块状元素只能包含内联 ...
- docker 私有仓库 删除镜像
1.查找官方删除法 https://github.com/burnettk/delete-docker-registry-image 2.民用删除法 https://segmentfault.com/ ...
- eclipse 使用 快捷键
ctrl + t :查看类的子类和实现类 ctrl + o 查看类实现的方法 ctrl + 1 相当于idea的 alt + enter 补全变量 syso 点 alt + / System.out ...
- 如何使用Swagger-UI在线生成漂亮的接口文档
一.简单介绍 Swagger是一个实现了OpenAPI(OpenAPI Specification)规范的工具集.OpenAPI是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API ...
- Xcode 6.3.1Mac版 V6.4.Beta3免费下载
Xcode for mac是Mac OS系统以及IOS系统开发者专用于构建 Mac OS X 及 iOS 应用程序的完整工具集 - Xcode 5 的工具经过重新设计,它们的性能更优秀.使用更容易,能 ...
- android学习笔记——使用QuickContactBadge关联联系人
本文大部分内容来自<疯狂android讲义>. QuickContactBadge继承了ImageView,因此它的本质也是图片,也可以通过android:src属性指定它显示的图片.Qu ...
