第27章 CSS传统布局(下)

第 27章 CSS传统布局[下]
学习要点:
1.定位布局
2.box-sizing
3.resize

本章主要探讨 HTML5中 CSS早期所使用的传统布局,很多情况下,这些布局方式还
是非常有用的。
一.定位布局
在使用定位布局前,我们先了解一下定位属性的用法。CSS2提供了position属性来实现元素的绝对定位和相对定位。

属性 说明
static 默认值,无定位。
absolute 绝对定位,使用 top、right、bottom、left进行位移。
relative 相对定位,使用 top、right、bottom、left进行位移。
fixed 以窗口参考定位,使用 top、right、bottom、left进行位移。

//绝对定位,脱离文档流,以窗口文档左上角 0,0为起点
header {
position: absolute;
top: 100px;
left: 100px;
}
所谓脱离文档流的意思,就是本身这个元素在文档流是占位的。如果脱离了,就不占有
文档的位置,好像浮在了空中一般,有了层次感。
由于绝对定位脱离了文档流,出现层次概念。那么每个元素到底在那一层,会不会冲突
覆盖。这时通过 z-index属性来判定它们的层次关系。

属性 说明
auto 默认层次
数字 设置层次,数字越大,层次越高

/设置在 100层上
header {
z-index: 100;
}
//以窗口参考定位,脱离文档流,会随着滚动条滚动而滚动
header {
position: fixed;
top: 100px;
left: 100px;
}
//相对定位,不脱离文档流,占位偏移
header {
position: relative;
top: 100px;
left: 100px;
}
这三种分别都在各自的情况下使用,均比较常用。但还有一种情况,就是:1.既要脱
离文档流(这样元素之间不会相互冲突);2.以父元素,比如 body或其他父元素为参考点
(这样可以实现区域性绝对定位);3.还必须是绝对定位。
//第一步,将需要设置参考点的父元素设置为相对,且不设置坐标
body {
position: relative;
}
//第二步,如果父元素设置了参考点,子元素的绝对定位将以它为基准
header {
position: absolute;
top: 0px;
left: 0px;
}
1.固定布局
//CSS部分
body {
width: 960px;
margin: 0 auto;
position: relative;
}
header {

width: 960px;
height: 120px;
background-color: olive;
position: absolute;
top: 0;
left: 0;
}
aside {
width: 200px;
height: 500px;
background-color: purple;
position: absolute;
top: 120px;
left: 0;
}
section {
width: 760px;
height: 500px;
background-color: maroon;
position: absolute;
top: 120px;
/*left: 200px;*/
right: 0;
}
footer {
width: 960px;
height: 120px;
background-color: gray;
position: absolute;
top: 620px;
}
在上面,基本都用了定位来进行固定布局。但细心的可以发现,其实只有右侧需要实行
绝对定位,其他就按照普通的摆放即可。对于设计成流体布局,只要将长度设置成百分比即
可。

/设置在 100层上
header {
z-index: 100;
}
//以窗口参考定位,脱离文档流,会随着滚动条滚动而滚动
header {
position: fixed;
top: 100px;
left: 100px;
}
//相对定位,不脱离文档流,占位偏移
header {
position: relative;
top: 100px;
left: 100px;
}
这三种分别都在各自的情况下使用,均比较常用。但还有一种情况,就是:1.既要脱
离文档流(这样元素之间不会相互冲突);2.以父元素,比如 body或其他父元素为参考点
(这样可以实现区域性绝对定位);3.还必须是绝对定位。
//第一步,将需要设置参考点的父元素设置为相对,且不设置坐标
body {
position: relative;
}
//第二步,如果父元素设置了参考点,子元素的绝对定位将以它为基准
header {
position: absolute;
top: 0px;
left: 0px;
}
1.固定布局
//CSS部分
body {
width: 960px;
margin: 0 auto;
position: relative;
}
header {

width: 960px;
height: 120px;
background-color: olive;
position: absolute;
top: 0;
left: 0;
}
aside {
width: 200px;
height: 500px;
background-color: purple;
position: absolute;
top: 120px;
left: 0;
}
section {
width: 760px;
height: 500px;
background-color: maroon;
position: absolute;
top: 120px;
/*left: 200px;*/
right: 0;
}
footer {
width: 960px;
height: 120px;
background-color: gray;
position: absolute;
top: 620px;
}
在上面,基本都用了定位来进行固定布局。但细心的可以发现,其实只有右侧需要实行
绝对定位,其他就按照普通的摆放即可。对于设计成流体布局,只要将长度设置成百分比即
可。

二.box-sizing
在盒模型那个章节,我们了解到元素盒子如果加入了内边距 padding和边框 border
后,它的总长度会增加。那么如果这个元素用于非常精确的布局时,我们就需要进行计算增
减。这其实是比较烦人的操作,尤其是动态设置页面布局的时候。
CSS3提供了一个属性 box-sizing,这个属性可以定义元素盒子的解析方式,从而可
以选择避免掉布局元素盒子增加内边距和边框的长度增减问题。
属性 说明
content-box 默认值,border和 padding设置后用于元素的总长度。

border-box border和padding设置后不用于元素的总长度。

//设置 border-box让 border和 padding不在额外增加元素大小
aside {
width: 200px;
height: 500px;
background-color: purple;
padding: 10px;
border: 5px solid red;
box-sizing: border-box;
float: left;
}
box-sizing是 CSS3推出的,各个厂商在实现时设置了私有前缀。

三.resize(用来是否可以拖拽元素)
CSS3提供了一个 resize属性,来更改元素尺寸大小。
属性 说明
none 默认值,不允许用户调整元素大小。
both 用户可以调节元素的宽度和高度。
horizontal 用户可以调节元素的宽度。
vertical 用户可以调节元素的高度。
一般普通元素,默认值是不允许的。但如果是表单类的 textarea元素,默认是允许的。
而普通元素需要设置 overflow:auto,配合 resize才会出现可拖拽的图形。

//允许修改
aside {
resize: both;
overflow:auto;
}

例子1:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>CSS传统布局[下]</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<header>
header
</header>

<!-- <aside>
aside
</aside> -->

1111

</body>
</html>

@charset "utf-8";

body {
margin: 100px;
height: 800px;
border: 1px solid red;
/*这body父元素设置一个不需要top和left定位的相对定位,这个叫做设置参考点*/
position: relative;
}

header {
width: 100px;
height: 100px;
background-color: silver;
/* position: absolute;
top: 0;
left: 0;
z-index: 3;*/
/* position: fixed;
top: 100px;
left: 0;*/
/* position: relative;
top: 10px;
left: 10px;*/
position: absolute;
top: 100px;
left: 100px;
}

/*aside {
width: 100px;
height: 100px;
background-color: green;
position: absolute;
top: 20px;
left: 20px;
z-index: 2;
}*/

例子2

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>CSS传统布局[下]</title>
<link rel="stylesheet" type="text/css" href="style2.css">
</head>
<body>

<header>
header
</header>

<aside>
aside
</aside>

<section>
section
</section>

<footer>
footer
</footer>

</body>
</html>

@charset "utf-8";

body {
width: 960px;
margin: 0 auto;
position: relative;
}

header {
width: 960px;
height: 120px;
background-color: olive;
position: absolute;
top: 0;
left: 0;
}

aside {
width: 200px;
height: 500px;
background-color: purple;
position: absolute;
top: 120px;
left: 0;
}

section {
width: 760px;
height: 500px;
background-color: maroon;
position: absolute;
top: 120px;
right: 0;
}

footer {
width: 960px;
height: 120;
background-color: gray;
position: absolute;
top: 620px;
left: 0;
}

例子3

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>CSS传统布局[下]</title>
<link rel="stylesheet" type="text/css" href="style3.css">
</head>
<body>

<header>
header
</header>

<aside>
aside
</aside>

<section>
section
<textarea></textarea>
</section>

<footer>
footer
</footer>

</body>
</html>

@charset "utf-8";

body {
width: 960px;
margin: 0 auto;
}

header {
height: 120px;
background-color: olive;
overflow: auto;
resize: both;
}

aside {
width: 200px;
height: 500px;
background-color: purple;
border: 5px solid green;
padding: 10px;
box-sizing: border-box;
float: left;
}

section {
width: 760px;
height: 500px;
background-color: maroon;
float: right;
}

footer {
width: 960px;
height: 120;
background-color: gray;
clear: both;
}

textarea {
resize: none;
}

时间: 2024-12-11 11:03:32

第27章 CSS传统布局(下)的相关文章

第 27 章 CSS 传统布局[下]

学习要点: 1.定位布局 2.box-sizing 3.resize 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的. 一.定位布局 在使用定位布局前,我们先了解一下定位属性的用法.CSS2 提供了 position 属性来实现元素的绝对定位和相对定位. 属性 说明 static 默认值,无定位. absolute 绝对定位,使用 top.right.bottom.left进行位移. relative 相对定位,使用 top.

第27章 CSS传统布局(上)

第 27章 CSS传统布局[上]学习要点:1.布局模型2.表格布局3.浮动布局 本章主要探讨 HTML5中 CSS早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的.一.布局模型在早期没有平板和智能手机等移动设备大行其道的时期,Web页面的设计主要是面向PC端电脑分辨率展开的.这种分辨率比例比较单一,基本上只要满足最低分辨率设计即可.一般来说有 4:3.16:10.16:9这样的主要分辨率.那么,从这种比例上来看,长度总是大于宽度的.从最低分辨率 1024 * 768设计即可.为了使浏

第 27 章 CSS 传统布局[上]

学习要点: 1.布局模型 2.表格布局 3.浮动布局 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的. 一.布局模型 在早期没有平板和智能手机等移动设备大行其道的时期,Web 页面的设计主要是面向 PC 端电脑分辨率展开的.这种分辨率比例比较单一,基本上只要满足最低分辨率设计即可.一般来说有 4:3.16:10.16:9 这样的主要分辨率.那么,从这种比例上来看,长度总是大于宽度的.从最低分辨率 1024 * 768 设计即可

第16章 CSS盒模型下

第 16章 CSS盒模型[下]学习要点:1.元素可见性2.元素盒类型3.元素的浮动 本章主要探讨 HTML5中 CSS盒模型,学习怎样了解元素的外观配置以及文档的整体布局. 一.元素可见性使用visibility属性可以实现元素的可见性,这种样式一般可以配合 JavaScript来实现效果.样式表如下:属性 visibility 值 说明 CSS版本visible 默认值,元素在页面上可见 2hidden 元素不可见,但会占据空间. 2collapse 元素不可见,隐藏表格的行与列. 2 如果不

34.CSS传统布局【上】

第二十七章    传统布局[上] 一.布局模型 二.表格布局 (非常不建议使用) 就是通过设定固定的单元格,去除表格边框和填充实现的布局,他应该在二维表格的数据显示 1.固定布局 //html部分 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <title>传统布局[上]</title> <link re

第十三章 CSS选择器(下)

第 13章  CSS选择器[下] 学习要点: 1.伪类选择器总汇 2.结构性伪类选择器 3.UI伪类选择器 4.动态伪类选择器 5.其他伪类选择器 本章主要探讨 HTML5中  CSS选择器中的伪类选择器,和伪元素选择器一样,面向某种共同特征来选择元素. 一.伪类选择器总汇 伪类选择器分为四种类型:结构性伪类.UI伪类.动态伪类和其他伪类选择器 二.结构性伪类选择器 结构性伪类选择器能够根据元素在文档中的位置选择元素.这类元素都有一个前缀(:). 1.根元素选择器 :root  { border

第五章 CSS页面布局基础

1.标准文档流 在正常流中,在没有使用浮动或者定位的情况下,文本元素按照从上到下.从左到右的格式布局.这是浏览器的默认行为.在正常流中,块级元素从上到下依次排列,而行级元素从左到右依次排列.正常流中的元素影响其相邻元素的位置. 2.块级元素 前后换行显示,默认状态下独占一行: 块级元素可以作为容器,包含其他行级元素.块级元素: 块级元素有一定高度和宽度,可以通过width和height来设置. div,table,p,h1-h6,ul,form等等 3.行级元素(内嵌元素.内联标签) 类似于文本

第 16 章 CSS 盒模型[下]

学习要点: 1.元素可见性 2.元素盒类型 3.元素的浮动 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 盒模型,学习怎样了解元素的外观配置以及文档的整体布局. 一.元素可见性 使用 visibility 属性可以实现元素的可见性,这种样式一般可以配合 JavaScript 来实现效果.样式表如下: 属性 值 说明 CSS 版本 visible 默认值,元素在页面上可见. 2 visibility hidden 元素不可见,但会占据空间. 2 collapse 元素不可见,隐藏表格的行

第 15 章 CSS 文本样式[下]

学习要点: 1.文本总汇 2.文本样式 3.文本控制 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 文本样式,通过文本样式的设置,更改字体的大小.样式以及文本的方位. 一.文本总汇 本节课,我们重点了解一下 CSS 文本样式中文本内容的一些设置方法,样式表如下: 属性名 说明 CSS 版本 text-decoration 装饰文本出现各种划线. 1 text-transform 将英文文本转换大小写. 1 text-shadow 给文本添加阴影 3 text-align 设置文本对齐方