CSS 基础知识

作者: 熊蛋子17 | 来源:发表于2017-11-08 21:53 被阅读0次

    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文件等

    相关文章

      网友评论

        本文标题:CSS 基础知识

        本文链接:https://www.haomeiwen.com/subject/cfwrmxtx.html