DIV+CSS布局:网页html通过DIV标签+CSS样式表代码开发制作的(html)网页的统称
目的:使页面结构清晰、有条理、易读
思想:
过程:
1.流式布局:按照元素的类型和HTML源文件出现的顺序进行定位
文档流(标准流、普通流):浏览器根据元素在html文档中出现的顺序,从左向右,从上到下依次排列
2.浮动布局(float):当元素浮动时,不再处于普通文档中,不占据空间,但是会缩短行宽,产生文字环绕的效果
典型应用:多个块级元素一行内排列显示
网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动
注意:
3.定位布局(position):
组成:定位模式+边偏移
定位模式:用于指定一个元素在文档的定位方式
边偏移:决定了该元素最终位置
注意:
子绝父相:
总结:相对定位经常用来作为绝对定位的父级
选择器{
float:属性值;
}
属性值 | 描述 |
---|---|
left | 向左浮动 |
right | 向右浮动 |
none | 不浮动(默认值) |
由于浮动元素不再占用原文档流中的位置,所以会对页面中其他元素的排版产生影响,如果要避免这种影响,就需要对元素清除浮动。
清除浮动原因: ①父级没高度 ②子盒子浮动 ③影响下面布局,清除浮动
清除浮动策略: 让浮动只在父盒子内部影响,不影响父盒子外的其他盒子
选择器{
clear:属性值;
}
属性值 | 描述 |
---|---|
left | 清除左浮动影响 |
right | 清除右浮动 |
both | 同时清除左右两侧浮动影响(常用) |
清除浮动方法(4种):
.clearfix:after{
content:"";
disply:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix{
/* IE6、7专有*/
*zoom:1;
}
clearfix:before,.clearfix:after{
content:"";
display:table;
}
.clearfix:after{
clear:both;
}
.clearfix{
*zoom:1;
}
浮动布局虽然灵活,但是却无法对元素的位置进行精确的控制。在CSS中,通过定位属性可以实现网页中元素的精确定位。
选择器{
position:属性值;
}
属性值 | 描述 |
---|---|
static | 自动定位(默认) |
relative | 相对定位 相对于元素在文档流中的位置进行定位 会保存 |
absolute | 绝对定位 相对于已经定义好的父元素位置进行定位(脱离文档流)不会保存 |
fixed | 固定定位 相对于浏览器窗口进行定位 (脱离文档流)跟父元素无关,不随滚动条滚动 |
sticky | 粘性定位 以浏览器可视窗口为参照,占有原先位置,必须添加top(left、right、bottom)才有效 |
注意:absolute和relative的区别
定位的拓展:
1、固定定位盒子在版心右侧位置:
2、绝对定位盒子居中:
加了绝对定位盒子不能通过margin:0 auto水平居中
(垂直居中同理)
3、脱标的盒子不会触发外边距塌陷:
浮动元素、绝对定位(固定定位)元素都不会触发外边距合并问题
4、绝对定位(固定)会压住盒子:
5、定位特殊性:
绝对定位和固定定位和浮动类似
偏移量:精确定位元素的位置,取值是数值或百分比
属性值 | 描述 |
---|---|
top | 顶端偏移量,相对于父元素上边线距离 |
right | 右侧偏移量 |
left | 左侧偏移量 |
bottom | 底部偏移量 |
用于指定当CSS内容溢出元素框时发生的情况。
选择器{
overflow:属性值;
}
属性值 | 描述 |
---|---|
visible | 内容溢出边框以外(默认值) |
scroll | 提供滚动机制(带有滚动条) |
hidden | 内容被修剪,溢出部分被隐藏 |
auto | 如果内容被修剪,则显示器会显示修剪内容 |
当对元素进行定位时,可能会出现堆叠现象,用该属性设置元素的堆叠顺序。
分为以下四种:
<div id="d1">div>
<div id="d2">div>
一列固定宽度并自动居中
#d1{
height: 120px;
width: 1000px;
background:blue;
margin: auto;
}
一列自适应宽度(盒子模型随浏览器变化)
#d2{
height: 200px;
background: greenyellow;
margin: auto;
}
<div id="main">
<div id="d3">div>
<div id="d4">div>
div>
两列自适应宽度
#d3{
height: 350px;
width: 120px;
background: red;
float: left;
}
#d4{
height: 350px;
width: 70%;
background: blue;
}
两列固定宽度居中
#d3{
height: 300px;
width: 120px;
background: red;
float: left;
}
#d4{
height: 350px;
width: 650px;
background: blue;
margin-left: 120px;
}
#main{
width: 770px;
margin: auto;
}
对于一些大型网站,特别是电子商务类网站,由于内容分类较多,通常需要采用“三列布局”的页面布局方式。
<div id="main">
<div id="d1">div>
<div id="d2">div>
<div id="d3">div>
div>
三列自适应宽度
#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;
}
三列固定宽度居中
#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;
}
#main{
width: 900px;
margin:0 auto;
}
无论布局类型是单列布局、两列布局或者多列布局,为了网站的美观,网页中的一些模块,例如头部、导航、焦点图或页面底部等经常需要通栏显示。
上图导航栏、页面底部设置为通栏后,无论页面放大或缩小,该模块都将横铺于浏览器窗口中。
标签 | 作用 |
---|---|
thead | 表格头部 |
tbody | 表格主体 |
header | 页面头部 |
nav | 导航栏 |
footer | 页面或区域的底部 |
article | 页面中独立的文档内容 |
section | 页面内容进行分块 |
aside | 页面的附属信息(侧边栏、广告) |
遵循规则:
两种命名方式:
网页模块命名规范: