CSS
全称是 Cascading Style Sheets(层叠样式表)
- 样式,就是html页面显示出来的样子,CSS就是用来藐视HTML是什么样子的
- 层叠,层叠是指CSS的样式有一定的优先级,对于一个元素当CSS样式产生冲突时以优先级最高的为准
CSS层叠是指CSS样式在针对同一元素配置同一属性时,依据层叠规则(权重)来处理冲突,选择应用权重高的CSS选择器所指定的属性,一般也被描述为权重高的覆盖权重低的,因此也称作层叠。每个CSS选择器都会有一个权重(行内1000,id100,class10,tag1、可以这样认为),当两个选择器同时配置同一元素的同一属性时(比如一个设置color:red,另一个color:black),就会产生冲突,而解决冲突的方案就是CSS选择器的权重,权重高的来覆盖权重低的。
CSS有三种引入方式
- 外部链接引入
- link引入 link是html的标签,通常放在head中,当然也可在任何地方使用
<head>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
- import引入 @import属于CSS语法只能在CSS文件中活着style标签中使用
<style>
@import url("hello.css");
@import "world.css";
</style>
- style标签(内部样式)
<style type="text/css">
h1 {
color: red;
font-size: 20px;
}
</style>
- 内联属性
<h1 style="color: red; font-size: 20px;"></h1>
以下这几种文件路径分别用在什么地方,代表什么意思?
css/a.css 相对路径,当前目录下css文件夹中a.css文件
./css/a.css 相对路径,和上一个一样
b.css 相对路径 本文件夹下的b.css文件
../imgs/a.png 上层目录下imgs文件夹中a.png文件
/Users/hunger/project/css/a.css 本地绝对路径 自己调试时可用
/static/css/a.css 网站相对路径 index.html所在目录依次寻找static、css、a.css目录与文件 (网络路径) 用于引入在同一服务器下的资源
http://cdn.jirengu.com/kejian1/8-1.png 网站绝对路径 用于引入一个其他服务器的资源时
如果我想在js.jirengu.com上展示一个图片,需要怎么操作?
- 把如片放到js.jirengu.com上面的服务器中,然后引用
![](/kejian1/8-1.png)
- 获取图片的网站全路径,然后引用
![](http://upload-images.jianshu.io/upload_images/5891613-44f1545c10769c07.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
html和 css 的书写规范
语法不区分大小写,但建议统一使用小写
不使用内联的style属性定义样式
id和class使用有意义的单词,分隔符建议使用-
有可能就是用缩写
属性值是0的省略单位
块内容缩进
属性名冒号后面添加一个空格
@import与link的差异
- link属于XHTML标签,而@import是CSS提供的;
link标签除了可以加载CSS外,还可以做很多其它的事情,@import就只能加载CSS了。
- link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
- 页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
- link支持使用Javascript控制DOM去改变样式;而@import不支持。
- @import可以在css中再次引入其他样式表
- 优先级
关于优先级设置样式的方式:行内样式、内联样式、外联样式、导入样式
当@import与内联样式<style></style>
一起时,内联样式>导入样式
除了上述情况,其它时候以样式加载顺序为参考,后加载的优先级越高。(已经测试过,也可以参照这里)记住当测试时,必须对同一个元素使用同样的选择符进行测试,否则会出现选择符权重的干扰。其他事项
使用import时需要注意的地方:该规则必须在样式表头部最先声明。并且其后的分号是必需的,如果省略了此分号,外部样式表将无法正确导入,并会生成错误信息。