CSS
1.css基础应用
1.1 css样式编写规则
样式表的基本结构
<head>
<style type="text/css">
input{border:1px solid blue;background-color:yellow;}
.btn{color:red;font-size:30px;font-family:隶书;}
</style>
</head>
样式规则
input(选择器){border(属性):1px solid blue(值);background-color:yellow;}(声明块)
所有HTML语言中的标记都是通过不同的CSS选择器进行控制的,用户只需要通过选
择器对不同的HTML标签进行控制,并赋予各种样式声明即可实现各种效果
1.2.CSS中的四种核心选择器
1.2.1 CSS 元素选择器
最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。
如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 p、h1、em、a,甚至可以是 html 本身:
html {color:black;}
h1 {color:blue;}
h2 {color:silver;}
可以将某个样式从一个元素切换到另一个元素。
假设您决定将上面的段落文本(而不是 h1 元素)设置为灰色。只需要把 h1 选择器改为 p:
html {color:black;}
p {color:gray;}
h2 {color:silver;}
类型选择器
在 W3C 标准中,元素选择器又称为类型选择器(type selector)。
“类型选择器匹配文档语言元素类型的名称。类型选择器匹配文档树中该元素类型的每一个实例。”
下面的规则匹配文档树中所有 h1 元素:
h1 {font-family: sans-serif;}
因此,我们也可以为 XML 文档中的元素设置样式:
XML 文档:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="note.css"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
CSS 文档:
note
{
font-family:Verdana, Arial;
margin-left:30px;
}
to
{
font-size:28px;
display: block;
}
from
{
font-size:28px;
display: block;
}
heading
{
color: red;
font-size:60px;
display: block;
}
body
{
color: blue;
font-size:35px;
display: block;
}
1.2.2 CSS 类别选择器–应用到多个不同标签
在 CSS 中,类选择器以一个点号显示:
.center {text-align: center}
在上面的例子中,所有拥有 center 类的 HTML 元素均为居中。
在下面的 HTML 代码中,h1 和 p 元素都有 center 类。这意味着两者都将遵守 “.center” 选择器中的规则。
<h1 class="center">
This heading will be center-aligned
</h1>
<p class="center">
This paragraph will also be center-aligned.
</p>
注意:类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。
和 id 一样,class 也可被用作派生选择器:
.fancy td {
color: #f60;
background: #666;
}
在上面这个例子中,类名为 fancy 的更大的元素内部的表格单元都会以灰色背景显示橙色文字。(名为 fancy 的更大的元素可能是一个表格或者一个 div)
元素也可以基于它们的类而被选择:
td.fancy {
color: #f60;
background: #666;
}
在上面的例子中,类名为 fancy 的表格单元将是带有灰色背景的橙色。
<td class="fancy">
你可以将类 fancy 分配给任何一个表格元素任意多的次数。那些以 fancy 标注的单元格都会是带有灰色背景的橙色。那些没有被分配名为 fancy 的类的单元格不会受这条规则的影响。
还有一点值得注意,class 为 fancy 的段落也不会是带有灰色背景的橙色,当然,任何其他被标注为 fancy 的元素也不会受这条规则的影响。这都是由于我们书写这条规则的方式,这个效果被限制于被标注为 fancy 的表格单元(即使用 td 元素来选择 fancy 类)。
1.2.3 CSS id选择器—独一无二的元素
id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。
id 选择器以 “#” 来定义。
下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二个定义元素的颜色为绿色:
#red {color:red;}
#green {color:green;}
下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。
<p id="red">这个段落是红色。</p>
<p id="green">这个段落是绿色。</p>
注意:id 属性只能在每个 HTML 文档中出现一次。
id 选择器和派生选择器
在现代布局中,id 选择器常常用于建立派生选择器。
#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}
上面的样式只会应用于出现在 id 是 sidebar 的元素内的段落。这个元素很可能是 div 或者是表格单元,尽管它也可能是一个表格或者其他块级元素。它甚至可以是一个内联元素,比如 或者 ,不过这样的用法是非法的,因为不可以在内联元素 中嵌入
(如果你忘记了原因,请参阅 XHTML:网站重构)。
一个选择器,多种用法
即使被标注为 sidebar 的元素只能在文档中出现一次,这个 id 选择器作为派生选择器也可以被使用很多次:
#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}
#sidebar h2 {
font-size: 1em;
font-weight: normal;
font-style: italic;
margin: 0;
line-height: 1.5;
text-align: right;
}
在这里,与页面中的其他 p 元素明显不同的是,sidebar 内的 p 元素得到了特殊的处理,同时,与页面中其他所有 h2 元素明显不同的是,sidebar 中的 h2 元素也得到了不同的特殊处理。
单独的选择器
id 选择器即使不被用来创建派生选择器,它也可以独立发挥作用:
#sidebar {
border: 1px dotted #000;
padding: 10px;
}
根据这条规则,id 为 sidebar 的元素将拥有一个像素宽的黑色点状边框,同时其周围会有 10 个像素宽的内边距(padding,内部空白)。老版本的 Windows/IE 浏览器可能会忽略这条规则,除非你特别地定义这个选择器所属的元素:
div#sidebar {
border: 1px dotted #000;
padding: 10px;
}
1.2.4 伪类选择器
CSS 伪类用于向某些选择器添加特殊的效果。
1.2.4.1 语法
伪类的语法:
selector : pseudo-class {property: value}
CSS 类也可与伪类搭配使用。
selector.class : pseudo-class {property: value}
1.2.4.2 锚伪类
在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。
a:link {color: #FF0000} /* 未访问的链接 */
a:visited {color: #00FF00} /* 已访问的链接 */
a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
a:active {color: #0000FF} /* 选定的链接 */
提示:在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
提示:伪类名称对大小写不敏感。
1.2.4.3 伪类与 CSS 类
伪类可以与 CSS 类配合使用:
a.red : visited {color: #FF0000}
<a class="red" href="css_syntax.asp">CSS Syntax</a>
假如上面的例子中的链接被访问过,那么它将显示为红色。
1.2.4.4 CSS2 - :first-child 伪类
您可以使用 :first-child 伪类来选择元素的第一个子元素。这个特定伪类很容易遭到误解,所以有必要举例来说明。考虑以下标记:
<div>
<p>These are the necessary steps:</p>
<ul>
<li>Intert Key</li>
<li>Turn key <strong>clockwise</strong></li>
<li>Push accelerator</li>
</ul>
<p>Do <em>not</em> push the brake at the same time as the accelerator.</p>
</div>
在上面的例子中,作为第一个元素的元素包括第一个 p、第一个 li 和 strong 和 em 元素。
给定以下规则:
p:first-child {font-weight: bold;}
li:first-child {text-transform:uppercase;}
第一个规则将作为某元素第一个子元素的所有 p 元素设置为粗体。第二个规则将作为某个元素(在 HTML 中,这肯定是 ol 或 ul 元素)第一个子元素的所有 li 元素变成大写。
请访问该链接,来查看这个 :first-child 实例的效果。
提示:最常见的错误是认为 p:first-child 之类的选择器会选择 p 元素的第一个子元素。
注释:必须声明 <!DOCTYPE>,这样 :first-child 才能在 IE 中生效。/
1.2.4.5 CSS2 - :lang 伪类
:lang 伪类使你有能力为不同的语言定义特殊的规则。在下面的例子中,:lang 类为属性值为 no 的 q 元素定义引号的类型:
<html>
<head>
<style type="text/css">
q:lang(no){quotes: "~" "~"}
</style>
</head>
<body>
<p>文字<q lang="no">段落中的引用的文字</q>文字</p>
</body></html>
//显示的结果:文字"段落中的引用的文字"文字
1.3 选择器的集体声明和嵌套
集体声明:
使用场合
1.如果某些选择器的风格完全或部分相同时,可以采用集体声明的方式减少样式代码
2.注意问题:以逗号隔开选择器
3.实例
<head>
<style type="text/css">
h1,h2,h3,#one{color:red;}
</style>
</head>
<body>
<h1>集体声明1</h1>
<h1>集体声明2</h1>
<h1>集体声明3</h1>
<div id="one">div集体声明</div>
</body>
选择器的嵌套
作用:选择器的嵌套可以对特殊位置的HTML标签样式进行声明
<div id="navList">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">.NET集合</a></li>
<li><a href="#">热门直播</a></li>
<li><a href="#">本周课表</a></li>
<li><a href="#">给讲师留言</a></li>
</ul>
</div>
#navList ul{margin:0px;padding: 0px;font-family: "微软雅黑";}
#navList li{list-style:none;float:left;}
#navList a{padding:10px 10px 10px 10px}
1.4.使用CSS设定文本样式
常用文本属性列表
文本属性 | 属性说明 |
---|---|
font-size | 字体大小 |
font-family | 字体类型 |
font-style | 字体样式 |
color | 设置或检索文本的颜色 |
text-align | 文本对齐 |
font-weight | 文本粗细 |
text-decoration | 文本下划线 |
line-height | 文本的行间距 |
letter-spacing | 字间距 |
实例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#txtStyle
{color:seagreen;
text-decoration: underline;
font-family: "微软雅黑";
font-weight: bold;
line-height: 35px;
font-size:18px;
}
</style>
</head>
<body>
<div id="txtStyle">
床前明月光,<br />
疑是地上霜。<br />
举头望明月,<br />
低头思故乡。<br />
</div>
</body>
</html>
1.5.使用CSS动态设置背景图
常用背景属性列表
背景属性 | 属性说明 |
---|---|
background-color | 设置元素的背景颜色。 |
background-image | 把图像设置为背景。 |
background-position | 设置背景图像的起始位置。 |
background-repeat | 设置背景图像是否及如何重复。 |
特别说明
1.背景图片的位置:为了减少HTTP请求的次数,在网页中有时需要将较多的小图片放在一张较大的图片中,然后用背景图片位置属性background-position来定位要显示的图片,可以用绝对定位和相对定位来表示。
2.background-position:10px 20px;表示从该图片左边10px,上边20px算起
3.background-position:10% 205;表示从该图片左边10%,上边20%算起
实例
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
#bgstyle1
{
width:360px;
height:74px;
background-image:url(../../Pictures/timg.jpg);
background-position:-76px -23px;
}
</style>
</head>
<body>
<div id="bgstyle1"></div>
</body>
</html>
1.6 使用css设置图片样式
实例、
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
img{
width:200px;
height:100px;
border:2px solid red;
}
</style>
</head>
<body>
<img src="../../Pictures/111 - 副本.jpg"/>
</html>
1.7 使用css设置文本框样式
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.myinput1
{
border:1px solid #000000;
background-color:#FFCCCC;
font-size:14px;
}
.myinput2
{
border:0px;
font-size:14px;
border-bottom:1px solid #000000;
}
</style>
</head>
<body>
<div id="one">
用户名:<input class="myinput1" type="text" name="userName" size="20"/><br /><br />
密码:<input class="myinput2" type="password" name="userPwd" size="20"/>
</div>
</html>
1.8 使用css设置图片按钮
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.imagebtn
{
background-image:url(../../Pictures/timg.jpg);
width:360px;
height:74px;
background-position:-76px -23px;
}
</style>
</head>
<body>
<input type="button" class="imagebtn" name="btnDownlowd"/>
</body>
</html>
1.9 表格的基本美化
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.sellTable{border:1px solid blue ;border-collapse:collapse;}
.sellTable caption
{
border:2px solid #7DD5FF;
padding:8px;
background-color:#CBF3F1;
font-family:"微软雅黑";
font-size:16px;
letter-spacing:5px;
}
.sellTable th
{
border:2px solid #7DD5FF;
padding:8px;
background-color:#FFFFCC;
font-size:14px;
text-align:center;
}
.sellTable td
{
border:2px solid #7DD5FF;
padding:8px;
font-size:14px;
text-align:center;
}
.sellTable tr.altrow
{
background-color:#FFFFCC;
}
</style>
</head>
<body>
<table class="sellTable">
<caption>销售业绩</caption>
<tr>
<th>业务员</th>
<th>一月份</th>
<th>二月份</th>
<th>三月份</th>
<th>四月份</th>
<th>五月份</th>
<th>六月份</th>
</tr>
<tr >
<td>王小明</td>
<td>5000</td>
<td>5500</td>
<td>4000</td>
<td>7000</td>
<td>6000</td>
<td>7000</td>
</tr>
<tr class="altrow">
<td>张三</td>
<td>5000</td>
<td>5500</td>
<td>4000</td>
<td>7000</td>
<td>6000</td>
<td>7000</td>
</tr>
<tr>
<td>李四</td>
<td>5000</td>
<td>5500</td>
<td>4000</td>
<td>7000</td>
<td>6000</td>
<td>7000</td>
</tr>
<tr class="altrow">
<td>王五</td>
<td>5000</td>
<td>5500</td>
<td>4000</td>
<td>7000</td>
<td>6000</td>
<td>7000</td>
</tr>
</table>
</body>
</html>
2 DIV+CSS网页布局之盒子模型
2.1 网页布局与div标签
<div>
标记与<span>
标记
2.2 基于CSS3盒子模型的理论分析
盒子模型概念:
页面中所有元素都可以看成是一个“矩形”,占据着一定的页面空间,这些被占用的空间一般都比单纯的内容要大,这个“矩形框”就是盒子。
生活中的例子
盒子模型的组成
2.3 基于CSS3盒子模型的应用体验
标准盒子模型:
在网页的最顶端添加DOCTYPE说明即可统一浏览器的解析标准。
盒子模型差异解决的其它方法:
2.4 border和padding详解
border边框
padding内边距:内容与边框的距离
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
div{
width:300px;
height:200px;
border:2px dotted darkblue;
color:#FF0000;
padding:50px;
}
</style>
</head>
<body>
<div>border详解</div>
</body>
</html>
2.5 margin详解
作用:用于控制块与块之间的距离
块元素之间的左右margin
块之间的距离=margin-left+margin-right
块元素之间的上下margin
子块元素–div的嵌套
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>margin详情</title>
<style type="text/css">
#div1{
width:300px;
height:200px;
border:20px solid groove;
}
#div2{
width:200px;
height:100px;
border:1px solid blue;
margin:10px;
background-color:yellow;
}
</style>
</head>
<body>
<div id="div1"><div id="div2">子块元素</div></div>
</body>
</html>
2.6 使用float定位元素
当用到margin-left时,display:inline可用于解决浏览器不兼容的问题。
div高度显示问题
height:auto;overflow:hidden;使得容器根据内容的高度动态改变自身的高度
clear属性的使用
如何将子元素强制换行
2.7 position与z-index
z-index值越大,div离我越近。
2.8 导航条的制作详解
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="navBar.css" type="text/css" rel="stylesheet"/>
</head>
<body>
<div id="globallink">
<ul>
<li><a href="#">读书首页</a></li>
<li><a href="#">作品总库</a></li>
<li><a href="#">VIP作品</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>
body{font-size:12px;}
#globallink{
width:800px;
height:44px;
background-image:url(../../Pictures/navbg.png);
}
#globallink ul{list-style:none;padding-top:13px;margin:0px;}
#globallink li
{
float:left;
width:70px;
text-align:center;
}
#globallink a{
clear:both;
dispaly:block;
height:5px;
padding-top:5px;
text-decoration:none;
}
#globallink a:link,#globallink a:visited{color:#000066;}
#globallink a:hover{color:#993300;}
3 网页设计实践
3.1 网页布局的基本形式
网站设计基本流程
双栏、三栏布局在pc端更常用
典型三栏网页布局的实现
实现效果
3.2 DIV和CSS网页布局基础实践
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="index.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="logo"></div>
<div id="navLink"></div>
<div id="leftContent"></div>
<div id="middleContent"></div>
<div id="rightContent"></div>
<div id="footer"></div>
</div>
</body>
</html>
body{margin:0px;padding:0px;font-size:12px;text-align:center;}
/*网页主体容器设置*/
#container{
width:950px;
margin:0 auto 0 auto;
text-align:left;
}
#logo{width:950px;height:50px;background-color:#3366CC;float:left;}
#navLink{width:950px;height:40px;background-color:#FFCC00;margin:10px 0px 10px 0px;float:left;}
/*主体左边、中间、右边*/
#leftContent{width:188px;height:300px;background-color:#B0D8FF;border:1px solid #0099FF;float:left;margin-right:10px;}
#middleContent{width:538px;height:300px;background-color:#B0D8FF;border:1px solid #0099FF;float:left;margin-right:10px;}
#rightContent{width:198px;height:300px;background-color:#B0D8FF;border:1px solid #0099FF;float:left;}
/*脚注部分*/
#footer{width:950px;height:80px;background-color:#FF9933;float:left;margin-top:10px;}