目 录
1. 引入
-
html:负责网页的结构
-
css:负责网页的美观(样式)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>css入门</title>
<style type="text/css">
a{
font-size:24px;
color:#FC6;
}
</style>
</head>
<body>
<a href="">超链接</a><br/>
<a href="">超链接</a><br/>
<a href="">超链接</a><br/>
<a href="">超链接</a><br/>
</body>
</html>
2. CSS
(Cascading Style Sheet层叠样式表),简称:样式
作用:负责网页的美观
2.1 CSS使用方式
2.1.1 行内样式
标签的style属性进行CSS属性控制,CSS内容写在style属性值中。弊端:只能控制一个标签的样式。
<a href="" style="font-size:24px;">超链接</a>
2.1.2 内部样式
html页面<head>标签中的<style>标签进行CSS属性控制,CSS内容写在style标签体中。
好处:一次控制多个标签的样式。
弊端:和html标签混杂,维护性差。CSS内容无法适用多个html页面。
<head>
<meta charset="utf-8">
<title>css入门</title>
<style type="text/css">
<!-- a随意取的,可以换成任意名字 -->
a{
font-size:24px;
color:#FC6;
}
</style>
</head>
2.1.3 外部样式(项目中推荐适用)
- 建立独立后缀名为.css的文件,CSS内容写在该文件中。
- 在需要适用CSS的页面的<head>标签中导入外部的CSS文件
<!--
link 导入外部css文件
常用的属性:
href 外部css文件的位置
rel 表示关联的是样式表
-->
<link href="01.css" rel="stylesheet"/>
外部css文件内容
a{
font-size:24px;
color:#3F3;
}
2.2 CSS语法
-
选择器(selector):选择需要添加样式的标签
-
CSS属性:给选择的标签添加什么样式:字体大小,颜色,背景。。。
-
CSS值:样式的具体值:12px,红色,背景图片。。。
2.2.1 选择器
标签选择器:选择同名的标签
<style type="text/css">
/*标签选择器:控制所有同名的标签的样式 举例:控制所有的div标签*/
div{
font-size:24px;
color:#CF3;
}
</style>
类选择器:选择同类的标签
<style type="text/css">
/*类选择器:通过标签的class属性控制样式,同类的标签使用同名的class属性值
举例:控制标签class属性为c1的同一类标签
*/
.c1{
font-size:24px;
color:#CF3;
}
</style>
id选择器:选择一个标签
<style type="text/css">
/* id选择器:通过标签的id属性控制样式
举例:控制标签id属性为d1的某个标签
在同一个html页面中,不建议出现两个同名的id属性的标签
因为javascript当中选择id标签时,getElementById("id属性值")就不能出现同名。
*/
#d1{
font-size:48px;
color:#96C;
}
</style>
并集选择器:合并多个选择器的css内容
<style type="text/css">
/* 并集选择器:多个选择器的css内容相同时可合并
举例:控制标签class属性为c1或者id属性为d1的所有标签的样式
*/
.c1,#d1{
font-size:36px;
color:#09F;
}
</style>
交集选择器:选择某选择器里面的子标签
<style type="text/css">
/* 交集选择器:控制某选择器里面的子标签的样式
举例:控制所有div标签里面的span标签的样式
*/
div span{
font-size:24px;
color:#96C;
}
</style>
通用选择器:选择所有的标签
<style type="text/css">
/* 通用选择器:控制所有的标签 * 表示所有 */
*{
font-size:24px;
color:#96C;
}
</style>
伪类选择器:控制选择器在不同状态下的样式
标签的四种状态:
-
link 没有访问过的状态
-
hover 鼠标经过的状态
-
active 鼠标激活状态(按下但没有松开)
-
visited 已被访问过的状态(鼠标按下并松开)
格式:
选择器:状态
<style type="text/css">
/* 伪类选择器:控制选择器在不同状态下的样式
举例:控制a标签在四种状态下的样式
*/
/*使用link伪类控制-没有访问过的状态*/
a:link{
font-size:24px;
color:#F00;
}
/*使用visited伪类控制-已被访问过的状态(鼠标按下并松开)*/
a:visited{
font-size:30px;
color:#999;
text-decoration:none;
}
/*使用hover伪类控制-鼠标经过的状态*/
a:hover{
font-size:36px;
color:#FC6;
text-decoration:none;
}
/*使用active伪类控制-鼠标激活状态(按下但没有松开)*/
a:active{
font-size:48px;
color:#0F0;
text-decoration:underline;
}
</style>
<!-- 伪类练习:实现鼠标经过表格内容的每行,行的背景颜色变为蓝色 -->
<style type="text/css">
tbody tr:hover{ /* 交集选择器:对tbody标签里面的tr标签进行控制 */
background-color:#00F;
}
</style>
NOTE:
-
当一个标签被标签选择器和类选择器同时选中,类选择器优先
-
id选择器的级别最高
-
伪类选择器中,hover状态必须置于link状态和visited状态之后才有效。active状态必须置于hover状态之后才有效
正确的顺序: link visited hover active
2.2.2 常用的CSS属性和值
CSS文本
<style type="text/css">
body{ /* 控制body标签样式 */
/* 颜色 */
color:#69F;
/* 字符间距:字符之间两两间隔多少像素 */
letter-spacing:10px;
/* 对齐方式:默认左对齐 */
text-align:center;
/* 文本修饰:下划线:underline 中划线:line-through 上划线:overline 没有:none */
text-decoration:underline;
/* 单词间距(以空格判断是否是一个词)::字符之间两两间隔多少像素 */
word-spacing:30px;
}
</style>
CSS字体
<style type="text/css">
body{
/* 字体类型:读取系统默认的字体库,尽量使用通用的字体。
若你设置的字体别人系统中没有,则会使用默认的宋体显示
*/
font-family:"宋体";
/* 字体大小 */
font-size:24px;
/* 字体样式 正式:normal(默认) 斜(italic) 一般用于验证码 */
font-style:italic;
/* 字体粗细 bold(普通加粗,合适) 也可以自己设置加粗程度 */
font-weight:bold;
/* 简写属性(依次赋值:样式 粗细 大小 类型等,没有直接忽略) 默认值取决于浏览器*/
font:normal bold 30px "黑体";
}
</style>
CSS背景
<style type="text/css">
body{
/* 背景颜色 */
background-color:#F03;
/* 背景图片(浏览..选择本机) */
background-image:url(../a.jpg);
/* 设置背景图片是否重复/如何重复
no-repeat:不重复
repeat-x: x轴重复
repeat-y: y轴重复
repeat: x和y轴重复(默认)
*/
background-repeat:no-repeat;
/* 设置背景图片的起始位置
参数一:图片显示的起始位置 top center bottom 看图片,不是看标签
参数二:图片从指定标签的哪个位置开始显示 left center right 看标签,不是看图片
*/
background-position:top center;
/* 简写属性(依次赋值:颜色 图片 是否重复 位置等,没有直接忽略) */
background:#0FC url(../../b.jpg) no-repeat top left;
}
</style>
CSS列表
<style type="text/css">
ul{
/* 列表类型 */
list-style-type:square;
/* 设置列表符号图片 */
list-style-image:url(../a.jpg);
}
</style>
CSS表格
<style type="text/css">
table{
/* 合并表格的边框(默认分开) */
border-collapse:collapse;
}
</style>
CSS边框
<style type="text/css">
div{
/* 边框颜色 */
/*简写属性
1)默认设置方向(1-4个值):上右下左
2)如果当前方向没有设置颜色,那么取对面的颜色
*/
border-color:#9F6 #6600FF #CC66CC #33FF00;
/* 单个设置 */
border-left-color:#C93;
border-right-color:#6F3;
border-top-color:#6CF;
border-bottom-color:#93C;
/* 边框宽度 */
/*简写属性
1)默认设置方向(1-4个值):上右下左
2)如果当前方向没有设置宽度,那么取对面的宽度
*/
border-width:10px 20px 30px 40px;
/* 单个设置 */
border-left-width:20px;
border-right-width:30px;
border-top-width:20px;
border-bottom-width:30px;
/* 边框样式:设置了样式,颜色和宽度才显示的出来,因为默认没有样式
也可设置不同方向的样式
solid: 单实线
dashed: 虚线
dotted: 点
double: 双实线
*/
/*简写属性
1)默认设置方向(1-4个值):上右下左
2)如果当前方向没有设置样式,那么取对面的样式
*/
border-style:solid dotted dashed dotted;
/* 单个设置 */
border-left-style:dashed;
border-right-style:dotted;
border-top-style:double;
border-bottom-style:solid;
/* 所有边框属性的简写属性*/
border:2px solid #F00;/* 4个方向都是2px,单实线,红色 */
}
</style>
2.2.3 DIV+CSS布局(盒子模型)
盒子模型
html页面上每个标签代表一个盒子,盒子是从上往下一个一个堆砌的,所以外边距都是相对于上面的盒子。
盒子相关属性(从内往外):
-
宽度(width)和高度(height):决定盒子的容量(内容)
-
内边距(padding):决定边框的内容的距离
-
边框(border):决定盒子的厚度
-
外边距(margin):决定盒子与盒子之间的距离
firefox+firebug插件工具可以看盒子模型的布局,firebug插件工具可以临时调整预览大小,距离,厚度等。预览后OK了还得将修改更新到html文件中。
一般网页布局中用插件调,调到满意为止!!!!!
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>盒子模型</title>
<style type="text/css">
div{
/* 宽度和高度 */
width:100px;
height:100px;
/* 设置内边距 */
padding-left:10px;
padding-top:20px;
/* 设置边框 */
border:3px solid #033;
}
#d2{
/*设置外边距*/
margin-top:20px;
}
</style>
</head>
<body>
<div style="margin-bottom:10px;">div1</div><!-- 行内样式中的下外边距 -->
<div id="d2">div2</div>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>模拟QQ登录页面</title>
<style type="text/css">
/* 主div */
#main{
width:450px;
height:300px;
border:1px solid #000;
/* 设置外边距(相当于body):上右下左 */
margin:150px 0px 0px 400px;
/* 设置背景图片 */
background-image:url(QQ.jpg);
background-repeat:no-repeat;
background-position:top center;
}
/* 用户名div */
#userName{
/* 设置外边距(相当于主div):上右下左 */
margin:80px 0 0 100px;
}
/* 密码div */
#userPwd{
/* 设置外边距(相当于userName div):上右下左 */
margin:15px 0 0 100px;
}
/* 按钮div */
#btn{
/* 设置外边距(相当于userPwd div):上右下左 */
margin:15px 0 0 150px;
}
/* 注册div */
#regBtn{
margin-left:50px;
}
/* 设置用户输入框的背景 */
#nameInput{
background-image:url(profile.jpg);
background-repeat:no-repeat;
padding-left:25px;
}
/* 设置密码输入框的背景 */
#pwdInput{
background-image:url(pwd.jpg);
background-repeat:no-repeat;
padding-left:25px;
}
</style>
</head>
<body>
<!-- div看作body的内容,可以设置div的外边距,body的内边距
但二者效果不同:
设置body的外边距,表示从外往内推,div的下面也会被影响
设置div的外边距,表示从内往外推,只会影响div
-->
<div id="main">
<form>
<div id="userName">
用户名:<input id="nameInput" type="text" name="userName"/>
</div>
<div id="userPwd">
密 码:<input id="pwdInput" type="password" name="userPwd"/>
</div>
<div id="btn">
<input type="submit" value="登录"/>
<input type="button" value="注册" id="regBtn"/>
</div>
</form>
</div>
</body>
</html>
2.2.4 CSS定位
定位属性(position)
-
相对定位(relative):相对于元素原来的位置移动
-
绝对定位(absolute):相对于父标签,当前位置发生移动
-
固定定位(fixed):相对于浏览器,当前位置发生移动(不会相对于滚动条的位置发生改变) 网站的广告效果
left 向右移动
top 向下移动
margin是不会覆盖其他盒子的,但是position可能会覆盖。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>css定位</title>
<style type="text/css">
div{
width:100px;
height:100px;
border:5px solid #333;
}
#div1{
background-color:#F00;
}
#div2{
background-color:#09C;
}
#div3{
background-color:#0C0;
/* 相对定位 */
position:relative;
left:10px;
top:10px;
/* 绝对定位 */
position:absolute;
left:20px;
top:20px;
}
#div4{
width:200px;
height:200px;
border:3px solid #FC3;
background-color:#93C;
/* 绝对定位 */
position:absolute;
left:200px;
top:250px;
/* 固定定位 */
position:fixed;
left:600px;
top:400px
}
</style>
</head>
<body>
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容网站内容
<div id="div4">div4</div>
</body>
</html>