Web前端复习-5、CSS页面布局

在这里插入图片描述

1.盒子模型

  • 在页面布局中,为了将页面元素合理有效地组织在一起,形成一套完整的、行之有效的原则和规范,称为盒子模型

  • 页面中的所有元素都可以看成一个盒子,并占据一定的页面空间,通过盒子之间的嵌套、叠加或并列,最终形成了页面。

  • 盒子模型是由内容(content)边框(border)内边距(padding)外边距(margin) 四部分组成

在这里插入图片描述

2.内容区content

  • 内容区(content)是盒子模型的中心,包含了盒子的主要信息内容,例如文本、图片等。
  • 内容区拥有widthheightoverflow三个属性
  • overflow属性用于当content中的信息太多,并超出内容区所占的范围时,通过该属性来指定溢出内容的处理方式,具体如下表所示
    在这里插入图片描述
<style type="text/css">
     div{
         width:400px;
         height:200px;
         //当overflow属性为scroll,浏览器会添加一个滚动条
         overflow:scroll; 
     }
</style>

在这里插入图片描述

3.边框border

边框(border)是指围绕元素的内容内边距的一条或多条线,通过border-top-styleborder-right-styleborder-bottom-styleborder-left-style四个属性对“上右下左

四个方向的边框样式分别进行设置,每条边框又有宽度、颜色、样式和圆角等特征:

  • 元素的边框的样式包括宽度、样式和颜色等
  • 可以通过border-width、border-style和border-color属性对边框进行统一设置
  • 可以通过border-top-width、border-top-style和border-top-color等属性对某一条边进行设置
边框border属性列表

在这里插入图片描述

3.1 边框宽度

边框宽度border-width属性的取值范围为指定的关键字或数值,其中关键字包括thin(细边框)medium(默认值,中等边框)thick(粗边框)

边框的参数可以是1~4个

  • 当边框宽度有4个参数时,将按“上->右->下->左”的顺序作用到边框上,即遵循TRBL原则(按照Top、Right、Bottom、Left 顺时针方向依次赋值)
div { border-width:10px 20px 30px 40px; }
  • 当边框宽度有3个参数时,将按“上->左+右->下”的顺序作用到边框上
div { border-width:10px 20px 30px; }
  • 当边框宽度有2个参数时,将按“上+下->左+右”的顺序作用到边框上
div { border-width:10px 20px; }
  • 当边框宽度有1个参数时,四个方向的边框宽度取值相同
div { border-width:10px; }
  • 边框宽度的取值也可以使用关键字进行设置
div { border-width: thick/medium/thin; }
3.2 边框样式取值

在这里插入图片描述

3.3 圆角边框
  • 通过border-top-left-radius、border-top-right-radius、border-bottom-right-radius和border-bottom-left-radius属性分别对左上角、右上角、右下角、左下角的样式进行设置

  • 也可以使用border-radius属性对四个角的样式统一进行设置

  • 圆角边框的圆角是椭圆的一条弧线,如下图所示,HR代表椭圆的水平半径,VR代表椭圆的垂直半径;HR与VR相同时,圆角就会变成四分之一圆弧
    在这里插入图片描述

  • 当border-top-left-radius具有一个参数时,水平半径与垂直半径相同
    例如:border-top-left-radius:8px HR和VR均为8像素;

  • 当border-top-left-radius属性有两个参数时,第一个参数是水平半径,第二个参数是垂直半径
    例如:border-top-left-radius:8px 20px HR为8像素,VR为20像素。

  • 元素的圆角不仅可以单独设置,还可以统一设置;

  • 根据border-radius的取值情况可分以下几种情况:

    1. 水平半径与垂直半径相等
    2. 水平半径与垂直半径不相等
3.3.1 圆角边框–水平半径与垂直半径相等
  1. 水平半径与垂直半径相等

    (1)当border-radius属性只有一个参数

    	样式属性名:属性值;
    	
    	元素的top-left、top-right、bottom-right和bottom-left取值均相同
    

    (2)当border-radius属性有两个参数

    	样式属性名: 属性值1 属性值2;
    
     top-left和bottom-right相同,取值均为属性值1;
     
     top-right和bottom-left相同,取值均为属性值2。
    

    (3)当border-radius属性有三个参数

    	样式属性名: 属性值1 属性值2 属性值3;
    	
    	 top-left取值为属性值1
    	 
    	 top-right和bottom-left相同,取值均为属性值2
    	 
       	 bottom-right取值为属性值3
    

    (4)当border-radius属性有四个参数

    样式属性名: 属性值1 属性值2 属性值3 属性值4;
    
    top-left、top-right、bottom-right和bottom-left分别对应4个不同的属性值
    
    即从左上角开始按照顺时针方向依次赋值
    
  2. 水平半径与垂直半径不相等

  • 当水平半径与垂直半径不同时,需要用 斜线(/) 隔开
  • 水平半径(或垂直半径)的参数都也可以是1~4个

(1)当border-radius属性有一个水平半径和一个垂直半径时

		样式属性名: 水平值 / 垂直值
  • 斜线(/)的前后参数分别表示水平半径和垂直半径

  • 水平值用于指定元素的四个角的水平半径

  • 垂直值用于指定元素的四个角的垂直半径

      border-radius: 10px/20px;  /* 水平/垂直 */
    
border-radius:10px 20px;
border-radius:10px 20px 30px;
border-radius:10px 20px / 30px 40px;
border-radius:10px 20px 30px / 50px 60px;

在这里插入图片描述

3.4 边框阴影
  • 边框阴影(box-shadow)可以为元素的边框添加一个或多个阴影
  • box-shadow的属性可以由2~6个参数构成
box-shadow: h-shadow(水平阴影的位置)
  		  	v-shadow(垂直阴影的位置) 
  		  	[blur](模糊距离)
  		  	[spread](阴影的尺寸)
  		  	[color](阴影的颜色)
  		  	[inset];(将外部阴影 (outset) 改为内部阴影)
/* 带h-shadow和 v-shadow两个参数*/
box-shadow: 50px 50px;
/* 带h-shadow、v-shadow、blur和color四个参数*/
box-shadow: 50px 50px 5px black;
/* 带h-shadow、v-shadow、blur、spread和color五个参数*/
box-shadow: 10px 6px 10px 5px #AAAAAA;
/* 带h-shadow、v-shadow、blur、spread、color和inset六个参数*/
box-shadow: 10px 10px 50px 20px pink inset;
.imageDiv{
   width:294px;
   /* 设置内边距,具体后面进行讲解 */
   padding:10px 10px 20px 10px;
   border:1px solid #BFBFBF;
   background-color:white;
   /* 添加边框阴影box-shadow */
   box-shadow: 10px 6px 10px 5px #AAAAAA;
}

在这里插入图片描述

3.5 图像边框相关属性
  • 在CSS 3之前设计图像边框时,需要为元素的每条边提供一幅图像,每个角提供一幅图像,边框和角使用相应的图像作为背景;当元素变宽(或变长)时,边框使用对应的图片进行平铺或拉伸,而角不需要变化,这种设计方式相对比较复杂。
  • 针对这种情况,在CSS 3中新增了border-image属性,当元素的长度或宽度改变时,同样可以使用一个图像对边框进行绘制。
    在这里插入图片描述
3.5.1 边框背景的分割

border-image-slice属性在逻辑上对背景图像进行分割

border-image-slice: [ <number> | <percentage> ] {1,4} && fill?

在这里插入图片描述
其中:

  • 参数可以有1~4个,允许是数值或百分比
  • 参数遵循TRBL原则,按照顺时针方向使用指定宽度对图像进行分割,将图像分割成9部分
  • 默认情况下,元素中心区域不填充边框的图像;当提供参数fill时,元素的中心区域将被填充
border-image-slice: 10 20 30 40;
border-image-slice: 10 20 30 40 fill;
3.5.2 边框背景的使用

border-image属性用于对元素的边框进行统一设置,取值情况相对较复杂

border-image : url(图像的路径) 
               图像分割方式/图像边框宽度
               图像平铺方式

其中:

  • 图像分割方式(slice)参数个数可以是1~4个,遵循TRBL规则
  • 边框宽度(width)参数个数可以是1~4个,遵循TRBL规则
  • 图像平铺方式有平铺覆盖(repeat)、取整平铺(round)或拉伸覆盖(stretch)三种方式
//图像边框的使用
border-image:url("images/borderImage2.jpg") 40;
border-image:url("images/borderImage2.jpg") 40/40px 35px 30px 25px;
border-image:url("images/borderImage2.jpg") 40 35 30 25/40px 35px 30px 25px;
border-image:url("images/borderImage2.jpg") 40/40px repeat;
border-image:url("images/borderImage2.jpg") 40/40px round;
border-image:url("images/borderImage2.jpg") 40/40px stretch;

在这里插入图片描述
对border-image属性添加fill参数时,该div的中心区域将会被边框图像填充

border-image:url("images/borderImage2.jpg") 40 fill/40px stretch;

在这里插入图片描述

4.内边距padding

  • 内边距(padding)是指内容区与边框之间的距离
  • 通过padding-top、padding-right、padding-bottom和padding-left属性对元素的“上右下左”四个方向的内边距进行设置
  • 通过padding属性可以在一个样式声明中设置该元素的所有内边距
    在这里插入图片描述
    在这里插入图片描述
padding:10px; 
padding:10px 20px;
padding:10px 20px 30px;
padding:10px 20px 30px 40px;
/*第5个元素使用分写形式*/
padding-top:10px;
padding-right:20px;
padding-bottom:30px;
padding-left:40px;

在这里插入图片描述

5.外边距padding

外边距(margin)是指元素与元素之间的距离,即围绕在元素边框之外的空白区域,通过外边距可以为元素创建额外的“空间”

外边距与内边距相似,可以对“上下左右”四个外边距分别进行设定,也可以统一进行设定。
在这里插入图片描述
在这里插入图片描述

5.1 外边距的基本用法
/*第一幅图像*/
margin:10px 20px 30px 40px;
/*第二幅图像*/	
margin-left:10px;
/*第三幅图像*/
margin-left:15px;
margin-bottom:20px;

在这里插入图片描述

5.2 外边距合并

外边距合并(叠加)是指当两个页面流中的块级元素垂直外边距相遇时,将形成一个外边距。
合并后的外边距的高度,等于合并前的两个外边距中的较大者

  1. 上下元素间的外边距合并
    当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距将发生合并
    在这里插入图片描述
    由于外边框合并,此处代码删掉,不影响显示效果
.topDiv{
       margin-bottom:20px;
}
.bottomDiv{
      margin-top:10px;      
}

在这里插入图片描述

  1. 包含元素间的外边距合并
    一个元素包含在另一个元素中父元素没有内边距和边框,且子元素没有外边距时,父元素与子元素的上边距(或下外边距)也会发生合并。
    在这里插入图片描述

  2. 空元素的外边距合并
    空元素只包含外边距而无边框和填充时,上外边距与下外边距就会碰到了一起,元素的上下外边距也会产生合并。
    在这里插入图片描述
    当合并后的外边距再次遇到其他元素的外边距时,还会发生合并操作
    在这里插入图片描述
    外边距合并时,只有普通的页面流中块级元素垂直外边距会发生外边距的合并。
    行内元素、浮动元素和绝对定位元素之间的外边距不会进行合并。

6.DIV+CSS页面布局

  • 页面布局的核心目标是实现页面的结构与外观相分离,常见的布局方式有三种:表格布局框架布局DIV+CSS布局
  • 表格布局不足:当页面布局需要调整时,往往需要重新制作表格。而多重表格的嵌套时,由于标签的层次过深,页面不利于搜索引擎的抓取。
  • 框架布局不足:
    1. 但一个页面会依赖多个页面,不方便进行管理;
    2. 搜索引擎对框架中的内容检索时存在困难,有些搜索引擎只会检索框架集页面,导致页面检索不完整;
    3. 框架对打印支持效果不够好,只能实现分框架页面的打印;
    4. 在HTML 5中不再支持<frameset>标签。
  • DIV+CSS布局优点:可以简化页面的代码量,提高页面的浏览速度;其结构清晰,代码嵌套层次少,容易被搜索引擎检索到;页面结构与表现相分离,便于维护与扩展。
  • DIV+CSS页面布局,以下图为例,页面被分为五部分:
    1. 横幅(banner)
    2. 导航(navigator)
    3. 焦点内容(focus)
    4. 主体内容(content)
    5. 版权(footer)
      在这里插入图片描述

总结

  • 盒子模型是由border(边框)、margin(外边距)、padding(内边距)、content(内容)
  • 内容区(content)是盒子模型的中心,也是盒子模型必不可缺少的部分
  • 元素的边框(border)就是围绕元素内容和内边距的一条或多条线
  • 边框圆角由两个圆弧共同构成,HR代表圆角的水平半径VR代表圆角的垂直半径
  • 内边距(padding)是指内容区与边框之间的距离,可以对“上右下左”四个方向的进行设置
  • 外边距(margin)是指元素与元素之间的距离
  • 外边距合并(叠加)是指当两个垂直外边距块级元素)相遇时,将形成一个外边距
  • DIV+CSS布局
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值