>  기사  >  웹 프론트엔드  >  css的负margin外边距功能简单介绍_html/css_WEB-ITnose

css的负margin外边距功能简单介绍_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 11:26:591032검색

css的负margin外边距功能简单介绍:
关于margin外边距可能绝对多数朋友都不陌生,它的功能就是设置元素的外边距。
代码如下:

div{  width:100px;  height:100px;  margin:10px 5px 15px 20px;}

更多基础应用可以参阅CSS的margin属性一章节。
但是与负外边距的很多功能许多人并不是太了解,下面就通过代码实例做一下简单介绍。
一.对于普通文档流的影响:
关于文档流的基本概念可以参阅什么是文档流一章节。
也就是说处于文档流的元素位置跟随文档流的变化而变化,先看一个简单的代码实例:

<!DOCTYPE html><html><head><meta charset=" utf-8"><title>无标题文档</title><style type="text/css">#antzone{  width:200px;  height:100px;  background:#ccc;}</style></head><body><div id="antzone"></div>蚂蚁部落欢迎您</body></html>

对于上面代码的表现,应该没有什么异议。下面就应用负外边距,代码实例如下:

<!DOCTYPE html><html><head><meta charset=" utf-8"><title>无标题文档</title><style type="text/css">#antzone{  width:200px;  height:100px;  background:#ccc;  margin-bottom:-20px;}</style></head><body><div id="antzone"></div>蚂蚁部落欢迎您</body></html>

大家看到上面的效果了,div元素的尺寸没有发生变化,但是文字却跑到div元素上面去了。
负外边距对于处于文档流的元素的影响是这样的,会使元素在文档流中占据的空间发生偏移,后面文档流的内容会填补发生偏移的空间,这一点和相对定位是不同的,相对定位即便是发生了偏移,但是原来的空间还是保留,所以后面的元素不会填补。上面的代码margin-bottom:-20px可以是div元素的文档流回退20px,所以文本就会填补这个回退的空间。
总结如下:在文档流中,元素的最终边界是由margin决定的,margin为负的时候就相当于元素的回退,文档流只认边界,不会管它的实际尺寸是多少。
代码实例如下:

<!DOCTYPE html><html><head><meta charset=" utf-8"><title>无标题文档</title><style type="text/css">#box{  width:200px;  background:#ccc;  overflow:hidden;}#inner{  width:80px;  height:100px;  background:red;}</style><script>window.onload=function(){  var obt=document.getElementById("bt");  var odiv=document.getElementById("inner");  obt.onclick=function(){    odiv.style.marginBottom="-20px";  }}</script></head><body><div id="box">  <div id="inner"></div></div><input type="button" id="bt" value="查看效果"/></body></html>

上面的代码中,点击按钮可以设置内部div的margin-bottom值为-20px,那么它在文档流中就回退20px,那么外层div元素高度也会减少20px。但是需要注意的是,父元素必须要有overflow:hidden,否则虽然文档流回退,父元素的高度也减小了,但是没有效果。
二.负外边距对宽度的影响:
这里就不多介绍了,具体可以参阅负外边距margin对宽度的影响一章节。
三.负外边距对浮动元素的影响:
这里就不多介绍了,具体可以参阅负外边距margin对浮动元素的影响一章节。
四.负外边距对定位元素的影响:
这里就不多介绍了,具体可以参阅负外边距margin对于定位元素的影响一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=18295

更多内容可以参阅:http://www.softwhy.com/divcss/

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.