目录
1.CSS概述,语法
1.1概述
html是网页的骨架(内容),css专门用作修饰网页的内容,css语法写在一个css文件中或者html的某一个部分。
1.2语法
样式表 | 举例 | 定义位置 |
---|---|---|
行级样式表 | <a href="" style="color: red; font-size: 40px;" >举例</a> | style在标签内定义 |
内嵌样式表 | <a class="a1">举例</a> | a1定义在head标签里的style内 |
外部样式表 | 导入语法:<link href="" rel="stylesheet" /> | 样式来源与外部css文件,使用需导入 |
如果它们三种同时存在时,采用的是就近原则,行级>内嵌>外部
2.样式选择器
种类 | 定义方式 | 调用方式 |
---|---|---|
标签选择器 | 标签名{样式表} | 所修饰的标签添加 |
类选择器 | .类名{样式表} | class = "类名" |
id选择器 | #id名{样式表} | id="id名" |
通配选择器 | *{样式表} | 给所有的标签添加样式 |
优先等级从高到低:id选择器>类选择器 >标签选择器>通配选择器 |
演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>样式选择器</title>
<style type="text/css">
p{
color: red;
}
.p1{
color: green;
}
.p2{
color: blue;
}
#p3{
color: yellow;
}
*{
}
.p1,#p3{ /*选择器组合:将一些共同的修饰样式可以放在一起*/
font-size: 40px;
}
</style>
</head>
<body>
<!--
当一个标签被多个选择器修饰时 注意:
例如:.p1{
color : blue;
}
*{
color:red;
font-size = 30px
}
.p1{}只会代替*{}中的color,font-size会按照*{}来修饰
-->
<p id="p3">春晓</p>
<p class="p1">春眠不觉晓,</p>
<p class="p2">处处闻啼鸟。</p>
<p class="p1">夜来风雨声,</p>
<p class="p2">花落知多少。</p>
</body>
</html>
运行到浏览器.......
3.标签分类
块级标签:标题标签、<p>、<hr>、<ul>、<table>、<form>
1.会自动换行,无论内容有多少都会独占一行,可以调整宽高。
2.默认的大小:宽与body一样,高与内容一样,没有内容高度为0
3.p标签不可以包含任何的块标签,一般使用块级标签包含行级标签
行级标签:<span>、<br/>、<a>
只占自身内容的大小,不会占一行,不能设置宽高
行级块标签:<img>、<input>、textarea
可以设置大小,但是不占一行 inlineblock
4.div和span
我们延续上篇的HTML再讲两个标签,分别是div标签和span标签。
div :块级标签,可以包含任何标签,没有默认的样式,定义什么样式就变成什么样子。
span:是一个行级标签,没有任何默认样式,主要用来选中文本。
演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>div和span</title>
</head>
<body>
<div style="background-color: #FF0000; width: 300px; height: 200px;">我爱中国</div>
<span style="color: #0000FF;">我爱中国</span>
</body>
</html>
运行到浏览器:
5.文本
px像素单位,em表示当前文本中一个文字的大小。
样式修饰 | 作用 |
---|---|
color: red; | 修改文本字体颜色 |
font-size: 20px; | 修改字体大小 |
font-family: 楷体; | 字体样式 |
font-weight:700; | 字体粗细 |
text-decoration: underline; | 下划线 |
text-decoration: line-through; | 中间穿透线 |
font-style: italic; | 斜体 |
line-height: 50px; | 行高 |
letter-spacing: 20px; | 字与字之间的间距 |
text-indent: 2em; | 首行缩进两个字体的大小 |
text-decoration: none; | 定义标准文本,可去除超链接默认的下划线 |
6.列表
样式修饰 | 作用 |
---|---|
list-style-image: url(img/Male.gif); | 给列表项前加上图标 |
list-style-type: none | 表项前面的符号 |
list-style-position: outside; | 图标的位置 (分离向外) |
简写方式(先后顺序无要求):list-style: outside url(img/Female.gif) none; |
7.盒子模型(重点)
盒子模型的思想是把块级标签想象成一个盒子,分别有内容区,内边距,外边距以及边框。
在CSS中可以用padding(内边距),margin(外边距),border(边框),width(内容区宽)和height(内容
区高),以此来调节标签所处的位置以及大小。
举例:div
1.div是一个块级标签,可以认为是一个盒子
2.<div></div> 默认宽与body一样,高是0
3.<div>div</div>默认宽与body一样,高是内容的高度
4.div三个字母都是在内容区中放置
5.width和height都是设置内容区的大小,而不是整个标签的大小6.内边距就是内容区到边框的距离,不能放置内容
7.外边距,不影响标签的大小,但位置会有所改变
8.div的区域是内容加内边距
演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>盒子模型</title>
<style type="text/css">
*{
margin: 0px; /*取消body的边距*/
padding: 0px;
}
.p1{
width: 200px;/* 内容区的宽 */
height: 200px;/* 内容区的高 */
background-color: #0000FF;
color: white;
padding: 10px; /* 内边距就是内容区到边框的距离,不能放置内容*/
/* padding : 5px 6px 7px 8px 上 右 下 左 */
/* border-top-width: 1px;
border-top-style: solid;
border-top-color: red; 繁琐*/
border-top: 5px solid red;
margin-top : 10px /*外边距,不影响标签的大小,但位置会有所改变*/
}
</style>
</head>
<body>
<div>4</div>
<div class="p1">div</div>
<div>1</div>
</body>
</html>
运行到浏览器:
8. 伪类
伪类相对来说比较简单,自行理解。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>伪类</title>
<style type="text/css">
.in1{
background-color: lightcyan;
}
.in1:hover{ /* hover表示当鼠标悬停在这个标签上时,就会进入到这个样式表中 */
background-color: saddlebrown;
}
a{
color: #0000FF;
}
a:hover{
color: #008000;
}
a:active{ /*active表示当鼠标点击这个标签时,就会进入到这个样式表中 */
background-color: orange;
}
.in2:focus{ /* foucus 输入标签点击聚焦,就会进入到这个样式表中*/
background-color: blueviolet;
}
</style>
</head>
<body>
<input type="button" class="in1" value="保存"/>
<input type="text" class="in2"/>
<a href="">非凡</a>
</body>
</html>
9.透明度
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>透明度</title>
<style type="text/css">
img{
opacity: 0.5; /* 显示度数 1表示全显示 0表示透明*/
}
</style>
</head>
<body>
<img src="./img/logo.gif" />
1111
</body>
</html>
10.背景
<html>
<head>
<meta charset="utf-8">
<title>背景练习</title>
<style type="text/css">
p{
width: 800px;
height: 600px;
background-color: blanchedalmond;/* 给段落加背景颜色 */
background-image: url(./img/logo.gif); /* 背景图片 如果背景图片尺寸不否,那么图片就会向左右上下重复延伸*/
background-repeat: no-repeat;/* 背景不重复 */
background-position: center;
}
</style>
</head>
<body>
<p>
这是段落
</p>
</body>
</html>
11.display标签类型转换
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>display属性</title>
</head>
<body>
<!--
display :设置标签的类型
-->
<!-- 块级变行级 -->
<p style="display: inline;">aaaaaaa</p>sdasdasdas
<!-- 行级变块级 -->
<a style="display: block;" href="">非凡</a>
<!-- 让标签在网页中消失,不占空间 -->
<a style="display: none;" href="">百度</a>
</body>
</html>
12.定位
12.1相对定位
开启相对定位,才能设置位移,否则没有任何变化 相对自己改变位置,并且原来的空间不会被其他标签占用。
移动参照物是自己。
演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>定位</title>
<style type="text/css">
.box1{
width: 100px;
height:100px;
background-color: #0000FF;
position: relative;/* 开启相对定位,才能设置位移,否则没有任何变化 相对自己改变位置,并且原来的空间不会被占用*/
left: 100px;
top: 100px;
}
.box2{
width: 100px;
height:100px;
background-color: #FF0000;
}
</style>
</head>
<body>
<div class="box1">
div1
</div>
<div class="box2">
div2
</div>
</body>
</html>
运行到浏览器:
12.2绝对定位
开启绝对定位,标签会脱离了文档流,漂浮起来 原来的空间会被其他的标签占用。
移动参照物:离他最近的开启了定位的祖先标签,如果都没有,那么就以浏览器的边框作为参照物 。
演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>绝对定位</title>
<style type="text/css">
.box1{
width: 100px;
height:100px;
background-color: #0000FF;
position: absolute;/*开启绝对定位*/
left: 100px;
top: 100px;
}
.box2{
width: 100px;
height:100px;
background-color: #FF0000;
}
.box3{
width: 200px;
height: 200px;
background-color: #FFA500;
position: relative;/*开启了相对定位,此时div1移动的参照物就是div3*/
}
</style>
</head>
<body>
<div class="box3">
div3
<div class="box1">
div1
</div>
</div>
<div class="box2">
div2
</div>
</body>
</html>
运行到浏览器:
13.浮动
div是块级标签,如果要把两个div放到一行,就要用到浮动。
浮动就是从原来的(二维平面)漂浮起来了,他在原来的空间就释放了,下面的标签就会上移,浮动后的标签宽度默认是内容大小,所以需要设置尺寸。
演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>浮动</title>
<style type="text/css">
.box1{
background-color: #0000FF;
float: left;
width: 200px;
}
.box2{
background-color: #FF0000;
float: left;
width: 200px;
}
</style>
</head>
<body>
<div class="box1">div1</div>
<div class="box2">div2</div>
</body>
</html>
运行到浏览器:
由上面的演示我们发现,两个标签都脱离文档流,都飘起来了,body里面没有内容,但是如果两个标签下面还有内容的话,如果没有使用浮动,是不是就跑到div1下面去了?
就比如:
如果这样的话,盒子的高度还是0,并没有被内容所撑起来,所以我们需要清除左浮动,会将盒子撑起来,如果不清除浮动的话,以后下面的内容就会跑到上面去。
即<div style="clear: left;"></div>
修改:
下篇我们谈谈javaScript..........