CSS基础
1. CSS简述
CSS(Cascading Style Sheets) 中文全称为层叠样式表 。他是一种样式表语言用来描述HTML或者是XML文档中的呈现。CSS 描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。
主线历史
- 在1990年第一代的HTML的文档被发明时候样式表就以各种形式出现了,不同的浏览器结合了它们各自的样式语言,读者可以使用这些样式语言来调节网页的显示方式。一开始样式表是给读者用的,最初的HTML版本只含有很少的显示属性,读者来决定网页应该怎样被显示。
- 1994年哈肯·维姆·莱提出了CSS的最初建议。伯特·波斯(Bert Bos)当时正在设计一个叫做“Argo”的浏览器,他们决定一起合作设计CSS。
- 哈肯于1994年在芝加哥的一次会议上第一次展示了CSS的建议,1995年他与波斯一起再次展示这个建议。当时W3C刚刚创建,W3C对CSS的发展很感兴趣,它为此组织了一次讨论会。哈肯、波斯和其他一些人(比如微软的托马斯·里尔登)是这个项目的主要技术负责人。1996年底,CSS已经完成。1996年12月CSS要求的第一版本被出版。
2. CSS有几种引入方式?link和@import有什么区别
一般来说CSS的引入方式主要是有4种 分别为一下几种情况
- 行内式
主要表现为 :行内式是在标记的style属性中设定CSS样式。这种方式没有体现出CSS的优势,不推荐使用。格式如下:
<div style = "width:100px;height:100px;>我是行内样式</div>
- 嵌入式
主要表现为: 嵌入式是将CSS样式集中写在网页的<head></head>
标签对的<style></style>
标签对中。 缺点是对于一个包含很多网页的网站,在每个网页中使用嵌入式,进行修改样式时非常麻烦。单一网页可以考虑使用嵌入式。格式如下:
<head>
<style type="text/css">
...此处写CSS样式
</style>
</head>
- 导入式
主要表现为:一个独立的.css文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,<style>标记也是写在<head>标记中。 导入式会在整个网页装载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。这是导入式固有的一个缺陷。使用的语法如下:
<style type="text/css">
@import"mystyle.css"; 此处要注意.css文件的路径
</style>
- 链接式
也是将一个.css文件引入到HTML文件中,但它与导入式不同的是链接式使用HTML规则引入外部CSS文件,它在网页的<head></head>
标签对中使用<link>标记来引入外部样式表文件。使用链接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果的,它不会象导入式那样先显示无样式的网页,然后再显示有样式的网页,这是链接式的优点。使用语法如下:
<link href="mystyle.css" rel="stylesheet" type="text/css"/>
论述link与@import的区别
因为对于两种方式,究其根源其实都是为了CSS的链接,但是就像写法一样,世界上不可能存在相同的叶子。经过资料查询主要论述的区别有一下几点
老祖宗的差别。
link属于XHTML标签,而@import完全是CSS提供的一种方式。然而link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。加载顺序的差别。
当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候相当明显影响观感体验。兼容性的差别。
由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。使用dom控制样式时的差别。
当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。
3. 以下这几种文件路径分别用在什么地方,代表什么意思?
路径 | 意义 |
---|---|
css/a.css | 当前目录下的css文件夹中的a.css |
./css/a.css | 当前目录下的css文件夹中的a.css |
b.css | 当前目录下的b.css文件 |
../imgs/a.png | 上级目录中的imgs 文件夹中的a图片 |
/Users/hunger/project/css/a.css | 本地绝对路径中的a.css文件 |
/static/css/a.css | 网站中也可以使用相对路径 |
http://cdn.jirengu.com/kejian1/8-1.png | 指向其他网站上的图的路径 |
4. 如果我想在js.jirengu.com上展示一个图片,需要怎么操作?
将图片上传至图床,获取链接,插曲img属性中
上传到服务器内部并用相对路径读取。
5. 列出5条以上html和 css 的书写规范
HTML的书写规范
文档类型声明及编码: 统一为html5声明类型<!DOCTYPE html>; 编码统一为<meta charset=”gbk” />, 书写时利用IDE实现层次分明的缩进。
非特殊情况下样式文件必须外链至<head>…</head>之间;非特殊情况下JavaScript文件必须外链至页面底部。
引入样式文件或JavaScript文件时, 须略去默认类型声明。
引入JS库文件, 文件名须包含库名称及版本号及是否为压缩版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式为库名称+插件名称, 比如jQuery.cookie.js。
所有编码均遵循xhtml标准, 标签 & 属性 & 属性命名 必须由小写字母及下划线数字组成, 且所有标签必须闭合, 包括 br 等; 属性值必须用双引号包括;
CSS的书写规范
使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。
选择器 与 { 之间必须有空格
属性名 与之后的 : 之间不允许包含空格, : 与 属性值 之间必须包含空格。
列表型属性值 书写在单行时,, 后必须跟一个空格。font-family: Arial, sans-serif;
每行不得超过 120 个字符,除非单行不可分割。
当一个 rule 包含多个 selector 时,每个选择器声明必须独占一行。
6. 截图介绍 chrome 开发者工具的功能区
Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。
- Console:控制台,记录开发者开发过程中的日志信息
- Sources:主要用于查看web站点的资源列表及javascript代码的debug
- Network:从发起网页页面请求Request后分析HTTP请求后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等),可以根据这个进行网络性能优化。
- Timeline:记录并分析在网站的生命周期内所发生的各类事件,以此可以提高网页的运行时间的性能。
- Application:记录网站加载的所有资源信息,包括存储数据(Local Storage、Session Storage、IndexedDB、Web SQL、Cookies)、缓存数据、字体、图片、脚本、样式表等。
- Audits:对当前网页进行网络利用情况、网页性能方面的诊断,并给出一些优化建议。比如列出所有没有用到的CSS文件等