iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >学习web前端,必须要掌握的CSS原理
  • 532
分享到

学习web前端,必须要掌握的CSS原理

2023-06-03 12:06:27 532人浏览 安东尼
摘要

从事WEB前端开发的人都与CSS打交道很多,有的人也许不知道CSS是怎么去工作的,写出来的CSS浏览器是怎么样去解析的呢?当这个成为我们提高CSS水平的一个瓶颈时,是否应该多了解一下呢?我还是要推荐下我自己创建的web前端资料分享群6067

从事WEB前端开发的人都与CSS打交道很多,有的人也许不知道CSS是怎么去工作的,写出来的CSS浏览器是怎么样去解析的呢?当这个成为我们提高CSS水平的一个瓶颈时,是否应该多了解一下呢?

我还是要推荐下我自己创建的web前端资料分享群606721798,这是web前端学习交流的地方,不管你是小白还是大牛,小编都欢迎,不定期分享干货,包括我整理的一份适合零基础学习web前端的资料和入门教程

一、浏览器的发展与CSS

网页浏览器主要通过 Http 协议连接网页服务器而取得网页, HTTP 容许网页浏览器送交资料到网页服务器并且获取网页。目前最常用的 HTTP 是 HTTP/1.1,这个协议在 RFC2616 中被完整定义。HTTP/1.1 有其一套 Internet Explorer 并不完全支援的标准,然而许多其他当代的网页浏览器则完全支援这些标准。网页的位置以 URL(统一资源定位符)指示,此乃网页的地址;以 http: 开首的便是通过 HTTP协议登陆。很多浏览器同时支援其他类型的 URL 及协议,例如 ftp: 是 FTP(档案传送协议)、Gopher: 是 Gopher 及 https: 是 HTTPS(以SSL加密的HTTP)。

早期的网页浏览器只支援简易版本的html。专属软件的浏览器的迅速发展导致非标准的 HTML 代码的产生。但随着 HTML 的成长,为了满足设计师的要求,HTML 获得了很多显示功能。随着这些功能的增加外来定义样式的语言越来越没有意义了。

1994年哈坤·利提出了 CSS 的最初建议。伯特·波斯(BertBos)当时正在设计一个叫做 Argo 的浏览器,他们决定一起合作设计CSS。

当时已经有过一些样式表语言的建议了,但 CSS 是第一个含有“层叠”的主意的。在 CSS 中,一个文件的样式可以从其他的样式表中继承下来。读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承,或“层叠”作者的样式,这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合各人的爱好。

1997年初,W3C 内组织了专门管 CSS 的工作组,其负责人是克里斯·里雷。这个工作组开始讨论第一版中没有涉及到的问题,其结果是1998年5月出版的第二版要求。到2007年为止,第三版还未完备。

二、浏览器是如何渲染页面和加载页面

为什么有些网站打开的时候会加载会很慢,而且是整个页面同时显示的,而有些网站是从顶到下逐步显示出来的?要搞懂这个可以先从下面这个常规流程开始:

浏览器下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。

在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完)。

如果遇到语义解释性的标签嵌入文件(js脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。

并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。

样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。

JS、CSS中如有重定义,后定义函数将覆盖前定义函数。

这里关键的是第2-5这三点。渲染效率与下面三点有关:

CSS 选择器的查询定位效率

浏览器的渲染模式和算法

要进行渲染内容的大小

三、什么是 CSS 以及 CSS 的优点

什么是 CSS?

  • CSS 是 Cascading Style Sheets(层叠样式表)的简称。

  • CSS 语言是一种标记语言,它不需要编译,可以直接由浏览器解释执行(属于浏览器解释型语言)。

  • 在标准网页设计中 CSS 负责网页内容 (XHTML)的表现。

  • CSS 文件也可以说是一个文本文件,它包含了一些 CSS 标记,CSS 文件必须使用 css 为文件名后缀。

  • 可以通过简单的更改 CSS 文件,改变网页的整体表现形式,可以减少我们的工作量,所以它是每一个网页设计人员的必修课。

  • CSS是由W3C的CSS工作组产生和维护的。

采用 CSS+DIV 进行网页重构,相对与传统的 TABLE 网页布局而具有以下3个显著优势:

表现和内容相分离。将设计部分剥离出来放在一个独立样式文件中,HTML文件中只存放文本信息。这样的页面对搜索引擎更加友好。

提高页面浏览速度。对于同一个页面视觉效果,采用 CSS+DIV 重构的页面容量要比 TABLE 编码的页面文件容量小得多,前者一般只有后者的1/2大小。浏览器就不用去编译大量冗长的标签。

易于维护和改版。你只要简单的修改几个 CSS 文件就可以重新设计整个网站的页面。

四、浏览器对 CSS 的匹配原理

浏览器CSS匹配不是从左到右进行查找,而是从右到左进行查找。比如之前说的 DIV#divBox p span.red{color:red;},浏览器的查找顺序如下:先查找 html 中所有 class=’red’ 的 span 元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有 id 为 divBox 的 div 元素,如果都存在,则 CSS 匹配上。

浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。Firefox 称这种查找方式为 keyselector(关键字查询),所谓的关键字就是样式规则中最后(最右边)的规则,上面的 key 就是 span.red。

五、优化你的 CSS

所谓高效的 CSS 就是让浏览器在查找 style 匹配的元素的时候尽量进行少的查找,下面列出一些我们常见的写 CSS 犯一些低效错误:

不要在ID选择器前使用标签名

一般写法:DIV#divBox

更好写法:#divBox

解释:因为ID选择器是唯一的,加上div反而增加不必要的 CSS 匹配。

不要在 class 选择器前使用标签名

一般写法:span.red

更好写法:.red

解释:同第一条,但如果你定义了多个.red,而且在不同的元素下是样式不一样,则不能去掉,比如你css文件中定义如下:

  p.red{color:red;}

  span.red{color:#ff00ff}

如果是这样定义的就不要去掉,去掉后就会混淆,不过建议最好不要这样写

尽量少使用层级关系

一般写法:#divBoxp.red{color:red;}

更好写法:.red{..}

使用 class 代替层级关系

一般写法:#divBox ul li a{display:block;}

更好写法:.block{display:block;}

在 CSS 渲染效率中 id 和 class 的效率是基本相当的

class 会在第一次载入中被缓存,在层叠中会有更加好的效果,在根部元素采用id会具有更加好(id有微妙的速度优势)

--结束END--

本文标题: 学习web前端,必须要掌握的CSS原理

本文链接: https://www.lsjlt.com/news/234175.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 学习web前端,必须要掌握的CSS原理
    从事Web前端开发的人都与CSS打交道很多,有的人也许不知道CSS是怎么去工作的,写出来的CSS浏览器是怎么样去解析的呢?当这个成为我们提高CSS水平的一个瓶颈时,是否应该多了解一下呢?我还是要推荐下我自己创建的web前端资料分享群6067...
    99+
    2023-06-03
  • web前端必须要掌握的定时任务有哪些
    这篇文章主要介绍了web前端必须要掌握的定时任务有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇web前端必须要掌握的定时任务有哪些文章都会有所收获,下面我们一起来看看吧。 一、无处不在的定时任务定时任务,...
    99+
    2023-07-05
  • 面试前必须掌握的Java API学习笔记
    Java API是Java编程中非常重要的一部分,它是Java的核心部分,为Java程序员提供了丰富的工具和库,以便于开发出更加高效、可靠和安全的应用程序。在Java编程中,掌握Java API的使用是非常必要的,特别是在面试中,掌握Jav...
    99+
    2023-11-14
    面试 学习笔记 api
  • 前端必须要掌握CSS3的属性有哪些
    小编给大家分享一下前端必须要掌握CSS3的属性有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. Border-radiu...
    99+
    2024-04-02
  • 【整理总结】前端必须要掌握的3种定时任务
    比如电商平台的秒杀倒计时,每隔一秒就要执行一次,给你一种快要结束的紧迫感;比如我们从12306买车票,支付页的倒计时,每隔一秒就会告诉你,你的订单再不支付,票就不属于;比如产品人员告诉我们,每天晚上12点,要备份A表的数据;比如页面加完成...
    99+
    2023-05-14
    javascript 定时任务
  • 学习黑客必须要掌握的DOS命令有哪些
    这篇文章主要介绍学习黑客必须要掌握的DOS命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1 黑客基础之DOS (最齐全)   net use \\...
    99+
    2023-06-09
  • 学习前端需要掌握哪些基础
    小编给大家分享一下学习前端需要掌握哪些基础,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!学习前端需要掌握的基础知识点如下:一、H...
    99+
    2024-04-02
  • 前端CSS必须要学的知识点有哪些
    本文小编为大家详细介绍“前端CSS必须要学的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“前端CSS必须要学的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • 「Python学习笔记」想要高效学习,必须掌握哪些Unix技巧?
    Python是一门非常流行的编程语言,拥有强大的生态系统和广泛的应用场景。对于想要高效学习Python的开发者来说,掌握一些Unix技巧是非常必要的。本文将介绍一些Unix技巧,帮助你更好地学习Python。 使用文本编辑器 在Unix...
    99+
    2023-07-02
    学习笔记 ide unix
  • 一般Web前端开发要学什么 如何掌握Web前端技术
    一般Web前端开发要学什么?如何掌握Web前端技术?越来越多的行业巨头不断向Web前端示好,除苹果、微软、黑莓之外,谷歌的Youtube已部分使用Web前端。Chrome浏览器宣布全面支持Web前端;Facebook则不遗余力地为Web前端...
    99+
    2023-06-03
  • 小白要学好Web前端需要掌握哪些方法
    本篇内容介绍了“小白要学好Web前端需要掌握哪些方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、di...
    99+
    2024-04-02
  • 中级前端工程师必须要掌握的JavaScript技巧有哪些
    这篇文章主要介绍“中级前端工程师必须要掌握的JavaScript技巧有哪些”,在日常操作中,相信很多人在中级前端工程师必须要掌握的JavaScript技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • 学redis必须要掌握的知识点有哪些
    这篇文章主要介绍学redis必须要掌握的知识点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!关于redis你必须要掌握的8个知识如下:1、redis是什么redis是一种支持K...
    99+
    2024-04-02
  • 掌握Web前端开发的关键要点
    在数字化时代,Web前端开发已经成为许多人关注的焦点。从个人网站到大型企业应用程序,Web前端开发在互联网世界中扮演着至关重要的角色。掌握Web前端开发的关键要点,不仅可以提高个人职业...
    99+
    2024-04-02
  • 五分钟学后端技术:如何学习Java工程师必须掌握的RPC
    声明本文转自https://developer.51cto.com/art/201906/597963.htm什么是RPCRPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需...
    99+
    2023-06-02
  • Python 学习笔记中的 Linux 命令是否必须掌握?
    Python 作为一门广受欢迎的编程语言,已经成为了许多人学习编程的入门选择。在学习 Python 的过程中,我们会发现很多教程中都会提到一些 Linux 命令,这些命令是否必须掌握呢?本文将就此问题进行探讨。 为什么 Python 学习...
    99+
    2023-09-02
    学习笔记 http linux
  • 想要掌握 Java 索引技能?学习 NPM 的使用方法是必须的!
    Java是一种广泛使用的编程语言,它的应用范围涵盖了从移动应用到企业级应用的各个领域。在Java编程中,索引技能是非常重要的,因为它们可以帮助你快速访问和处理大量数据。而要掌握Java索引技能,学习NPM的使用方法就是必不可少的。 NPM是...
    99+
    2023-07-27
    索引 教程 npm
  • 你知道吗?Python 学习者必须掌握 bash path 的设置!
    Python 是一种非常流行的编程语言,它不仅易于学习,而且在各种领域中都有着广泛的应用。然而,如果你想成为一名优秀的 Python 开发者,你必须掌握许多与 Python 相关的技能,其中之一就是 bash path 的设置。在本篇文章中...
    99+
    2023-07-03
    教程 bash path
  • 从零开始学习 Python 响应 Django 教程:这是必须要掌握的技能!
    Python 是一门非常流行的编程语言,它具有简单易学、语法简洁等特点,因此受到了广大程序员的喜爱。而 Django 是一款基于 Python 的高级 Web 框架,可以帮助开发者快速地构建出高质量的 Web 应用程序。本文将介绍如何从零开...
    99+
    2023-11-15
    响应 django 教程
  • 中级前端工程师必须要掌握的27 个JavaScript 技巧分别是什么
    中级前端工程师必须要掌握的27 个JavaScript 技巧分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.判断数据类型使用 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作