13.1Web标准与CSS布局
Web标准是网站开发中一系列标准的集合,包括XHTML,XML,CSS,DOM和ECMAScript等。制定标准是为了便于维护,代码更加简
13.1.1什么是Web标准
真正符合Web标准的网页设计是指能够灵活使用Web标准对Web内容进行结构,表现与行为的分离
1.结构(Structure):
结构用于对网页中用到的信息进行分类和整理,主要技术有:HTML,XML,XHTML
2.表现(Presentation):
表现用于对信息进行板式,颜色,大小等形式的控制,主要技术有:CSS层叠样式表
3.行为(Behavior):
行为是指文档内部的模型定义及交互行为的编写,用于编写交互式的文档,主要技术有:DOM,ECMAScript
13.1.2CSS布局的优势
缩减页面代码
结构清晰
缩短改版事件
强大的字体控制和排版能力
易编写
提高易用性
表现和内容分离
方便搜索引擎搜索
比table布局的灵活性大
比table布局产生的垃圾代码少
几乎所有浏览器都可以使用
更快下载页面
页面字体漂亮,容易排版
可以轻松的控制页面的布局
可以同时更新许多网页的风格格式
13.2DIV+CSS布局网页基础
13.2.1一列固定宽度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一列固定宽度</title>
<style type="text/css">
#Layer{
background-color: #ffcc33;
border: 3px solid #ff3399;
width: 500px;
height: 350px;
}
</style>
</head>
<body>
<div id="Layer">一列固定宽度</div>
</body>
</html>

一列固定宽度
13.2.2一列自适应
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一列自适应</title>
<style type="text/css">
#Layer{
background-color: #ffcc33;
border: 3px solid #ff3399;
width: 80%;
height: 80%;
position: fixed;
}
</style>
</head>
<body>
<div id="Layer">一列自适应</div>
</body>
</html>

一列自适应
13.2.3两列固定宽度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两列固定宽度</title>
<style type="text/css">
#left{
background-color: #ffcc33;
border: 1px solid #ff3399;
width: 250px;
height: 250px;
float: left;
}
#right {
background-color: #ffcc33;
border: 1px solid #ff3399;
width: 250px;
height: 250px;
float: left;
}
</style>
</head>
<body>
<div id="left">左列</div>
<div id="right">右列</div>
</body>
</html>

两列固定宽度
13.2.4两列宽度自适应
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两列宽度自适应</title>
<style type="text/css">
#left{
background-color: #ffcc33;
border: 1px solid #ff3399;
width: 65%;
height: 250px;
float: left;
}
#right {
background-color: #ffcc33;
border: 1px solid #ff3399;
width: 25%;
height: 250px;
float: left;
}
</style>
</head>
<body>
<div id="left">左列</div>
<div id="right">右列</div>
</body>
</html>

两列宽度自适应
13.2.5两列右列宽度自适应
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两列右列宽度自适应</title>
<style type="text/css">
#left{
background-color: #ffcc33;
border: 1px solid #ff3399;
width: 200px;
height: 250px;
float: left;
}
#right {
background-color: #ffcc33;
border: 1px solid #ff3399;
height: 250px;
}
</style>
</head>
<body>
<div id="left">左列</div>
<div id="right">右列</div>
</body>
</html>

两列右列宽度自适应
13.3使用CSS设计网站导航栏
13.3.1实现背景变换的导航栏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>实现背景变换的导航栏</title>
<style type="text/css">
#button{
width: 150px;
border-left: 1px solid #000;
border-right: 1px solid #000;
padding: 0 0 1em 0;
font-family: "宋体"
font-size:13px;
background-color: #ff9933;
}
#button ul{
list-style: none;
margin: 0;
padding: 0;
border:none;
}
#button li{
margin: 0;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #ffff00;
}
#button li a{
display: block;
padding: 5px 5px 5px 0.5em;
text-decoration: none;
color: #fff;
border-left-width: 10px;
border-left-style: solid;
border-left-color: #ffcc00;
border-right-width: 10px;
border-right-style: solid;
border-right-color: #ffcc00;
}
#button li a:hover{
background-color: #ffcc00;
color: #000;
border-left-width: 10px;
border-left-style: solid;
border-left-color: #ff00ff;
border-right-width: 10px;
border-right-style: solid;
border-right-color: #ff00ff;
}
</style>
</head>
<body>
<div id="button">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">公司频道</a></li>
<li><a href="#">最新动态</a></li>
<li><a href="#">客房介绍</a></li>
<li><a href="#">酒店服务</a></li>
<li><a href="#">休闲娱乐</a></li>
<li><a href="#">旅行社</a></li>
</ul>
</div>
</body>
</html>
在代码中首先为div定义了一个id为button,然后用ul创建列表数据。ul主要用来描述表型内容,每一个<ul></ul>中的内容为一个列表块,快中的每一条数据用<li></li>描述

点击前

点击后
13.3.2利用CSS制作横向导航栏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>利用CSS制作横向导航</title>
<style type="text/css">
#n li{
float: left;
}
#n ul{
list-style: none;
}
#n li a{
display: block;
color: #000;
text-decoration: none;
text-align: center;
background-color: #6600cc;
margin-left: 2px;
padding-top: 4px;
width: 65px;
height: 20px;
}
#n li a:hover{
background-color: #9999ff;
color: #fff;
}
</style>
</head>
<body>
<div id="n">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">公司频道</a></li>
<li><a href="#">最新动态</a></li>
<li><a href="#">客房介绍</a></li>
<li><a href="#">酒店服务</a></li>
<li><a href="#">休闲娱乐</a></li>
<li><a href="#">旅行社</a></li>
</ul>
</div>
</body>
</html>
- 首先定义了ul的li对象,给#你 li指定了float: left属性,所有的li对象都向左浮动,从而形成横向的排列方式
- 导航的关键在于a链接对象的样式控制,在这里使用#n li a{}给li下的每一个a链接对象编写了样式
- display:block使得a链接对象的显示方式由一段文本变成一个块状对象,这就可以使用CSS的外边距,内边距,边框等属性给a链接加上一系列的样式
- 通过display:block的应用,对a标签元素设置宽度width:65px,高度height:20px,并在每一个a标签对象之间使用margin-left:2px形成左侧的外边距为2像素
- 利用#n li a:hover定义链接文字激活后的状态,利用background-color: #9999ff设置激活后的背景颜色,利用color: #fff设置文字的颜色

点击前

点击后
13.4使用CSS设计表单样式
13.4.1改变按钮的背景颜色和文字颜色
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>改变按钮的背景颜色和文字颜色</title>
<style type="text/css">
input.ann{
border:1 solid #99cc00;
color: #6600ff;
font-size: 20pt;
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: normal;
background-color: #999999;
}
</style>
</head>
<body>
<input type="submit" name="Submit" value="登录" class="ann" />
<input type="reset" name="Close" value="取消" class="ann" />
</body>
</html>
定义一个名为ann的按钮样式,设置边框为1 ,颜色#6600ff,字号,20pt,字体风格和加粗正常,行高正常,以及背景颜色

按钮的设置结果
13.4.2设计文本框的样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本框的样式</title>
</head>
<body>
<input type="password" size="10" name="pwd" style="border:2px solid red;background:yellow;" />
</body>
</html>

文本框的样式
13.4.3设计文本框中的文字样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本框中的文字样式</title>
</head>
<body>
<input type="password" name="pwd" style="font-family: 宋体;font-size:12px" />
</body>
</html>

文本框中文字颜色
13.5文字及段落样式设计
13.5.1利用CSS控制字体大小和行距
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字体大小和行距</title>
<style type="text/css">
.dx{
font-family: "宋体";
font-size: 20px;
color: #ff0000;
line-height: 20px;
}
</style>
</head>
<body>
<span class="dx">欢迎来到这里</span>
</body>
</html>

字体大小和行距
13.5.2制作光晕文字效果
filter的glow失效
13.6使用CSS设计图片样式
13.6.1鼠标指针移上时图片渐变的效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片渐变</title>
<style type="text/css">
.highlightit img{
-webkit-filter: opacity(90%);
}
.highlightit:hover img{
-webkit-filter: opacity(10%);
}
</style>
</head>
<body>
<a href="#" class="highlightit"><img src="img/2.jpg" width="800" height="400"></a>
</body>
</html>

鼠标移动到图片上之前

鼠标移动到图片上
13.6.2设计不重复出现的背景
background-repeat:no-repeat
13.7使用CSS控制链接样式
13.7.1使用CSS实现鼠标指针形状改变
<style type="text/css">
.shb{
cursor: e-resize;
}
</style>
参考之前的光标属性cursor
13.7.2鼠标指针移到链接文字上时改变文字大小或颜色
利用a:link定义链接文字样式
利用a:visited已访问链接样式
利用a:hover定义变化图像链接样式
利用a:link定义活动链接样式

示例