CSS的全称是什么?
英文全称:Cascading Style Sheets
中文全称:层叠样式表
CSS有几种引入方式? link 和@import 有什么区别?
有 4 种方式可以在 HTML 中引入 CSS。
1.行内样式
行内样式指的是直接在 HTML 标签中的 style 属性中添加 CSS。
示例:<div style="background: red"></div>
这通常是个很糟糕的书写方式,它只能改变当前标签的样式,如果想要多个 <div> 拥有相同的样式,你不得不重复地为每个 <div> 添加相同的样式,如果想要修改一种样式,又不得不修改所有的 style 中的代码。很显然,行内样式引入 CSS 代码会导致 HTML 代码变得冗长,且使得网页难以维护。
2.内部方式
内部方式指的是在 HTML 头部中的 <style> 标签下书写 CSS 代码。
示例:
<head>
<style>
div{
background: red;
}
</style>
</head>
内部方式的 CSS 只对当前的网页有效。因为 CSS 代码是在 HTML 文件中,所以会使得代码比较集中,当我们写模板网页时这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML 结构和 CSS 样式。因为内部的 CSS 只对当前页面有效,所以当多个页面需要引入相同的 CSS 代码时,这样写会导致代码冗余,也不利于维护,一般用于个人自己写demo。
- 外部样式
外部样式指的是使用 HTML 头部的 <head> 标签引入外部的 CSS 文件。
示例:
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
这是最常见的也是最推荐的引入 CSS 的方式。使用这种方式,所有的 CSS 代码只存在于单独的 CSS 文件中,所以具有良好的可维护性。并且所有的 CSS 代码只存在于 CSS 文件中,CSS 文件会在第一次加载时引入,以后切换页面时只需加载 HTML 文件即可。
- 导入样式
导入样式指的是使用 CSS 规则引入外部 CSS 文件。
示例:
<style>
@import url(style.css);
</style>
方法3、4两者都是外部引用CSS的方式,但是存在一定的区别:
区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
区别4:link支持使用Javascript控制DOM去改变样式;而@import不支持。
综上所述,link的好处远远大于@import
以下这几种文件路径分别用在什么地方,代表什么意思?
css/a.css为相对路径,代表与当前目录下的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为绝对路径,代表本地文件夹下a.css文件地址
/static/css/a.css为网站路径,当前服务器根目录下的/static/css的a.css文件
http://cdn.jirengu.com/kejian1/8-1.png为网站路径,http://cdn.jirengu.com/kejian1/8-1.png网络路径下的文件
如果我想在js.jirengu.com上展示一个图片,需要怎么操作?
- 把本地图片上传至某网站(图床),生成一个线上地址,然后在js.jirengu.com中加载
- 在本地打开服务器,通过localhost加载这个图片。再将图片放在js.jirengu.com(自己测试时可这样使用)
列出5条以上html和 css 的书写规范:
html
- 一定要闭合HTML标签
- 声明正确的文档类型(DocType)
- 不要使用内联样式
- 使用小写的标签名
- 同一页面,应避免使用相同的 name 与 id重名
- 标签使用必须符合标签嵌套规则
css
- 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字-
符。 - 选择器 与 { 之间必须包含空格
- 属性名 与之后的 : 之间不允许包含空格, : 与 属性值 之间必须包含空格
- 列表型属性值 书写在单行时,, 后必须跟一个空格
- 每行不得超过 120 个字符,除非单行不可分割
- 对于超长的样式,在样式值的 空格 处或 , 后换行,建议按逻辑分组
- 当一个 rule 包含多个 selector 时,每个选择器声明必须独占一行 >、+、~ 选择器的两边各保留一个空格
- 属性选择器中的值必须用双引号包围
- 属性定义必须另起一行
- 属性定义后必须以分号结尾
- 如无必要,不得为 id、class 选择器添加类型选择器进行限定
还有一个更健全的css规范,可自行查阅
截图介绍 chrome 开发者工具的功能区
- Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。
- Console:记录开发者开发过程中的日志信息,且可以作为与JS进行交互的命令行Shell。
- Sources:断点调试JS。
- Network:从发起网页页面请求Request后分析HTTP请求后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等),可以根据这个进行网络性能优化。
- Timeline:记录并分析在网站的生命周期内所发生的各类事件,以此可以提高网页的运行时间的性能。
- Profiles:如果你需要Timeline所能提供的更多信息时,可以尝试一下Profiles,比如记录JS CPU执行时间细节、显示JS对象和相关的DOM节点的内存消耗、记录内存的分配细节。
- Application:记录网站加载的所有资源信息,包括存储数据(Local Storage、Session Storage、IndexedDB、Web SQL、Cookies)、缓存数据、字体、图片、脚本、样式表等。
- Security:判断当前网页是否安全。
- Audits:对当前网页进行网络利用情况、网页性能方面的诊断,并给出一些优化建议。比如列出所有没有用到的CSS文件等。
web开发调试用的最多的就是Elements、Console、Sources、Network