名词解释
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
基础介绍
- 层叠特性:在css中,元素最终呈现在用户眼中的效果,往往是经过多种样式重叠之后形成的。
- 标准文档流
- 网页解析顺序,从上向下,从左向右
- 在标准文档流当中,元素被分类
- 块级元素
特点:
独占一行
如果不设置宽度,那么就会占满父元素宽度的百分之百
可以设置width、height、背景色等样式内容
可以当作容器包含其他标签。
例如:div p ul,li - 行内元素
特点:
与其他的行内元素并列一行
不能设置宽度或者高度,他们的宽度是内容的总宽度,高度是行高
例如 :a em - 行内块元素
特点:
即可以设置宽度和高度还可以和别的元素并列一行
一般情况下需要通过css属性转换才能变成行内块元素
- 块级元素
文本流之说
文档流指的是网页元素内容的排列方式,而文本流则指的是网页当中
文本内容。
css使用方式
- 内部样式表(位于标签的内部)
<style type="text/css">
/*css语句*/
</style>
- 外部样式表
<link rel="stylesheet" type="text/css" href="目标文件的路径及文件名全称" />
或者
<style type="text/css">
@import url(目标文件的路径及文件名全称);
</style>
-
差别:
-
差别1:本质的差别:link属于XHTML标签,而@import完全是CSS提供的一种方式。
差别2:加载顺序的差别:当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候明显。
差别3:兼容性的差别:@import是CSS2.1提出的,所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。
差别4:使用dom(document object model文档对象模型 )控制样式时的差别:当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的.
- 内联样式表(在html元素的内部)
<div style="width:500px; height:200px;"></div>
-
-
优先级:
-
A、内联样式表的优先级别最高
B、内部样式表与外部样式表的优先级和书写的顺序有关,后书写的优先级别高。
-
A、内联样式表的优先级别最高
语法
接下来我们来介绍一下CSS中的语法
选择器
-
什么是选择器?
- 帮助我们在css中找到html的元素并且定位到指定元素的身上。
三大基础选择器: id class html
-
高级选择器
-
*
通配符
.d1,.d2 {}
群组选择器
.d1 .d3 {}
后代选择器
.d1>.d2{}
子元素选择器
伪类选择器
a:link
{属性:属性值;}超链接的初始状态;
a:visited
{属性:属性值;}超链接被访问后的状态;
a:hover
{属性:属性值;}鼠标悬停,即鼠标划过超链接时的状态;
a:active
{属性:属性值;}超链接被激活时的状态,即鼠标按下时超链接的状态;
Link–visited–hover–active。必须按照顺序来使用,可以省略某一个但是顺序不能乱
选择器权重比较
-
-
三大基础选择器
-
id>class>html
权重比较
id、class、html选择器数量
-
id>class>html
- 权重比较
!important:提高单个属性权重为最大值
属性和属性值
选择器{
属性:属性值;
}
一定要写语句结束符,否则可能导致代码压缩之后出现问题。
css常用核心属性
文本属性
-
-
font-size:字体大小--------------单位:px em …
- 为了减小系统间的字体显示差异,IE Netscape Mozilla的浏览器制作商于1999年召开会议,共同确定16px/ppi为标准字体大小默认值,即1em.默认情况下,1em=16px,0.75em=12px; rem
-
-
font-family:文本字体------------------"font-family:字体1,字体2,字体3;
-
浏览器首先会寻找字体
1、如存在就使用改字体来显示内容,如在字体1不存在的情况下,则会寻找字体2,如字体2也不存在,按字体3显示内容,如果字体3 也不存在;则按系统默认字体显示;
当字体是中文字体时,需加双引号;
当英文字体由多个单词组成时,需加双引号如(“Times New Roman”)
当英文字体只有一个单词组成是不加双引号如:(Arial);
Windows中文版本操作系统下,中文默认字体为宋体或者新宋体,英文字体默认为Arial.
-
浏览器首先会寻找字体
-
-
color: 文本颜色
- color:颜色值;red/#f00/rgb(255,0,0)
-
-
font-weight:文字加粗
-
font-weight:bolder(更粗的)/bold(加粗)/normal(常规)/100—900
在css规范中,把字体的粗细分为9个等级,分别为100——900,其中100对应最轻的字体变形,而900对应最重的字体变形
-
font-weight:bolder(更粗的)/bold(加粗)/normal(常规)/100—900
-
-
font-style:文本倾斜
-
font-style:italic/oblique/normal(取消倾斜,常规显示);
italic和oblique都是倾斜的文字, 但区别在于Italic是指斜体字,而Oblique是倾斜的文字,对于没有斜体的字体应该使用Oblique属性值来实现倾斜的文字效果.
-
font-style:italic/oblique/normal(取消倾斜,常规显示);
-
-
text-align:水平对齐方式
- text-align:left左/right右/center居中/justify两端对齐(在部分浏览器中,对于中文不起作用);} 只针对文本或图片
-
-
vertical-align: 垂直对齐方式
- vertical-align:top上/bottom下/middle居中/baseline基线(某些特定的元素类型起作用);
-
-
line-height:文字行高
-
line-height:normal/value;}line-height:20px; line-height:2em; (当行高的单位省略时,默认为em)
当单行文本的行高等于容器高时,可实现单行文本在容器中垂直方向居中对齐;
当单行文本的行高小于容器高时,可实现单行文本在容器中垂直中齐以上;
当单行文本的行高大于容器高时,可实现单行文本在容器中垂直中齐以下(IE6及以下版本存在浏览器兼容问题)
-
line-height:normal/value;}line-height:20px; line-height:2em; (当行高的单位省略时,默认为em)
-
-
text-decoration:文本修饰
-
text-decoration:none/underline/overline/line-through
none:没有修饰
underline:添加下划线
overline:添加上划线
line-through:添加删除线
-
text-decoration:none/underline/overline/line-through
-
-
text-indent:首行缩进
-
text-indent:value;
1)text-indent可以取负值;
2)text-indent属性只对第一行起作用。
-
text-indent:value;
-
-
text-transform:检索英文字母大小写
- text-transform:none无转换/capitalize首字母大写/uppercase全都大写/lowercase全都小写;
-
-
letter-spacing:字间距
-
letter-spacing:value;
控制英文字母或汉字的字距
-
letter-spacing:value;
-
-
word-spacing:词间距
-
word-spacing:value;
控制英文单词词距
-
word-spacing:value;
-
-
font:文本简写属性
-
font:bolder italic 12px/1.5em “宋体”;
简写时,字体和字号是必备font属性的简写: 字号,行高,字体 说明:font的属性值应按以下次序书写(各个属性之间用空格隔开) 顺序: font-style font-weight font-size / line-height font-family
(1)简写时 , font-size和line-height只能通过斜杠/组成一个值,不能分开写。
(2) 这种简写法只有在同时指定font-size和font-family属性时才一起作用,如果你没有设定font-weight , font-style , 他们会使用缺省值。
-
列表属性
-
-
列表符号样式
- list-style-type:disc(实心圆)/circle(空心圆)/square(实心方块)/none(去掉列表符号);
-
-
使用图片作为列表符号
-
list-style-image:url(所使用图片的路径及全称);
定义列表符号的位置
list-style-position:outside(外边)/inside(里边);
-
list-style-image:url(所使用图片的路径及全称);
-
-
简写
- list-style:none;
背景属性
-
-
background-color
- 背景颜色
-
-
background-image
-
背景图片
url()
可以使用本地图片也可以使用在线图片
-
背景图片
-
-
background-repeat
-
背景图片重复平铺
no-repeat不平铺/repeat平铺/repeat-x X轴平铺/repeat-y Y轴平铺
-
背景图片重复平铺
-
-
background-position
-
背景图片的位置
left/center/right/数值 top/center/bottom/数值;
水平方向上的对齐方式(left/center/right)或值
垂直方向上的对齐方式(top/center/bottom)或值
-
背景图片的位置
-
-
background-position:值1 值2;
-
两个值 :第一个值表示水平位置的值,第二个值:表示垂直的位置。
当两个值都是center的时候写一个值就可以代表的是水平位置和垂直位置 ;
当元素小背景图大的时候,想显示右下方的背景图,通过负值来调整背景图的位置;
-
两个值 :第一个值表示水平位置的值,第二个值:表示垂直的位置。
-
-
background-attachment
-
背景图片固定
background-attachment:fixed固定/scroll滚动;
fixed 固定,不随内容一块滚动,根据可视窗口固定位置;
scroll:随内容一块滚动。
-
背景图片固定
-
Tip:
-
常用图片格式
1) jpg :有损压缩格式,靠损失图片本身的质量来减小图片的体积,适用于颜色丰富的图像;(像素点组成的,像素点越多会越清晰 )
2) gif:无损压缩格式,支持透明,支持动画,适用于颜色数量较少的图像;
3) png:无损压缩格式,支持透明,不支持动画,(是fireworks的 源文件格式),适用于颜色数量较少的图像;
4) Webp:WebP是Google新推出的影像技术,它可让网页图档有效进行压缩,同时又不影响图片格式兼容与实际清晰度,进而让整体网页下载速度加快。
浮动属性
-
语法
- float:left/right/none; 为什么浮动?
- 满足我们的布局需求 特点
-
脱离了标准文档流,但是没有脱离标准文本流
在一个父元素当中,如果一个子元素发生了浮动,那么最好也让其他的子元素发生浮动
浮动带来的影响
会影响后续元素的布局
-
清除浮动clear属性
-
none
默认值,允许两边存在浮动的情况
left
清除左浮动/不允许左边有浮动对象
right
清除右浮动/不允许右边有浮动对象
both
清除两端浮动/不允许有浮动对象
Tip:
- 对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素
常见的清除浮动影响的css写法
.clearfix {
*zoom: 1
}
.clearfix:before, .clearfix:after {
content: " ";
display: table
}
.clearfix:after {
clear: both
}
css注释
/*注释内容*/