layout: "post"
title: "慕课网《网页布局基础》学习笔记"
date: "2016-06-19 13:46"
categories: [前端, HTML/CSS, CSS布局]
tags: [前端, html, css]
目录:
<!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
- [网页基础布局]
- [什么叫做布局?]
- [什么是网页布局?]
- [需要掌握的知识点]
- [布局的类型]
- [三个案例]
- [前置知识点与盒子模型]
- [W3C标准]
- [CSS中的3种定位机制]
- [标准文档流Normal flow]
- [盒子模型]
- [样式优先顺序、权值]
- [相同权值的情况下]
- [样式权值]
- [盒子3D模型]
- [盒子模型尺寸]
- [自动居中一列布局]
- [前置技能点]
- [设置一个自动居中包裹层]
- [横向多列布局]
- [浮动布局及float属性]
- [清除浮动及常用方法]
- [用浮动属性实现横向两列布局]
- [绝对定位布局]
- [什么是绝对定位布局?]
- [相对定位]
- [绝对定位]
- [用绝对定位实现横向两列布局]
<!-- /TOC -->
什么叫做布局?在慕课网的web前端工程师计划学习CSS布局时,结合HTML+CSS基础课程中的CSS盒模型以及布局模型部分、如何用CSS进行网页布局课程的一些基础部分、网页布局基础课程的主要部分,所做的一些微小的笔记。
网页布局是网页制作的基础; div+css布局网页更是基础中的基础。
网页设计的特点:
分栏又称为分列,常见的布局分为:一列布局、两列布局、三列布局,甚至是混合布局。
需要掌握的知识点亦即:
float
属性为left
或right
来定义为浮动;position: absolute
)<html>
元素,即相对于浏览器窗口移动,而不是<body>
元素。position: relative
)left
、top
、right
、bottom
属性确定,偏移前的位置保留不动;position: fixed
)left
、top
、right
、bottom
属性相对于浏览器视图移动,并且拖动滚动条时位置固定不变。relative
和absolute
属性的组合使用
position: relative
,子元素为position: absolute
,这样子元素就可以相对于父元素来进行参照定位了。*注1:可以使用`{margin:0; padding:0;}`把默认的外填充、内填充去掉。**
三个案例由万维网联盟制定的一系列标准,包括:
倡导结构、样式、行为分离
注:CSS盒模型的元素分类应是:块级元素(div/p/hx/form/ul/li)、内联元素(span/a/label/strong/em)、内联块级元素(img/input)
盒子模型由4部分组成:
边框、内外边距都有四个方向,按顺时针(clockwise)依次为:上(top)、右(right)、下(bottom)、左(left)。
就近原则:
嵌入式 > 外部式
有一个前提,即嵌入式css样式的位置一定要在外部式的后面。!important 内联样式 Style attr id选择器 类选择器class, pseudo class or attr 元素 elements 继承 inherit 通配选择器 *
:--------: :----------------: :------: :--------------------------------: :-----------: :---------: :----------:
oo 1000 100 10 1 0.1 0
border
content
+padding
background-image
background-color
margin
盒子模型的尺寸 = 外边距 + 边框 + 内补 + 内容尺寸
首先要给包裹层设置固定宽度,否则可能会占满屏宽或者没有居中的效果。
然后给包裹层设置margin: 0 auto;
,使其居中。
<style>
* { margin: 0; padding: 0; }
#wrap {
width: 50%;
margin: 0 auto;
}
#header,#mainbody,#footer { height: 100px; }
#header { background-color: #F00; }
#mainbody { background-color: #0F0; }
#footer { background-color: #00F; }
</style>
<div id="wrap">
<div id="header"></div>
<div id="mainbody"></div>
<div id="footer"></div>
</div>
注:如果又同时设置了float
属性或者绝对定位属性(position
为absolute
或fixed
),那么肯定就没有居中效果了。
标准文档流中默认块级元素是从上到下依次纵向排列的。
而浮动布局就可以实现块级元素的横向布局了
float
元素的三个值:left
、right
、none
。float
属性的元素脱离了标准文档流,但仍占据位置空间,会对周围的元素产生影响。设置浮动会导致紧邻其后的元素被影响,有时甚至会影响布局,变成我们不是想要的样子。
这时候就需要对受到浮动影响的元素“清除浮动”。
clear
属性 --- 为元素设置clear
属性,常用clear: both;
。而clear: left;
和clear: right;
也是可以的。width
+overflow: hidden
,将宽度设置为固定值比如100%
等,并将溢出属性设置为隐藏。<br />
)无意义,不建议用来清除浮动;且清除的行高可能不同。注意:
当父包含块没有设置浮动,而它内部的子元素设置了浮动,这种情况下父元素同样受到浮动的影响,子元素不再被父元素包裹了,它的高度不会扩展为子元素的最大高度。这时若要清除浮动,需要设置overflow: hidden
来把浮动元素包裹起来。
float
属性 --- 使块级元素横向排列
margin
属性 --- 设置两列之间的间距
<style type="text/css">
* { margin:0; padding:0; }
#wrap {
margin:0 auto;
background:#00F;
width:360px;
}
#header { background:#FAC; }
#mainbody { background:#ACF; overflow: hidden; }
#footer { background:#AFC; }
.left {
width:200px; height:100px;
background:#0AC;
float: left;
}
.right {
width:140px; height:150px;
background:#AC0;
float: left;
}
</style>
<body>
<div id="wrap">
<div id="header">头部</div>
<div id="mainbody">
<div class="left"></div>
<div class="right"></div>
</div>
<div id="footer">版权部分</div>
</div>
</body>
绝对定位布局是通过设置
position
属性实现的。
除了能够实现横向多列布局及较为复杂的定位,如
- 带有遮罩层效果的提示框;
- 固定层效果(如固定的导航栏);
- 全屏广告(也算是遮罩层效果)等。
position
属性有3种定位形式:
static
--- 静态定位relative
--- 相对定位absolute
--- 绝对定位fixed
--- 固定定位其中absolute
和fixed
都属于绝对定位的形式。
相对定位有如下特点:
left
、top
、right
、bottom
)以及z-index
属性。relative
更稳定,且不脱离文档流,可以用作设置了absolute
的元素的父包含块。绝对定位有如下特点:
left
、top
、right
、bottom
)以及z-index
属性;未设置偏移量的情况:
设置了偏移量的情况:
<html>
为偏移参照基准(而非<body>
);使用绝对定位实现横向两列布局的应用比较少;
一般常用于一列固定宽度,另一列宽度自适应的情况;
要点:
relative
--- 父元素相对定位;absolute
--- 自适应宽度元素绝对定位;<style type="text/css">
* { margin:0; padding:0; }
#wrap {
margin:0 auto;
background:#AAC;
width:360px;
}
#header {
background:#FAC;
height:50px
}
#mainbody {
background:#ACF;
position:relative;
margin-top:5px;
}
#footer { background:#AFC; }
#sidebar {
width:50px; height:200px;
background:#0AC;
}
#content {
width:300px; height:150px;
background:#AC0;
position: absolute;
left: 60px; top: 0px;
}
</style>
<body>
<div id="wrap">
<div id="header">头部</div>
<div id="mainbody">
<div id="sidebar"></div>
<div id="content"></div>
</div>
<div id="footer">版权部分</div>
</div>
</body>
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123