DIV+CSS之页面布局、布局常用属性(浮动、清除、定位、溢出、层叠)、布局类型

1. 浮动(float)

1.1 传统网页布局的三种方式

网页布局的本质——用 CSS 来摆放盒子,即把盒子摆放到相应位置。
CSS提供了三种布局方式:普通流(标准流)、浮动、定位

1.2 标准流(普通流、文档流)

所谓的标准流: 就是标签按照规定好默认方式排列标准流是最基本的布局方式

  1. 块级元素会独占一行,从上向下顺序排列。
    常用元素:<div><hr><p><h1>~<h6><ul><ol><dl><form><table>
  2. 行内元素会按选择器 { float: 属性值; }
    照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。
    常用元素:<span><a><i><em>

1.3 浮动

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。
浮动最典型的应用:可以让多个块级元素一行内排列显示。

语法

选择器 { float: 属性值; }
属性值描述
none元素不浮动(默认
left元素向浮动
right元素向浮动

1.4 浮动特性

  1. 浮动元素会脱离标准流(脱标)
    在这里插入图片描述

  2. 浮动的多个元素会一行内显示并且元素顶部对齐

    注意: 浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子, 多出的盒子会另起一行对齐。

  3. 浮动的元素会具有行内块元素的特性,即:

    • 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
    • 浮动的盒子中间是没有缝隙的,是紧挨着一起的
    • 行内元素同理

1.5 浮动元素经常和标准流父级搭配使用

先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置. 符合网页布局第一准侧.
在这里插入图片描述

1.6 清除浮动

本质:

  • 是清除浮动元素造成的影响
  • 如果父盒子本身有高度,则不需要清除浮动
  • 清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

语法

选择器{clear:属性值;}
属性值描述
left不允许左边有浮动元素
right不允许右边有浮动元素
both同时清除两边浮动

实际工作中,几乎只用 clear:both;清除浮动的策略是: 闭合浮动.

1.7 额外标签法

也称为隔墙法,是 W3C 推荐的做法。

  • 父级添加 overflow 属性
  • 父级添加after伪元素
  • 父级添加双伪元素

额外标签法会在浮动元素末尾添加一个空的标签。例如 <div style=”clear:both”></div>,或者其他标签(如<br />等)。

  • 优点: 通俗易懂,书写方便
  • 缺点: 添加许多无意义的标签,结构化较
    注意: 要求这个新的空标签必须是块级元素

2.div+CSS进行页面布局

布局目的:为了使页面结构清晰、有条理、易读

2.1 常见的页面布局

在这里插入图片描述

2.2 如何布局

  1. 确定“版心”:就是页面主体内容所在的位置。(通常在页面中水平居中)
  2. 分析页面中的模块:最简单的页面布局,主要由头部(header)、导航(nav)、焦点图(banner)、主体内容(content)、页面底部(footer)五部分组成。(一般商业用顶部导航,左侧导航常用在后台页面管理中)
  3. 控制页面中的模块:通过盒子模型,使用DIV+CSS来进行模块的控制(通常网页由psd图构成)

2.3 页面元素的定位机制

流式布局:按照元素的类型和在HTML源文件中出现的顺序进行定位

  • 块(block):从上到下依次排列
  • 水平布局(inline):在一行中进行水平布局

浮动布局(float):当元素浮动时,它不再处于普通文档中,相当于浮在文档之上,不占据空间,但是会缩短行距,产生文字环绕效果

定位布局

  • 绝对定位(position:absolute):通过页面坐标(页面左上角)的方式来定位元素。使用绝对定位后元素不会占用普通流空间
  • 相对定位(position:relative):如果一个元素相对定位,它将以它所在的位置(即它在(普通流中的位置)为初始点,然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的初始点进行移动

注意:

  • 与定位相关的属性有left、top、right、bottom,这四个属性只有在使用定位属性(position)后才有效
  • 只能同时使用相邻的两个属性,不能同时使用相对的两个属性

3. 布局常用属性

3.1 浮动属性(float)

见上文1.3

3.2 清除属性(clear)

见上文1.6

3.3 定位属性(position)

定位模式决定元素的定位方式

语义
static静态定位/自动行为(默认)
relative相对定位(相对于元素在文档流中的位置进行定位,在普通文档流的位置已保存)
absolute绝对定位(相对于已经定义好的父元素位置进行定位,不会占用普通流空间)
fixed固定定位(相对于浏览器窗口进行定位,绝对定位的一种特殊形式,脱离文档流)

固定定位(fixed)小技巧:固定在版心右侧位置。

  1. 让固定定位的盒子 left: 50%. 走到浏览器可视区(也可以看做版心) 的一半位置。
  2. 让固定定位的盒子 margin-left: 版心宽度的一半距离。 多走 版心宽度的一半位置

就可以让固定定位的盒子贴着版心右侧对齐了。

边偏移:就是定位的盒子移动到最终位置。

边偏移属性示例描述
toptop: 80px顶部偏移量,定义元素相对于其父元素上边线的距离
bottombottom: 80px底部偏移量
leftleft: 80px左侧偏移量
rightright: 80px右侧偏移量

3.4 溢出属性(overflow)

当内容溢出元素边框的时候,内容如何处理

语义
scroll提供滚动机制(带有滚动条)
visible默认值,内容溢出到边框以外
hidden内容被修剪,溢出的部分看不见
auto如果内容被修剪,则显示器会显示滚动条,以便查看其余的内容

3.5 层叠属性(z-index)

在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用 z-index 来控制盒子的前后次序 (z轴)
语法:

选择器 { z-index: 1; }
  • 数值可以是正整数、负整数或 0, 默认是 auto,数值越大,盒子越靠上
  • 如果属性值相同,则按照书写顺序,后来居上
  • 数字后面不能加单位
  • 只有定位的盒子才有 z-index 属性

4.布局类型

4.1单列布局

网页布局的基础,所有复杂的布局都是在此基础上演变而来的。
在这里插入图片描述
例:一列固定宽度并自动居中

#layout {
		height: 100px;
		width: 1000px;
		background-color: red;
		margin: auto;
	    }

例:一列自适应宽度

#d2 {
		height: 200px;
		background-color: greenyellow;
		margin: auto;
    }

4.2 双列布局

和“一列布局”类似,只是网页内容被分为了左右两部分。
在这里插入图片描述
例:两列自适应宽度

#d1 {
		height: 350px;
		width: 120px;
		background-color: red;
		float: left;
	}
#d2 {
		height: 350px;
		width: 70%;
		background-color: blue;
		float: right;
    }

4.3 三列布局

对于一些大型网站,特别是电子商务类网站,由于内容分类较多,通常需要采用“三列布局”的页面布局方式。
在这里插入图片描述
例:三列自适应宽度居中

#d1{
    height: 200px;
    width: 300px;
    background: red;
    float: left;
}
#d2{
    height: 200px;
    width: 300px;
    background: blue;
    float: left;
}
#d3{
    height: 200px;
    width: 300px;
    background: greenyellow;
    float: left;
}

5. HTML5中的语义标签

有没有都不影响 有了之后代码的含义会更加明确

标签作用
<thead></thead>表示表格头部
<tbody></tbody>表示表格的主体
<thead></thead>表示页面的头部
<nav></nav>表示导航栏
<footer></footer>表示页面或区域的底部
<article></article>表示页面中独立的文档内容
<section></section>用于对页面内容进行分块
<aside></aside>表示页面的附属信息(定义侧边栏、广告等可以用到)

6. 命名规范

6.1 遵循规则

  • 避免使用中文命名(汉语拼音都行)
  • 不能以数字开头命名
  • 不能占用关键字
  • 用最少的字母达到理解的含义(见名知意)

6.2 两种命名方式

  • 驼峰式命名:除第一个单词之外,其他单词首字母大写
  • 帕斯卡命名:每个单词之间用"_"连接

6.3 网页模块的命名规范

相关模块:
在这里插入图片描述
CSS文件:
在这里插入图片描述

  • 14
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值