`

盒模型相关内容总结

    博客分类:
  • css
 
阅读更多

margin padding width的值是百分数时,相对于包含块的width进行计算

height的值是百分数时,相对于包含块的height进行计算。

外边距合并

1.相邻盒子之间的margin:行内元素之间的水平margin不会合并(塌陷)

2.块级元素之间的竖直margin会合并(塌陷)。

简单地说,外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。请看下图:

当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:

 

3.嵌套盒子之间的margin(针对DIV):如果父div未设置高度、宽度,则会根据子div计算高度,而宽度则仍为整行。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<title>父子块的margin</title>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			div.father {						/* 父div */
				background-color: #fffebb;
				font-family: Arial, Helvetica, sans-serif;
				font-size: 12px;
				padding: 10px;
				border: 1px solid #000000;
				width:100%; height:auto !important;height:1%; zoom:1;
			}
			div.son {						/* 子div */
				background-color: #a2d2ff;
				margin-top: 30px;
				margin-bottom: 0px;
				padding: 15px;
				border: 1px dashed #004993;
				width: 100px;
			}
		</style>
	</head>
	<body>
		<div class="father">
			<div class="son">
				子div
			</div>
		</div>
	</body>
</html>

4.如果父div设置的高度、宽度小于子div时,IE6则仍根据子div设置高度、宽度;其他浏览器保持原来的div高度、宽度,子div溢出。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<title>设置父块的高度</title>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			div.father {						/* 父div */
				background-color: #fffebb;
				font-family: Arial, Helvetica, sans-serif;
				font-size: 12px;
				padding: 10px;
				border: 1px solid #000000;
				height: 40px;				/* 设置父div的高度 */
				width: 100px;
			}
			div.son {						/* 子div */
				background-color: #a2d2ff;
				margin-top: 30px;
				margin-bottom: 0px;
				padding: 15px;
				border: 1px dashed #004993;
				width: 100px;
			}
		</style>
	</head>
	<body>
		<div class="father">
			<div class="son">
				子div子div子div子div子div子div子div子div
			</div>
		</div>
	</body>
</html>
Firefox                                                                        IE6                                              IE7

5.IE6、IE7浏览器下margin无效的解决方法。(详细解析参考:IEbug收集   

6.div嵌套时y轴上padding和margin的问题。(详细解析参考:IEbug收集

7.怪异模式下(包括IE6、IE7的标准模式)的IE:正常;其他浏览器(标准模式下的IE8和IE9、Firefox Chrome Safari):y轴上父padding=0且border=0时,子div到父div的距离为0。(详细解析参考:IEbug收集

8.如果width为固定值,margin-left、margin-right都为auto,居中显示。

   如果width为auto,margin-left或margin-right有一个为auto,auto->0.width设置为所需的值。

   如果三者都为auto,margin-left和margin-right都为0,width设置为所需的值。

9.margin为负值时

   要记住,七个水平属性的总和要等于父元素的width.只要所有属性都大于或等于0的,元素就不会大于其父元素的内容区。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<head>
		<title>无标题文档</title>
		<style type="text/css">
			div.container{
				width:400px;
				border:3px solid black;
				margin:0 auto;
			}
			p.rightNoWidth{
				margin-right:-50px;
				width:auto;
			}
			p.leftNoWidth{
				margin-left:-50px;
				width:auto;
			}
			p.right{
				margin-right:-50px;
				width:400px;
			}
			p.left{
				margin-left:-50px;
				width:400px;
			}
			p.rightL{
				margin-left:20px;
				margin-right:-50px;
				width:auto;
			}
			p.rightLW{
				margin-left:20px;
				margin-right:-50px;
				width:400px;
			}
		</style>
	</head>
	<body>
		<div class="container"><pre>margin-right:-50px;width:auto;</pre>
			<p class="rightNoWidth">
				margin-right no Width minus test margin-right minus test a b c d e f g h i g k margin</p>
		</div>
		<div class="container"><pre>margin-left:-50px;width:auto;</pre>
			<p class="leftNoWidth">margin-left no Width minus test margin left minus test a b c d e f g h i g k</p>
		</div>
		<div class="container"><pre>margin-right:-50px;width:400px;</pre>
			<p class="right">margin-right minus test margin-right minus test a b c d e f g h i g k </p>
		</div>
		<div class="container"><pre>margin-left:-50px;width:400px;</pre>
			<p class="left">margin-left minus test margin-left minus test a b c d e f g h i g k</p>
		</div>
		<div class="container"><pre>margin-left:20px;margin-right:-50px;width:auto;</pre>
			<p class="rightL">margin-right:-50px;width:auto;</pre>margin-left minus test margin-left minus test a b c d e f g h i g k</p>
		</div>
		<div class="container"><pre>margin-left:20px;margin-right:-50px;width:400px;</pre>
			<p class="rightLW">margin-left minus test margin-left minus test a b c d e f g h i g k</p>
		</div>
	</body>
</html>

IE6

IE7

Firefox(Safari Chrome IE8) 

10.负垂直外边距:如果垂直外边距都设置为负值,浏览器会取两个外边距绝对值的最大值。

                          如果一个正外边距与一个负外边距合并,会从正外边距减去一个负外边距的绝对值。

 

11.注意:上下外边距为负时有一种“拉近”效果。
div.neg{
	margin-top: -50px;
	margin-right: 10px;
	border: 3px solid gray;
}
<div style="width: 420px;background-color: silver;padding: 10px;margin-top: 50px;border: 1px solid">
	<div class="neg"> a paragraph</div>
</div>
  
div.neg{
	margin-bottom: -30px;
	margin-right: 10px;
	border: 3px solid gray;
}
<div style="width: 420px;background-color: silver;padding: 10px;margin-top: 50px;border: 1px solid">
	<div class="neg"> a paragraph</div>
</div>
<div style="border:1px solid"> next div </div>
  

next div向上拉近了30像素。

 

12.正负外边距合并

 

li{margin-bottom:20px;background:blue}
ul{margin-bottom:-15px;}
h1{margin-top:-18px;background:yellow}

<ul>
	<li> A list item</li>
	<li> Another list item</li>
</ul>
<h1>A Heading-1</h1>

  

两个负外边距中较大的一个(-18px)增加到了最大的正外边距上(20px),这就得到了20px-18px=2px.因此,列表项内容底端与H1内容顶端之间只有2个像素的距离

 

背景设置Background

 

1.给元素设置background-color背景色时,IE6和IE7作用的区域为content+padding,而firefox则是content+padding+border.这在背景为粗虚线时表现的特明显。不要误认为差别是因为IE和Firefox设置背景的基准点不同。实际上它们都是以padding为设置背景的基准点的。以padding的左上角为基准点平铺背景图像。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
#outerBox{
	border:30px blue dashed;
	background:url("cat.jpg");
	width: 500px;
	height: 480px;
	padding:30px;
}
</style>
</head>
<body>
	<div id="outerBox">
		sss<br>
		sss<br>
		sss<br>
		sss<br>
		sss<br>
		sss<br>
	</div>
</body>

2.body是一个特殊的盒子,它的背景色会延伸到margin的部分。

 

参考文献:CSS彻底研究、精通CSS

  • 大小: 896 Bytes
  • 大小: 38.3 KB
  • 大小: 61.8 KB
  • 大小: 5.9 KB
  • 大小: 4.3 KB
  • 大小: 1.6 KB
  • 大小: 3.2 KB
  • 大小: 3.3 KB
  • 大小: 9.4 KB
  • 大小: 12.9 KB
  • 大小: 15.6 KB
  • 大小: 16.1 KB
  • 大小: 178.1 KB
  • 大小: 1.4 KB
  • 大小: 1.2 KB
  • 大小: 2.7 KB
分享到:
评论

相关推荐

    CSS(盒子模型)总结.xmind

    css盒模型难点

    IE盒子模型和标准W3C盒子模型_资料收集

    在这种模型中,元素的宽度和高度仅仅指内容区域(content)的宽度和高度。内容区域之外的部分,如内边距(padding)、边框(border)和外边距(margin),不包含在元素的宽度和高度之内。 **组成**: 1. **Content**: 内容...

    CSS盒子模型结构

    总结:深刻理解盒模型是学习 div+css 的基础,是网页布局的前提。只有牢固掌握盒子模型的结构和原理,才能在网页布局中游刃有余。 因此,在学习 div+css 时,一定要重视盒子模型的学习,掌握盒子模型的组成部分、...

    CSS盒子模型的应用

    - **盒模型在流体布局中的应用**:通过调整元素的盒子模型属性,我们可以实现响应式设计,使页面在不同屏幕尺寸下仍能保持良好的布局。 - **盒模型与浮动元素**:在使用float属性时,盒子模型可以帮助我们控制元素间...

    css盒子模型的讲解

    每个HTML元素都可以被视为一个矩形的“盒子”,而这个盒子不仅包含了元素的内容(如文本或图片),还包含了与该内容相关的填充、边框和边界空间。 **2. 盒子模型的组成** - **内容(Content)**:指元素内的实际...

    css盒子模型

    ### 总结 了解CSS中的盒子模型对于前端开发者来说至关重要,它不仅影响着页面布局的设计,还关系到如何精确控制元素的尺寸。通过选择合适的盒子模型,可以更灵活地进行页面布局,同时确保页面在不同浏览器中的一致...

    盒子模型剖析

    通过本文的学习,我们了解了盒子模型的基本概念及其组成部分,并探讨了不同类型的盒子模型以及如何解决盒模型带来的兼容性问题。理解和掌握盒子模型对于学习CSS布局至关重要,希望本文能够帮助大家打下坚实的基础。

    彻底弄懂CSS盒模型 Box Model

    总结来说,彻底理解CSS盒模型是掌握网页布局的关键。它涉及到元素内容、内填充、边框和外边距的相互作用,是构建整洁、可维护的CSS布局的基石。通过灵活运用这些概念,设计师可以创建出符合现代网页标准、适应不同...

    CSS下盒子模型定位浅析.pdf

    **总结** CSS的盒子模型定位机制是网页设计中的基石。理解盒子模型的构成、类型以及margin和padding如何影响元素位置,有助于创建出层次分明、布局合理的网页。在实际应用中,还需要掌握浮动(float)、定位(position)...

    对div盒子模型使用心得总结

    在Web开发中,盒子模型是CSS布局的基础概念之一,它定义了元素框处理元素内容(content)、内边距(padding)、边框(border)和外边距(margin)的方式。了解盒子模型对于设计出适应不同屏幕尺寸和设备的响应式网页...

    HTML5&CSS3网页制作:盒子模型概述.pptx

    总结来说,掌握HTML5的`&lt;div&gt;`标记和CSS3的盒子模型是网页制作的基本功。通过深入学习这些概念,开发者能够更好地控制网页元素的外观和位置,实现精细化的页面设计。无论是初学者还是经验丰富的开发者,都需要熟练...

    CSS第03天(盒子模型)总结.emmx

    CSS第03天(盒子模型)总结.emmx

    网页里的两种盒子模型(W3C盒子模型、IE盒子模型)

    IE盒子模型,又称怪异盒模型,是Internet Explorer早期版本(尤其是IE5和IE6)采用的模型。在这个模型中,元素的宽度(width)和高度(height)已经包含了内边距和边框,因此在计算总尺寸时,不需要额外加上这些值。这...

    第六章 盒子模型.md

    ### 第六章 盒子模型 #### 一、概念 在网页设计中,所有元素都可以被视为盒子。每个盒子由以下几个部分...以上就是关于CSS中的盒子模型的相关知识点介绍。通过这些属性的灵活运用,我们可以实现丰富多彩的布局效果。

    CSS盒子模型

    了解了以上内容,盒子模型基本就没问题了,掌握了盒子模型 CSS 也就差不多了,剩下的无非也就是将一些基本的属性合理组织,配合使用了。只要多练习想要调出美观大方的 CSS 样式不是什么难事。 三、盒子模型在布局中...

    DIV+CSS创建网页-盒子模型介绍.pptx

    总结来说,理解并熟练运用盒子模型是网页设计的基础。它允许设计师精细控制元素的外观和布局,创造出美观且功能性的网页。通过掌握这一技术,设计师可以更加灵活地实现网页的结构化和视觉效果,从而提升用户体验。...

    盒子模型PPT学习教案.pptx

    总结来说,CSS盒子模型是网页布局的基础,通过理解并熟练掌握盒子模型的各个属性,设计师可以创造出丰富多样的网页布局,提升用户体验。在实际工作中,应灵活运用这些知识,解决各种布局挑战,实现美观且功能完善的...

    CSS盒子模型PPT学习教案.pptx

    #### 十一、思考与总结 - **边框** 是可见的实体边界,而 **填充** 和 **边界** 是无形的,但它们对元素的布局起着至关重要的作用。 - 盒子模型中,颜色属性只有两种:边框颜色和背景颜色。 - 盒子模型支持三种类型...

    行内元素的盒模型1

    本文将深入探讨行内元素的盒模型,并介绍与之相关的`display`和`visibility`属性。 首先,行内元素,如`&lt;span&gt;`、`&lt;a&gt;`或`&lt;em&gt;`,具有特定的盒模型特性。行内元素不支持直接设置宽度(width)和高度(height),这...

Global site tag (gtag.js) - Google Analytics