一个盒子我们会分为几个部分:

内容区:content

内边距:padding

边框:border

外边距:margin

盒子占用空间的大小

可见尺寸=指定宽高+边框宽度+内边距宽度+外边距宽度

盒子的内边距特性:

元素的背景颜色会延伸到内边距

<style>
.box1{
width: 200px;
height: 200px;
background-color:Blue;
border:10px solid red;

padding:0px 10px 20px 30px;
}

.box2{
width:100%;
height:100%;
background-color:#FFFF00;
}
</style>


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

盒子的外边距特性

盒子的左和上 外边距会影响自己的位置,盒子的右和下外边距会影响其他盒子的位置

<style>
.box1{
width: 200px;
height: 200px;
background-color:yellow
;
margin:10px 50px 100px 200px;
}

.box2{
height:200px;width: 200px;
background-color:red;
}
</style>


<div class="box1">盒子的左和上 外边距会影响自己的位置,盒子的右和下外边距会影响其他盒子的位置</div>
<div class="box2"></div>

外边距垂直方向重叠问题

在网页中垂直方向的相邻外边距会发生外边距的重叠

所谓的外边距重叠指兄弟元素之间的相邻外边距会取最大值而不是取和


<style>
.box1,.box2{
width: 200px;
height: 200px;

}

.box1{
background-color:yellow;
margin-bottom:200px;
}
.box2{
background-color:red;
margin-top:200px;
}
</style>
<div class="box1"></div>
<div class="box2"></div>

注意:

如果父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素

例如:要求:子元素向下移动100个像素,父元素不动

<style>
.box1{
width: 400px;
height: 400px;
background-color:yellow;
/*解决方法一:border:1px solid Black;*/
/*解决方法二: padding:1px;*/
}
.zi{
width: 200px;
height: 200px;
background-color:red;
margin-top:100px;
}
</style>
<!--
因为父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素,所以父元素也下来了
-->
<div class="box1">
	<div class="zi">
	</div>
</div>

解决方法1:不让他们相邻.给(box1)父元素加一个边框:  border:1px solid Black;

解决方法2:不让他们相邻,给(box1)父元素加一个内边距: padding:1px;

解决方法3:给父元素 上内边距 设置为100  高度减去100

解决方法4:用一个空的<table>标签将他们隔开(div没用,只能用table)

以上四种方式都不是最好的解决方式

最终解决方法:

.clearfix:before,
.clearfix:after{
content:"";
display:table;
clear:both;
}
/*
把 clearfix加到父元素的 class里
既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠
*/


内联元素的特性

内联元素不能设置宽高

内联元素可以设置水平方向的内边距、和边框(会正常影响左右的布局)

内联元素可以设置垂直方向的内边距、和边框(但是不会影响页面的布局)

内联元素可以设置水平方向的外边距(水平相邻的外边距不会重叠,会累加)

内联元素不支持垂直方向的外边距

文档流:

(div,H,P等)块元素特性::主要用来做页面布局

在文档流里独占一行(无论宽度设置的多窄,它也会独占一行)

在文档流里默认宽度的值是auto(父元素的100%),默认高度被文档撑开.

在文档流里当宽度为auto时,指定内边距不会影响可见框的大小,而是自动修改宽度,易适应内边距

(span,a,iframe等)行内元素(内联元素)特性:主要用来选择文本来设置样式

只会占用自身的大小,不会占用一整行

相关推荐

html 弹出对话 div模拟对话小窗口原生js代码 弹出窗口

关键是还可以拖动 查看演示代码1(最简单的拖动原理):<div id='box' style="position:absolute;width:100px;height

div里面的img图片下方有空白的空隙

原因:图片的display属性默认是inline,而这个属性的vertical-align的默认值是baseline。所以就会出现片底部出现一个小留白区域。解决方法:给图片加属性:vertical-a

360安全浏览器 一打开网页。总是同时打开两个网页,其中一个是360导航

为什么 只要我从QQ上点击网址,就会同时打开两个网页?其中一个跳转到 这个360导航我特么不用不行吗?非得给我强制弹出来又去360论坛发牢骚了,官方回复:推荐大家去下载个 百分浏览器 超级好用! 自从

js判断网页时间,判断纯静态和伪静态网页

删除浏览器上的网址javascript:alert(document.lastModified)复制以上代码.到浏览器.回车键!即可查看网页真实时间.如果一直变化的:伪静态如果不变的:纯静态

刷新网页时,提示:您所查找的网页要使用已输入的信息。返回此可能需要重复已进行的所有操作。是否要继续操作?

在网页中有form表单的时候,只要网页刷新,就会提示您所查找的网页要使用已输入的信息。返回此页可能需要重复已进行的所有操作。是否要继续操作?的确认重新提交表单的提示这个提示只有在你提交过后才会提示如果

编程字体推荐 与 html常用标签、包含关系、常用术语,以及网页设计中的字体分类

编程比较舒适的等宽字体: 1.DejaVu Sans Mono 2.Consolas字体的分类:serif (衬线字体){在笔画上面有些特殊的修饰效果}sans-serif (非衬线字体){横平竖

网页中随机插入Ascii码,乱码伪原创工具

内容随机插入AScii码进行正文内容伪原创你是否也经常看到一些很牛X高手的网站源码中,有一些很奇怪的字符?为什么源码中明明有这些字符,但是网页上肉眼看到的却是正常的内容?加入这些字符的目的是什么?实际

电脑浏览器网页定时自动刷新,如何实现一直刷新插件

分别说一下浏览器的自动刷新 和网页代码的自动刷新方法吧:第一种:浏览器设置自动刷新方法:(这里我使用的是360浏览器)点击扩展中心,在上面搜索【刷新】关键词搜索后出现几个自动刷新的插件。安装即可每个人

php错误500:网页无法正常运作,目前无法处理此请求 HTTP ERROR 500

处理大数据的时候.最好加上set_time_limit(0);//设置网页超时时间无限制 ini_set('memory_limit', '-1');//设置内存无限

POLO360经典网页练习素材下载

网址:http://qingzhouquanzi.com/html-POLO360/index.html素材下载:链接: https://pan.baidu.com/s/1nLck11rJJvxG4q