- 浏览: 1048726 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
一、浏览器的发展与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的优点
什么是CascadingStyleSheets(层叠样式表)*CSS是CascadingStyleSheets(层叠样式表)的简 称.*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#divBoxpspan.red{color:red;},浏览器 的查找顺序如下:先查找html中所有class=’red’的span元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有id为 divBox的div元素,如果都存在则CSS匹配上。
浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。firefox称这种查 找方式为keyselector(关键字查询),所谓的关键字就是样式规则中最后(最右边)的规则,上面的key就是span.red。
五、优化你的CSS
所谓高效的CSS就是让浏览器在查找style匹配的元素的时候尽量进行少的查找,下面列出一些我们常见的写CSS犯一些低效错误:
1、不要在ID选择器前使用标签名
一般写法:DIV#divBox
更好写法:#divBox
解释:因为ID选择器是唯一的,加上div反而增加不必要的CSS匹配。
2、不要在class选择器前使用标签名
一般写法:span.red
更好写法:.red
解释:同第一条,但如果你定义了多个.red,而且在不同的元素下是样式不一样,则不能去掉,比如你css文件中定义如下:
p.red{color:red;}
span.red{color:#ff00ff}
如果是这样定义的就不要去掉,去掉后就会混淆,不过建议最好不要这样写
3、尽量少使用层级关系
一般写法:#divBoxp.red{color:red;}
更好写法:.red{..}
4、使用class代替层级关系
一般写法:#divBoxullia{display:block;}
更好写法:.block{display:block;}
5、在css渲染效率中id和class的效率是基本相当的
class最在第一次载入中被缓存,在层叠中会有更加好的效果,在根部元素采用id会具有更加好(id有微妙的速度优势)。
网页浏览器主要通过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的优点
什么是CascadingStyleSheets(层叠样式表)*CSS是CascadingStyleSheets(层叠样式表)的简 称.*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#divBoxpspan.red{color:red;},浏览器 的查找顺序如下:先查找html中所有class=’red’的span元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有id为 divBox的div元素,如果都存在则CSS匹配上。
浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。firefox称这种查 找方式为keyselector(关键字查询),所谓的关键字就是样式规则中最后(最右边)的规则,上面的key就是span.red。
五、优化你的CSS
所谓高效的CSS就是让浏览器在查找style匹配的元素的时候尽量进行少的查找,下面列出一些我们常见的写CSS犯一些低效错误:
1、不要在ID选择器前使用标签名
一般写法:DIV#divBox
更好写法:#divBox
解释:因为ID选择器是唯一的,加上div反而增加不必要的CSS匹配。
2、不要在class选择器前使用标签名
一般写法:span.red
更好写法:.red
解释:同第一条,但如果你定义了多个.red,而且在不同的元素下是样式不一样,则不能去掉,比如你css文件中定义如下:
p.red{color:red;}
span.red{color:#ff00ff}
如果是这样定义的就不要去掉,去掉后就会混淆,不过建议最好不要这样写
3、尽量少使用层级关系
一般写法:#divBoxp.red{color:red;}
更好写法:.red{..}
4、使用class代替层级关系
一般写法:#divBoxullia{display:block;}
更好写法:.block{display:block;}
5、在css渲染效率中id和class的效率是基本相当的
class最在第一次载入中被缓存,在层叠中会有更加好的效果,在根部元素采用id会具有更加好(id有微妙的速度优势)。
发表评论
-
a标签置灰不可点击
2017-08-25 10:08 1161a标签的title属性可以实现鼠标放上去显示信息的功能 ... -
CSS 让div内的span在一行显示
2016-12-14 10:07 2110让div内的span在一行显示只需把span的style. ... -
jsf中xhtml文件访问
2016-12-11 23:12 619web.xml中的配置: ? 1 ... -
webpack 入门指南
2016-09-30 15:12 568什么是 webpack? webpack是近期最火的一款 ... -
用css 添加手状样式,鼠标移上去变小手,变小手
2016-08-16 14:25 1914用css 添加手状样式,鼠标移上去变小手,变小手 curso ... -
css学习3
2016-07-07 11:16 495一、概述 除了正常运 ... -
block,inline和inline-block概念和区别
2016-06-24 19:53 573总体概念 1.block和inline ... -
css 的学习1
2016-06-20 19:32 374css 中的 transparent到底是什么意思 透明的 ... -
标签<noscript>
2016-05-25 11:13 503<noscript> <iframe s ... -
CSS技术
2016-05-13 16:13 471padding是内边距 margin是外边距 一、CSS ... -
html上显示默认值
2016-01-29 14:07 646使用onfocus事件检查当前值,如果是默认值,就将val ... -
html
2016-01-27 22:10 412html通常指的是用来写网页的超文本代码,HTML5只是HT ... -
html中化柱状图,折线图
2016-01-27 20:36 787<!DOCTYPE HTML PUBLIC " ... -
css学习
2015-12-07 23:38 333CSS(层叠样式表)是一种简单的设计语言,能够将页面变漂亮这回 ... -
ionic
2015-11-30 01:18 690PhoneGap是一个用基于HTML,CSS和JavaScri ... -
bootstarp基本CSS样式
2015-11-26 15:30 780路径: http://bootstrap.kinghack.c ... -
css的学习
2015-11-26 01:34 337学习css http://t.mb5u.com/css3/ -
如何在网页中循环播放声音
2015-08-06 23:48 813HTML中可以播放声音的标签有bgsound、embed、au ...
相关推荐
这本书详细解释了CSS的每一个属性,以及它们如何相互作用,使得读者能深入理解CSS的工作原理。此外,它还提供了大量示例和实战技巧,帮助读者将理论知识转化为实际技能。 这三本书合在一起,构成了一个全面的CSS...
例如,使用CSS可视化编辑器,初学者可以更轻松地理解CSS选择器的工作原理,而专业开发者则可以快速构建和测试设计概念。 “自带CSS的CHM格式帮助文件”是一个非常有用的资源,CHM是Compiled HTML Help的缩写,是一...
书中,Lea Verou通过她的亲身经验与独到见解,为读者揭开了CSS的神秘面纱。这些见解不仅展示了CSS强大的功能,也反映了其深层的复杂性。作者并非简单地介绍CSS语言,而是将其作为解决问题的工具,提供了许多设计原则...
- **社区与支持**:鼓励读者加入相关的开发者社区,与其他设计师交流经验。 ### 总结 《CSS3 For Web Designers》不仅是一本全面介绍CSS3技术的书籍,更是一部引导设计师们如何运用这些技术创造出更美观、更互动、...
- **快速原型设计**:设计师可以快速创建页面布局和样式,与客户或团队成员分享和确认设计概念。 - **调试和优化**:开发者在遇到布局问题时,可以利用编辑器快速定位和修复CSS问题。 - **协作**:团队成员可以共享...
这本书旨在解决网页设计中的经典难题,通过7个主要主题和47个精心挑选的CSS技巧,为设计师们提供了丰富的实践经验和创新思路。 首先,我们要了解CSS(Cascading Style Sheets)的核心作用,它是用于描述HTML或XML...
10. **CSS技巧与最佳实践**:分享提高CSS编写效率和代码质量的方法,如模块化、命名约定、避免使用内联样式等。 通过深入学习这个**CSS样式表中文手册合集**,无论是初学者还是经验丰富的开发者,都能从中受益,...
了解PostCSS的基本原理和工作流程是面试中的重要知识点,包括它如何接收CSS输入,如何通过插件进行处理,以及如何输出优化过的CSS。 二、PostCSS核心概念 1. **插件**:PostCSS的核心在于其丰富的插件生态系统,如...
8. **CSS工作流程和工具**:Meyer还分享了他在CSS项目中的工作流程,推荐了一些实用的开发工具和框架,如 Normalize.css、Autoprefixer 和 CSS Lint,以提高开发效率和代码质量。 9. **模块化和可复用的CSS**:书中...
8. **性能优化**:分享减少CSS重绘和回流的方法,以及如何优化大型项目的CSS结构。 9. **CSS技巧和最佳实践**:包括如何组织CSS代码、避免使用全局选择器、利用BEM命名法等提高代码可读性和可维护性的策略。 10. *...
通过阅读和学习这本《CSS样式表中文手册》,无论是初学者还是经验丰富的开发者,都能增强自己的CSS技能,创作出更精美、更具交互性的网页。无论你是要构建一个简单的个人网站,还是参与大型复杂项目的开发,这本书都...
**CSS中文参考手册**,正如其标题所言,是一本专为中文读者设计的详尽指导书籍,旨在帮助初学者和有一定经验的开发者深入理解并掌握CSS(Cascading Style Sheets)这一重要的网页样式语言。这本书是学习CSS的绝佳...
### CSS实战学习总结 ...《CSS实战学习总结》一文通过详实的案例分析和实用的技巧分享,为读者提供了从理论到实践的全方位指导,无论是初学者还是有经验的开发者,都能从中获得有价值的启示和帮助。
通过阅读这本书,初学者能够从理论到实践全面掌握`div+css`布局技术,而有经验的开发者也能从中获取新的灵感和解决方案。配合压缩包内的"说明.htm"、"说明.txt"和"使用说明.txt",读者可以获得更具体的阅读指导和...