盒子模型(CSS重点)

12 篇文章 0 订阅
12 篇文章 0 订阅

CSS学习三大重点:CSS盒子模型、浮动、定位
主体思路:
在这里插入图片描述
理解目标:

  • 能说出盒子模型有哪四部分组成
  • 能说出内边距的作用以及对盒子的影响
  • 能说出padding设置不同数值分别代表的意思
  • 能说出块级盒子居中对齐需要的2个条件
  • 能说出外边距合并的解决方法
    应用:
  • 能利用边框复合写法给元素添加边框
  • 能计算盒子的实际大小
  • 能利用盒子模型布局模块案例

看透网页布局的本质

网页布局中,我们是如何把里面的文字,图片,按照美工给我们的效果图排列的整齐有序呢?
看透网页布局的本质:

  • 首先利用CSS设置好的盒子大小,然后摆放盒子的位置
  • 最后把网页元素比如文字图片等等,放入盒子里面。
  • 以上两步就是网页布局的本质

盒子模型

所谓盒子模型:

  • 就是把HTML页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。

在这里插入图片描述
在这里插入图片描述
小结:
(1)盒子模型由元素的内容、边框(border)、内边距(padding)、和外边距(margin)组成。
(2)盒子里面的文字和图片等元素是内容区域
(3)盒子的厚度:我们称为盒子的边距
(4)盒子内容与边距的距离是内边距(类似单元格的cellpadding)
(5)盒子与盒子之间的距离是外边距(类似单元格的cellspacing)

标准盒子模型
在这里插入图片描述

盒子边框(border)

在这里插入图片描述

  • 语法:
border : border-width || border-style || border-color
属性作用
border-width定义边框粗细,单位是px
border-style边框的样式
border-color边框颜色
  • 边框的样式:

在这里插入图片描述
(1)none:没有边框即忽略所有边框的宽度(默认值)
(2)solid:边框为单实线(最为常用的)
(3)dashed:边框为虚线
(4)dotted:边框为点线

边框综合设置

border : border-width || border-style || border-color

例如:

border : 1px solid red; 无顺序要求

盒子边框写法总结表

很多情况下,我们不需要指定4个边框,我们是可以单独给4个边框分别指定的。

在这里插入图片描述

表格的细线边框

在这里插入图片描述

  • 通过表格的cellspacing=“0”,将单元格与单元格之间的距离设置为0
  • 但是两个单元格之间的边框会出现重叠,从而使边框变粗
  • 通过CSS属性:
table{border-collapse:collapse;}

collapse单词是合并的意思
boder-collapse:collapse;表示相邻边框合并在一起

内边距(padding)

在这里插入图片描述

内边距:

padding属性用于设置内边距,是指边框与内容之间的距离

设置

属性作用
padding-left左内边距
padding-right右内边距
padding-top上内边距
padding-bottom下内边距
当我们给盒子指定padding值之后,发生了2件事情:
(1)内容和边框有了距离,添加了内边距
(2)盒子会变大
注意:后面跟几个数值表示的意思是不一样的
  • 我们分开写有点麻烦,我们可以不可以简写呢?
    在这里插入图片描述

案例:新浪导航

新浪导航栏的核心就是因为里面的字数不同,所以不方便给宽度,还是给padding,让其撑开盒子。

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>新浪导航案例</title>
	<style type="text/css">
		.nav{
			height: 41px;
			background-color: #FCFCFC;
			border-top: 3px solid #FF8500;
			border-bottom: 1px solid #EDEEF0;
		}
		.nav a{
			display: inline-block;
			height: 41px;
			text-decoration: none;
			line-height: 41px;
			padding: 0 20px;
			font-size: 14px;
		}
		.nav a:hover{
			background-color: #eee;
		}
	</style>
</head>
<body>
	<div class="nav">
		<a href="">新浪</a>
		<a href="">首页</a>
		<a href="">新浪网</a>
		<a href="">关于我</a>
		<a href="">微博</a>
		<a href="">手机新浪网</a>
	</div>
</body>
</html>

内盒尺寸计算(元素实际大小)

在这里插入图片描述

  • 宽度
    Element Height = content height + padding + border (Height为内容宽度)
  • 高度
    Element Width = content width + padding + border(Width为内容宽度)
  • 盒子的实际的大小 = 内容的宽度和高度 + 内边距 + 边框

内边距产生的问题

  • 问题
    在这里插入图片描述

在这里插入图片描述
会撑大原来的盒子

  • 解决
    通过给设置了宽高的盒子,减去相应的内边距的值,维持盒子原有的大小

padding不影响盒子大小情况

如果没有给一个盒子指定宽度,此时,如果给这个盒子指定padding,则不会撑开盒子

外边距(margin)

在这里插入图片描述

外边距

margin属性用于设置外边距,margin就是控制盒子和盒子之间的距离

设置

在这里插入图片描述

块级盒子水平居中

  • 可以让一个盒子实现水平居中,需要满足以下两个条件:
    (1)必须是块级元素
    (2)盒子必须指定了宽度(width)
  • 然后就给左右的外边距都设置为auto,就可使块级元素水平居中
    实际工作中常用这种方式进行网页布局,示例代码如下:
.header{width:960px; margin:0 auto;}

常见的写法,以下三种都可以。
(1)margin-left:auto; margin-right:auto;
(2)margin:auto;
(3)margin:0 auto;

文字居中和盒子居中区别

1.文字水平居中是 text-align : center,而且还可以让行内元素和行内块居中对齐
2.块级盒子水平居中,左右margin改为auto

text-align : center;     /*文字 行内元素 行内块元素水平居中*/
margin : 10px auto;   /*块级盒子水平居中,左右margin改为auto就可以了,上下margin都可以*/

插入图片和背景图片区别

1.插入图片,我们用的最多比如产品展示类,移动位置只能靠盒模型padding,margin
2.背景图片我们一般用于小图标背景或者超大背景图片。背景图片只能通过background-position

img {
	width : 200px;
	height: 210px;
	margin-top:30px;
	margin-left: 50px;
}
div{
	width : 400px;
	height : 400px;
	border : 1px solid purple;
	background: #fff url(images/heder.jpg) no-repeat;
	background-position: 30px 50px;     /*背景图片更改位置,用background-position*/
}

清除元素的默认内外边距(重要)

在这里插入图片描述
为了更灵活方便地控制网页的元素,制作网页时,我们需要将元素的默认内外边距清除
代码:

* {
padding:0;
margin:0;
}

注意:
行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。

外边距合并

使用margin定义块元素的垂直外边距时,可能会出现外边距的合并
(1)相邻块元素垂直外边距的合并

  • 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom
  • 下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和
  • 取两个值中较大者这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)
    在这里插入图片描述
    解决方案:尽量只给一个盒子添加margin值。
    (2)嵌套块元素垂直外边距的合并(塌陷)
  • 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框
  • 父元素的上外边距会与子元素的上外边距发生合并
  • 合并后的外边距为两者中的较大者
    在这里插入图片描述
    解决方案:
    (1)可以为父元素定义上边框(border-top:1px solid transparent)
    (2)可以为父元素定义上内边距(padding-top:1px;)
    (3)可以为父元素添加overflow:hidden
    还有其他方法,比如浮动、固定、绝对定位的盒子不会有问题。

盒子模型布局稳定性

  • 学习完盒子模型,内边距和外边距,什么情况下用内边距,什么情况下用外边距?
    大部分情况下是可以混用的。就是说,你用内边距也可以,用外边距也可以,哪个方便用哪个。
    我们根据稳定性来分,建议如下:
    按照优先使用宽度(width)其次使用内边距(padding)再次外边距(margin)

width > padding > margin

  • 原因:
    (1)margin会有外边距合并,还有ie6下面margin加倍的bug,所以最后使用。
    (2)padding会影响盒子大小,需要进行加减计算(麻烦)其次使用。
    (3)width没有问题,我们经常使用宽度剩余法,高度剩余法来做。

ps基本操作以及常用快捷键

因为网页美工大部分效果图都是利用ps来做的,所以以后大部分切图工作都是在ps里面完成。

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

透明的胡萝卜_robots

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值