css篇——margin

27 篇文章 0 订阅
订阅专栏
5 篇文章 0 订阅
订阅专栏

最近比较浮躁,需要沉淀一下。貌似还没认真写一篇博客,都是作为备忘录用,年末正好有点时间,借这个时间来整理整理。内容网上都有,做个记录和梳理。

margin是什么

margin,外边距,即模块与模块之间的距离。分两种:

一种父元素与子元素(或者可以说元素和它的内容):

此时这个的M就是父元素和子元素之间的margin距离。但是,这种情况下如果父元素没有写border或者padding属性,则会产生一个垂直外边距合并问题,这个问题后面说。

二种元素与元素:

m代表A模块和B模块之间的margin距离。模块与模块之间margin可以随便用,但是如果margin参数包含负数和模块是块级元素还是内联元素又会有一点不同,同样后面说。

margin怎么用

margin: 10px 10px 10px 10px;//上、右、下、左。怎么记好记,就是以y轴正方向开始顺时针一周。margin参数不定,还有以下几种:

margin: 10px;                                        //上10px、右10px、下10px、左10px

margin: 10px 20px;                              //上10px、右20px、下10px、左20px

margin: 10px 20px 30px;                     //上10px、右20px、下30px、左20px

margin:10px 20px 30px 40px;            //上10px、右20px、下30px、左40px

这里需要强调一点的就是,参数没满四个,不代表没写的部分参数是0,没写的部分,下和上的参数一样,左和右的参数一样。

margin如果不想省略写,四个方向上右下左分别为margin-top,margin-right,margin-bottom,margin-left

垂直外边距合并问题

什么是垂直外边距合并问题,就是子元素的外边距和父元素的外边距相遇后它会合并为两个中最大的那个外边距,这里的元素不包括非置换内联元素。如下面例子:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.test {
width: 100px;
height: 50px;
background: yellow;
}
.test01 {
width: 200px;
height: 100px;
background: blue;
margin-top: 20px;
}
.test02 {
background: green;
width: 100px;
height: 50px;
margin-top: 50px;
}
</style>
</head>
<body>
<div class="test">test</div>
<div class="test01">
	<div class="test02">test02</div>
</div>
</body>
</html>

我本来只是想test02(绿色)距离test01(蓝色)顶部50px,test01(蓝色)距离test(黄色) 20px,结果test01(蓝色)整体距离test(黄色) 50px,test01(拦你色)和test02(绿色)都有一个外边距,取他们中大的那个,最后整体距离test(黄色) 50px,这就是垂直外边距合并,margin-top会向上一直寻找有效的border或者padding,所以我们只要给test添加个padding-top或者border-top就可以了,这样虽然解决了这个问题,但是界面都是设计好的,你现在给页面上多加了根线,肯定是不行的,所以最好的就是将margin换成padding。

什么时候用margin和padding

由垂直外边距问题我们可以总结一个大致的方法:

元素与元素需要隔开的时候用margin

元素与内容需要隔开的时候用padding

margin包含负参数

margin中的参数可以为负数,margin-top和margin-left以父元素为参考点,将自身元素向上和向左移动,margin-right和margin-bottom是以自己为参考点,让相邻元素向它移动。比如:

margin-top和margin-left好理解

margin-top: -10px;//即向上移动10px

margin-left: -20px;//即向左移动20px;

margin-right和margin-bottom,我用实例来讲,先讲margin-bottom

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	.test {
		width: 100px;
		height: 50px;
		background: yellow;
		margin-bottom: -30px;
	}
	.test01 {
		width: 200px;
		height: 100px;
		background: blue;
	}
	.test02 {
		background: green;
		width: 100px;
		height: 50px;
	}
	</style>
</head>
<body>
	<div class="test">test</div>
 	<div class="test01">
 		<div class="test02">test02</div>
 	</div>
</body>
</html>
我在test模块添加了个margin-bottom,就使结果由前一张图变成了后一张图

————》

从上面两个图片可以很清楚的看到,test模块里的margin-bottom:-30px;将test01(蓝色)模块向上面移动了30px

margin-right与margin-bottom同理

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	.test01 {
		width: 100px;
		height: 50px;
		background: yellow;
		float: left;
		margin-right: -50px;
	}
	.test02 {
		background: green;
		width: 100px;
		height: 50px;
		float: left;
	}
	</style>
</head>
<body>
	<div class="test01">test01</div>
 	<div class="test02">test02</div>
</body>

————》

test01模块里的margin-right:-50px;让test02模块向左移动了50px;

margin在块级元素和内联元素中的区别

margin不管是在块级元素、内联元素还是置换元素里都是可以用的,只是在内联元素中margin-top和margin-bottom不起作用,

margin常见bug

IE6双边距bug:这个bug很常见,如果经常做需要适配IE6的网页,应该都遇到过

现在这没有IE6浏览器,就不做实例了,大致说说

什么是双边距,就是一个块元素浮动的方向与外边距方向一样的的时候,会产生双倍的外边距,但多个浮动元素的时候,只有靠近浮动方向最近的一个元素会产生这现象,比如:

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	.test01 {
		width: 100px;
		height: 50px;
		background: yellow;
		float: left;
		margin-left: 20px;
	}
	.test02 {
		background: green;
		width: 100px;
		height: 50px;
		float: left;
	}
	</style>
</head>
<body>
	<div class="test01">test01</div>
 	<div class="test02">test02</div>
</body>
上面test01设置了浮动float:left;和左外边距margin-left:20px; 此时test01模块在IE6浏览器中就会距离左边40px,解决的方法有两个:

1,给IE6写一个hack,其值是正常值的一半,_margin-left: 10px; 不推荐

2,给tst01模块添加display:inline;

为什么display:inline;就可以解决了呢?产生这个bug的条件是块元素和浮动的方向要和外边距的方向一致两个条件,而display:inline;和display:inline-block;不存在外边距问题,而且float会将display:inline;变成display:inline-block;所以它还是可以设置宽高的。

margin: 0px auto在低版本IE上不能居中问题

我们一半将div居中使用的是margin: 0px auto;这在大多数浏览器上都是支持的,但是在低版本IE下却不能支持。

处理办法:

body {text-align: center;}

div {margin:0px auto;}

注意:如果设置了div向左向右浮动,再设置margin:0px auto;居中,也是不能居中的。




网页CSS样式——详述margin样式属性
CandidBoy的博客
05-20 2064
一、margin样式属性作用 用于在一个声明设置所有外边距的宽度,或者设置各边上外边距的宽度。该属性有多个值。 二、margin样式属性值介绍 1、atuo 浏览器计算外边距 2、length 浏规定以具体单位计的外边距值,比如像素、厘米等。默认值是0px。注:允许使用负值,不过要谨慎使用 3、% 规定基于父元素的宽度的百分比的外边距 4、inherit 规定应该从父元素继承外...
CSSmargin属性详解
热门推荐
qq_40208605的博客
06-15 3万+
margin属性概述marginCSS层叠样式表用来规定围绕在元素边框周围空白区域范围的属性.该接受任何长度单位,可以是像素、英寸、毫米或 em。相关属性margin 可以单独改变元素的上,下,左,右边距。也可以一次改变所有的属性。属性描述margin简写属性。在一个声明设置所有外边距属性。margin-bottom设置元素的下外边距。margin-left设置元素的左外边距。margin-...
CSS布局/定位
最新发布
xxxxtrend的博客
07-16 918
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。任何一个容器都可以指定为Flex布局,设置为Flex布局后,子元素的float,clear和vertical-align属性将消失。3.flex-flow ==> flex-direction 和 flex-wrap 属性的简写。项目的 flex-shrink 属性为0,其他项目都为1,则空间不足时,前者不缩小。4.flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间。
CSS margin的含义
迷途工作室
03-03 2517
margin为边距的意思,然而边距是要有参照物的,也就是谁的边距谁多远,可以用下面的图简明的表示出来:回 哈哈,上面是一个字啊,没办法,CSDN blog画不了图也贴不了图,只能用“回字”表示了,就是两个矩形,外面大矩形套里面小矩形,假设两个矩形分别叫A和B,A包含BB的margin就是B的四条边到A的四条边的距离,也就是有四个marginmargin-top,margin-righ
margin在布局的运用(*****************************************************************)...
weixin_34242331的博客
11-21 470
一、左右栏宽度固定,间栏宽度自适应 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head lang="en"&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;左右栏宽度固定,间栏宽度自适应&lt;/title&gt; &lt;style&gt;
CSS样式设置margin设置
茂茂的博客
01-26 1315
CSS样式设置margin设置 正在学习大前端,有代码和思路不规范不正确的地方往多多包涵,感谢指教! 首先是margin4个值的意思 从左到右的数值代表的是: 上外边距是 10px 右外边距是 5px 下外边距是 15px 左外边距是 20px <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>
我的css框架——base.css(重设浏览器默认样式)
09-22
details, figcaption, figure, footer, header, hgroup, menu, nav, section`,将所有这些元素的`margin`和`padding`设置为0,消除元素间的间距问题。 3. 为`body, button, input, select, textarea`设置字体大小和...
学生网页设计作业源码(HTML+CSS)——海贼王6页代码质量好
08-10
margin: 0; padding: 0; overflow: hidden; background-color: #333; } #menu li { float: left; } #menu li a { display: block; color: white; text-align: center; padding: 14px 16px; text-...
DIV+CSS教程——第六天html列表.pdf
10-05
- 为了使列表看起来整洁,可能还需要调整`<li>`元素的`margin`和`padding`,以及图片和文字的相对位置。 4. **浮动后父容器高度自适应(清除浮动)** - 当列表项浮动时,它们的父元素可能不会自动扩展以包含这些...
深入理解CSSmargin
qq_37555524的博客
09-11 957
1.css margin可以改变容器的尺寸   元素尺寸   可视尺寸--标准盒子模型盒子的宽度是不包括margin值的,clientWidth   占据尺寸--包括margin的宽度 outWid...
cssmargin
u011337574的专栏
06-01 392
cssmargin的设置
流畅易懂CSS教程·margin
HELLO_E_SIR的博客
07-19 2364
margin,外边距,指本元素边框向外的距离。而在实际使用,可以朝四个方向设置外边距,如下所示。也许有的小伙伴已经在开发使用过,觉得简单,不就是设置与其他元素的距离而已嘛,有什么难的?我起初也这么认为,但是在深入学习后,发现margin在不同情况下,会采取不同的机制,这也会对我们未来的开发有着很重要的影响。话不多说,我们直接从实际使用去探讨该属性的使用。
css【详解】外边距 margin(含margin百分比值,margin负值,margin合并,margin:auto,margin失效)
朝阳39的博客
03-23 3737
目录 margin合并的场景 1. 相邻兄弟元素margin合并 2.父级和第一个/最后一个子元素 阻止margin-top合并的方法 阻止margin-bottom合并的方法 3.空块级元素的margin合并 阻止空div元素的margin合并 margin合并的计算规则 margin合并的重要意义 margin:auto的填充规则 margin失效的场景 margin属性的值为百分比值时,无论是水平方向还是垂直方向,都是相对宽度计算的 margin合并的场景 ...
CSS学习13:外边距(margin
玉安_ZhangDe的博客
03-25 1032
语法: 合写属性: 值的个数 表达意思 margin:5px; 1个值,代表上右下左都有5个像素的外边距 margin:5px 10px; 2个值,代表上下外边距5个像素,左右外边距像素是10个像素 margin:5px 10px 20px; 3个值,代表上外边距5像素,左右外边距10像素,下外边距20像素 margin:5px 10px 20px 30px; 4个值,代表上外边距5像素,右外边距10像素,下外边距20像素,左外边距是30像素 分写属性:
CSS 学习 -- margin
qq_45050686的博客
07-11 1097
margin
CSS基础:margin属性4种值类型,4个写法规则详解
u013179804的博客
04-15 4153
你好,我是云桃桃。一个希望帮助更多朋友快速入门 WEB 前端的程序媛。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集268原创内容-gz.h后台回复“”可获取开发工具,持续更新后台回复“”可得到前端基础100题汇总,持续更新
CSS 外边距属性 ( Margin )】
Hey_Coder
12-05 2350
⑴ **设置 元素的外边距**: `margin` - 属性设置 元素的所有四个边外部的 外边距区域。 - ① **简写属性**: 在一个声明,一次性设置 所有外边距属性,是以下子属性的简写。 - (子属性 和 初始值都为 `0`) - ❶ **上外边距**: `margin-top: 0` - ❷ **右外边距**: `margin-right: 0` - ❸ **下外边距**: `margin-bottom: 0` - ❹
CSS margin 与 padding法含义
chinaycheng的专栏
09-18 785
margin和padding用法理解和实例
css margin 参数
03-31
CSS margin 属性用于设置元素的外边距。 语法: ```css margin: length|initial|inherit; ``` 参数: - length:可以是一个长度值,如 px、em、rem 等,也可以是百分比值。 - initial:将该属性设置为它的默认值。 - inherit:继承父元素的 margin 值。 margin 属性有四个方向的值:上、右、下、左,分别用上述参数设置。 例如: ```css margin-top: 10px; /* 上边距为 10 像素 */ margin-right: 20px; /* 右边距为 20 像素 */ margin-bottom: 30px; /* 下边距为 30 像素 */ margin-left: 40px; /* 左边距为 40 像素 */ ``` 也可以使用简写属性,将四个方向的值用空格分隔开来,分别对应上、右、下、左: ```css margin: 10px 20px 30px 40px; /* 上、右、下、左的值依次为 10px、20px、30px、40px */ ``` 如果只设置了两个值,分别对应上下和左右: ```css margin: 10px 20px; /* 上下的值为 10px,左右的值为 20px */ ``` 如果只设置了一个值,则表示四个方向都是这个值: ```css margin: 10px; /* 四个方向的值都为 10px */ ```
写文章

热门文章

  • html5篇——新增表单元素和表单属性 22312
  • CSS篇——如何利用css让元素到另一个元素的后面 14181
  • CSS3篇--rotate/translate等导致字体模糊 10221
  • 网页中引用svg图片的一种方式 9570
  • java篇——java导出pdf文件 7221

分类专栏

  • 前端开发 27篇
  • 其他 2篇
  • 备忘篇 12篇
  • CSS篇 5篇
  • java篇 1篇
  • css3篇 2篇
  • html5 4篇
  • JS篇 5篇

最新评论

  • 网页中引用svg图片的一种方式

    前端攻城狮路飞: 这是啥

  • CSS3篇--rotate/translate等导致字体模糊

    前端幼儿班小朋友: 解决了,谢谢表情包

  • ant design 表格扩展去掉+号

    W_hale: 太帅了 感谢

  • 谷歌浏览器慎用有道词典插件(<audio></audio>)

    三载星霜,破开佛晓: 请问该怎么处理?

  • 谷歌浏览器慎用有道词典插件(<audio></audio>)

    liuhenghui5201: 无意看到这个确实有点怕怕。。。算了,还是不安装了

最新文章

  • window.open预览图片和pdf
  • 在线联系,弹出qq交谈框
  • 80端口未被占用,却依然提示已被占用
2022年1篇
2020年2篇
2019年2篇
2018年2篇
2017年3篇
2016年14篇
2015年5篇
2014年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家新乡镂空校园玻璃钢景观雕塑湛江玻璃钢雕塑制品宜昌校园玻璃钢雕塑公司呼和浩特商场室外美陈制作长治玻璃钢景观雕塑安宁玻璃钢雕塑设计与制作哪家好玻璃钢雕塑的摆放原则从化情景玻璃钢人物雕塑一键成交福建玻璃钢海豚雕塑玻璃钢婚庆雕塑包柱子季节性商场美陈有哪些呈贡玻璃钢雕塑加工厂家哪家专业螃蟹玻璃钢卡通雕塑现货商场美陈研发公司北京浮雕玻璃钢雕塑厂家临沂动物玻璃钢雕塑价格广东创意玻璃钢雕塑玻璃钢造型雕塑企业山东景区玻璃钢雕塑公司阜阳户内玻璃钢雕塑原阳玻璃钢雕塑凉山玻璃钢动物雕塑山西抽象玻璃钢雕塑生产厂家定制玻璃钢创意雕塑温州遵义玻璃钢人物雕塑嘉兴玻璃钢动物雕塑河北彩绘玻璃钢雕塑陕西景观玻璃钢雕塑多少钱玻璃钢雕塑上色技巧咸阳玻璃钢牌匾雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化