Cristiano前端学习之CSS页面布局

一、学习路线
在这里插入图片描述
二、盒子模型

  • 在页面布局中,为了将页面元素合理有效地组织在一起,形成一套完整的、行之有效的原则和规范,称为盒子模型。
  • 页面中的所有元素都可以看成一个盒子,并占据一定的页面空间,通过盒子之间的嵌套、叠加或并列,最终形成了页面。
  • 盒子模型是由内容(content)、边框(border)、内边距(padding)和外边距(margin)四部分组成。
  • 盒子的实际宽度(高度)是由content、padding、border、margin共同组成的
    在这里插入图片描述
    三、内容区content
  • 内容区(content)是盒子模型的中心,包含了盒子的主要信息内容,例如文本、图片等。内容区拥有width、height和overflow三个属性
    • 其中:overflow属性用于当content中的信息太多,并超出内容区所占的范围时,通过该属性来指定溢出内容的处理方式,具体如下表所示。
      在这里插入图片描述

四、边框区border

  • 边框(border)是指围绕元素的内容和内边距的一条或多条线,通过border-top-style、border-right-style、border-bottom-style和border-left-style四个属性对“上右下左”四个方向的边框样式分别进行设置,每条边框又有宽度、颜色、样式和圆角等特征:
  • 元素的边框的样式包括宽度、样式和颜色等
  • 可以通过border-width、border-style和border-color属性对边框进行统一设置
  • 可以通过border-top-width、border-top-style和border-top-color等属性对某一条边进行设置
    在这里插入图片描述
  • 4.1 边框宽度
    • 边框宽度border-width的取值范围为指定的关键字或数值,其中关键字包括thin(细边框)、medium(默认值,中等边框)、thick(粗边框)。
    • 边框的参数可以是1~4个,当边框宽度有4个参数时,将按“上->右->下->左”的顺序作用到边框上,即遵循TRBL原则(按照Top、Right、Bottom、Left 顺时针方向依次赋值)
    • 当边框宽度有3个参数时,将按“上->左+右->下”的顺序作用到边框上
    • 当边框宽度有2个参数时,将按“上+下->左+右”的顺序作用到边框上
    • 当边框宽度有1个参数时,四个方向的边框宽度取值相同
    • 边框宽度的取值也可以使用关键字进行设置
  • 4.2 边框样式取值
    在这里插入图片描述
  • 4.3 圆角边框
    • 通过border-top-left-radius、border-top-right-radius、border-bottom-right-radius和border-bottom-left-radius属性分别对左上角、右上角、右下角、左下角的样式进行设置
    • 也可以使用border-radius属性对四个角的样式统一进行设置。
    • 当border-top-left-radius具有一个参数时,水平半径与垂直半径相同
    • 当border-top-left-radius属性有两个参数时,第一个参数是水平半径,第二个参数是垂直半径
    • 元素的圆角不仅可以单独设置,还可以统一设置;
    • 根据border-radius的取值情况可分以下几种情况:
      1. 水平半径与垂直半径相等
      2. 水平半径与垂直半径不相等
    • 4.3.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个不同的属性值,即从左上角开始按照顺时针方向依次赋值
    • 4.3.2 圆角边框–水平半径与垂直半径不相等
      • 当水平半径与垂直半径不同时,需要用斜线(/)隔开
      • 水平半径(或垂直半径)的参数都也可以是1~4个
        • (1)当border-radius属性有一个水平半径和一个垂直半径时,如:样式属性名: 水平值 / 垂直值
          1. 斜线(/)的前后参数分别表示水平半径和垂直半径
          2. 水平值用于指定元素的四个角的水平半径
          3. 垂直值用于指定元素的四个角的垂直半径
        • (2)当border-radius属性有两个水平半径和两个垂直半径时,如:样式属性名: 水平值1 水平值2 / 垂直值1 垂直值2
          1. 斜线(/)的前后参数分别表示水平半径和垂直半径
          2. top-left和bottom-right的水平半径采用水平值1,垂直半径采用垂直值1
          3. top-right和bottom-left的水平半径采用水平值2,垂直半径采用垂直值2
        • (3)当border-radius属性有三个水平半径和两个垂直半径时,如:样式属性名: 水平值1 水平值2 水平值3/ 垂直值1 垂直值2
          1. 斜线(/)的前后参数分别表示水平半径和垂直半径
          2. top-left的水平半径采用水平值1
          3. top-right和bottom-left的水平班级采用水平值2
          4. bottom-right的水平半径采用水平值3
          5. top-left和bottom-right的垂直半径采用垂直值1
          6. top-right和bottom-left的垂直半径采用垂直值2
  • 4.4 边框阴影
    • 边框阴影(box-shadow)可以为元素的边框添加一个或多个阴影
    • box-shadow的属性可以由2~6个参数构成
    • box-shadow: h-shadow v-shadow [blur] [spread] [color] [inset];
    • h-shadow用于指定水平阴影的位置,该值允许取负值
    • v-shadow用于指定垂直阴影的位置,该值允许取负值
    • blur用于指定模糊距离
    • spread用于指定阴影的尺寸
    • color用于指定阴影的颜色
    • inser用于将外部阴影改为内部阴影
  • 4.5 图像边框
    在这里插入图片描述

五、内边距padding

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

六、外边距margin

  • 外边距(margin)是指元素与元素之间的距离,即围绕在元素边框之外的空白区域,通过外边距可以为元素创建额外的“空间”。
  • 外边距与内边距相似,可以对“上下左右”四个外边距分别进行设定,也可以统一进行设定。
    在这里插入图片描述
  • 外边距合并:外边距合并(叠加)是指当两个垂直外边距相遇时,将形成一个外边距。
    合并后的外边距的高度,等于合并前的两个外边距中的较大者。
  • 外边距合并时,只有普通的页面流中块级元素的垂直外边距会发生外边距的合并。
    行内元素、浮动元素和绝对定位元素之间的外边距不会进行合并。
    1. 上下元素间的外边距合并
      当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距将发生合并
      在这里插入图片描述
    2. 包含元素间的外边距合并
      当一个元素包含在另一个元素中,父元素没有内边距和边框,且子元素没有外边距时,父元素与子元素的上边距(或下外边距)也会发生合并。
      在这里插入图片描述
    3. 空元素的外边距合并
      空元素只包含外边距而无边框和填充时,上外边距与下外边距就会碰到了一起,元素的上下外边距也会产生合并。
      在这里插入图片描述
      当合并后的外边距再次遇到其他元素的外边距时,还会发生合并操作
      在这里插入图片描述

七、DIV+CSS布局

  • 一个标准的Web页面是由结构、外观和行为三部分组成。其中,页面结构用于对页面的信息进行整理与分类,涉及HTML、XHTML等;页面外观是对结构化的内容进行修饰,涉及CSS样式;页面行为是指与页面元素进行的交互操作,设计JS、JQuery等
  • 页面布局的核心目标是实现页面的结构与外观相分离,常见的布局方式有三种:表格布局、框架布局和DIV+CSS布局。
  • 表格布局不足:当页面布局需要调整时,往往需要重新制作表格。而多重表格的嵌套时,由于标签的层次过深,页面不利于搜索引擎的抓取。
  • 框架布局不足:
    • 但一个页面会依赖多个页面,不方便进行管理;
    • 搜索引擎对框架中的内容检索时存在困难,有些搜索引擎只会检索框架集页面,导致页面检索不完整;
    • 框架对打印支持效果不够好,只能实现分框架页面的打印;
    • 在HTML 5中不再支持<frameset>标签
  • DIV+CSS布局优点:可以简化页面的代码量,提高页面的浏览速度;其结构清晰,代码嵌套层次少,容易被搜索引擎检索到;页面结构与表现相分离,便于维护与扩展。

猜你喜欢

转载自blog.csdn.net/Cristiano_san/article/details/115460894