CSS
概述
CSS(Cascading Style Sheets) 层叠样式表
,CSS
是一种用来表现HTML
或XML
等文件样式的计算机语言,它可以静态地修饰网页,将网页内容和显示样式进行分离,方便了使用多个样式对同一个html
的元素进行修饰,提高了后期样式代码的可维护性,并增强了网页的显示效果功能。同时还可以配合各种脚本语言动态地对网页各元素进行格式化。
一、CSS优点
1、样式定义多样
CSS
提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。
2、易于使用和修改
CSS
可以将样式定义在HTML
元素的style
属性中,也可以将其定义在HTML
文档的header
部分,也可以将样式声明在一个专门的CSS
文件中,以供HTML
页面引用。总之,CSS
样式表可以将所有的样式声明统一存放,进行统一管理。
3、可以压缩页面
在使用HTML
定义页面效果的网站中,往往需要大量或重复的HTML
标签,使页面文件的大小增加。而将样式的声明单独放到CSS
样式表中,可以大大的减小页面的体积,这样在加载页面时使用的时间也会大大的减少。
4、将内容展示和样式控制分离
降低耦合度,在工作过程中将内容和样式分开让分工协作更容易,进而提高开发效率。
5、多页面应用
CSS
样式表可以单独存放在一个CSS
文件中,这样我们就可以在多个页面中使用同一个CSS
样式表。CSS
样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。
二、CSS的基本使用
1、 CSS与html结合方式
内联样式
:在标签内部使用的方式,我们可以利用标签中style
属性来改变每个标签的显示样式。这种方式比较灵活,可以单独控制某个元素样式,但是当相同标签比较多时会比较麻烦,适合局部修改 。
<!-- 内联样式 -->
<div style="color:red;"> hello </div>
内部样式
:在head
标签内定义style
标签,style
标签的标签体内容就是css
代码,该方式的作用范围是整个页面,可以对页面中的标签进行统一设置,但是对单个标签不够灵活。
...
<style type="text/css">
div {color:blue;}
</style>
</head>
<div>hello</div>
外部样式
:在使用外部样式时,首先我们应该先创建一个外部的.css
文件,并在.css
文件中进行添加相应的属性配置。
使用外部的css
文件有两种方式:导入式、链接式
导入式
:在style
标签中,使用@import
导入对应路径的css
文件
<style type="text/css">
@import "css/a.css";
</style>
</head>
<div>hello</div>
链接式
:在head
标签内,定义link
标签,引入外部的资源文件
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="css/a.css"><!--rel:当前页面与href所指定文档的关系||href:css文件地址-->
</head>
<div>hello</div>
link
和@import
方式是有一定区别的:其中link
所有浏览器都支持,@import
某些版本低的IE不支持,而且@import
是等待html
加载完成才加载,其中不支持js
动态修改,而link
是解析到这个语句,就已经加载了。在上面的方式中,我们可以看出,它们的作用范围是不同的,而在我们的开发过程中主要使用后两种方式。
2、CSS的常用语法
* 格式:
选择器 {
属性名1:属性值1;
属性名2:属性值2;
...
}
* 选择器:筛选具有相似特征的元素
* 注意:
* 每一对属性需要使用;隔开,最后一对属性可以不加;
三、CSS中的选择器
1、选择器的作用
筛选具有相似特征的元素
2、 选择器的分类
2.1 基础选择器
id选择器
:选择具体的id
属性值的元素.建议在一个html
页面中id
值唯一
语法:#id属性值{}
元素选择器
:选择具有相同标签名称的元素
语法:标签名称{}
注意:id选择器优先级高于元素选择器
类选择器
:选择具有相同的class
属性值的元素。
语法:.class属性值{}
注意:类选择器选择器优先级高于元素选择器
2.2 扩展选择器
- 选择所有元素:
语法:*{}
- 并集选择器:
语法:选择器1,选择器2{}
- 子选择器:筛选选择器1元素下的选择器2元素
语法:选择器1 选择器2{}
- 父选择器:筛选选择器2的父元素选择器1
语法:选择器1 > 选择器2{}
- 属性选择器:选择元素名称,属性名=属性值的元素
语法:元素名称[属性名="属性值"]{}
- 伪类选择器:选择一些元素具有的状态
语法:元素:状态{}
状态:link:初始化的状态、visited:被访问过的状态、active:正在访问状态、hover:鼠标悬浮状
四、CSS的常用属性
1、字体属性
.font-size:设置字体大小
.font-family:设置文字的字体,常见的值为 :黑体,宋体,楷体等
.font-style:规定斜体字,常见的值:
normal - 文本正常显示
italic - 文本斜体显示 字体斜体
oblique - 文本倾斜显示 变形斜体
.font-weight 属性设置文本的粗细。关键字 100 ~ 900 为字体指定了 9 级加粗度。
100 对应最细的字体变形,900 对应最粗的字体变形。
数字 400 等价于 normal,而 700 等价于 bold。
font:italic bold 30px "幼圆","黑体"; /*style weight size family swsf*/
2、文本属性
.color:设置文本颜色
.text-indent:缩进元素中文本的首行,取值类型如下:
text-indent:5em;表示此段落第一行缩进5个字符的宽度
text-indent:20%:表示此段落第一行缩进父容器宽度的百分之二十
.text-decoration:
none:会关闭原本应用到一个元素上的所有装饰
underline: 添加下划线
overline:在文本的顶端画一个上划线
line-through:在文本中间画一个贯穿线
blink:让文本闪烁(无效果)
.text-align:一个元素中的文本行互相之间的对齐方式,值有left(左对齐)、right(右对齐) 和 center(居中)
.word-spacing: 字符之间的间隔
.letter-spacing: 单词或者字母之间的间隔
.line-height:设置行高 line-height:25px;
3、背景属性
.background-color:设置背景颜色,默认透明
.background-image:url("图片路径"):设置背景图片
.background-repeat:repeat-y:只在垂直方向都平铺
repeat-x:只在水平方向都平铺
repeat:在水平垂直方向都平铺
no-repeat:任何方向都不平铺
.background-position: 改变图像在背景中的位置。top、bottom、left、right 和 center
4、列表属性
.list-style-type:decimal;改变列表的标志类型
.list-style-image: url("images/dog.gif");用图像表示标志
.list-style-position: inside;确定标志出现在列表项内容之外还是内容内部
list-style: decimal url(img/001.png) inside;
去掉样式:
list-style:none;
list-style-type:none;
5、轮廓属性
.width:设置元素的宽度
.height:设置元素的高度
显示属性(display)
.display: none 不显示
block:块级显示
inline:行级显示
inline-block:行级块
轮廓(outline)
绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
常用属性:
.outline-style:solid(实线)/dotted(虚线)/dashed(虚线,虚线的每段较长)/double(框为空心);设置轮廓的样outline-color:red;设置轮廓的颜色
.outline-width:10px设置轮廓的宽度
6、浮动属性
浮动(float)的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
7、clear属性
.left 在左侧不允许浮动元素。
.right 在右侧不允许浮动元素。
.both 在左右两侧均不允许浮动元素。
.none 默认值。允许浮动元素出现在两侧。
.inherit 规定应该从父元素继承 clear 属性的值。
8、定位属性
.静态定位(默认定位方式)static
.相对定位(relative)
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留
.绝对定位(absolute)
元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框.
.固定定位(fixed)
元素框的表现类似于将 position 设置为 fixed,不过其包含块是视窗本身。
9、边框属性
.border-style:边框样式,值有以下情况:
solid:实线
double:空心线
dashed:虚线组成的边框
dotted:圆点组成的边框
.border-color:边框颜色
.border-width:边框宽度
.border: 1px solid red;
10、外边距属性
.margin:外间距,边框和边框外层的元素的距离
.margin:四个方向的距离(top right bottom left)
.margin-top:
.margin-bottom:
.margin-left:
.margin-right:
11、内边距属性
.padding:内间距,元素内容和边框之间的距离((top right bottom left))
.padding-left:
.padding-right:
.padding-top:
.padding-bottom: