展开全部 首先我们需要清楚,浏览器是如何读取选择器,以识别样式,并将相应的样式附于对应的HTML元素,达到美化页面的效果。Chris Coyier曾在《Efficiently Rendering CSS》一文中说过“浏览器读取你的选择器,遵循的原则是从选择器的右边到左边读取。换句话说,浏览器读取选择器的顺序是由右到左进行”。比如说: div.nav >ul li a 上面的实例来说,浏览器首先会尝试在你的HTML标签中寻找“a”元素,接着在匹配“li和ul”,最后在去匹配“div.nav”。这就是前成所主的“选择器从右到左的原则”。 选择器的最后一部分,也就是选择器的最右边(在这个例子中就是a[title]部分)部分被称为“关键选择器”,它将决定你的选择器的效率如何?是高还是低。 老版本的浏览器可以过滤掉不匹配的选择器,而直接匹配更高效的选择器。记得David Hyatt在《Writing efficient CSS for use in the Mozilla UI》说过:“这个关键选择器可以大大提高选择器的性能,少检查一个给定的元素规则,就可以更有效的将样式匹配给对应的HTML元素。”那么如何让关键选择器更有效,性能化更高呢?其实很简单,主要把握一点“越具体的关键选择器,其性能越高” 那么什么样类型的选择器,其性能高?什么样的类型的选择器性能低呢?下面我们就针对两个问题来展开具体的学习。 CSS选择器的效率 如果你阅读了本站的有关于选择器类型的介绍的话,你对选择器并不会感到陌生。就算你没读过,我想CSS选择器不会让我们觉得是新东西,比如我们常用的基本选择器“元素标签选择器div”、“id选择器#header”、“类选择器.class”,或者说我们很少见的伪类选择器“:focus”以及更复杂的css3选择器“:nth-child”等等。 选择器有一个固有的效率,我们来看Steve Souders给排的一个顺序: id选择器(#myid)类选择器(.myclassname)标签选择器(div,h1,p)相邻选择器(h1+p)子选择器(ul >li)后代选择器(li a)通配符选择器(*)属性选择器(a[rel="external"])伪类选择器(a:hover,li:nth-child) 上面九种选择器的效率是从高到低排下来的,基中ID选择器的效率是最高,而伪类选择器的效率则是最底。详细的介绍大家还可以点击Writing efficient CSS selectors。 综合上面的顺序,我们清楚的知道,id和类名用于关键选择器上效率是最高的,而CSS3的仿伪类和属性选择器,虽然使用方便,但其效率却是最低的。我们下面一起来看几个实例的对比: div #myid 效率要比下面的高: #myid div 第一种选择器比第二种选择器效率高,大家或许会问为什么?其实根据前面所介绍的我们就不难理解了,因为第一个选择器的“关键选择器”使用了 “ID选择器”,而第二个选择器的“关键选择器”使用的是“标签选择器”,对比下来,“ID选择器”效率高过“标签选择器”,所以说第一个选择器的效率要高于第二个选择器。 在类名或ID名前面加上标签也会致使选择器效率变低的,比如说: div #myid 上面两个选择的效率要高于下面的选择器: p#mydiv p.myclassname 来自Mozilla的几点建议 David在《Use efficient CSS selectors》中介绍了几种书写高效率的CSS选择器的方法,下面我将他们移到这里来让大家参考: 写道 1 避免普遍规则 2 不要在ID选择器前加标签名或类名 3 不要在类名选择器前加标签名 4 尽可能使用具体的类别 5 避免使用后代选择器 6 标签分类规则中不应该包含一个子选择器 7 子选择器的问题 8 借助相关继承关系 9 使用范围内的样式表 如果你不够清楚上面所讲的是什么,你可以点击这里,他会让你更容易了解这些规则。 我们应该怎么做 前面说“ID选择器”的效率是最高的,那么今天我们写样式,为了提高选择器的效率,是不是我们要在每一个文档的HTML元素中都加入ID名呢?我想这样的做法是没有的。对于一个有语义的代码编写和如何提高性能,以前他们之间如何的平衡?其实这个选择器的效率低一点,对于大多数网站来说并不会有太大的影响,但对于一个大型的网站,产生大量的流量这就会有差别了,也就很值得我们去对他进行优化。那么我们就很有必要的去了解他们是如何工作,比如说,一般情况下哪些选择器的使用效率更高。来看两个简单的例子: #myid 上面的选择器高于下面的: p#myid 后者的写法我发现还是有很多朋友这样写,但我不知道你为什么需要在ID前面加一个标签?难道你同一个页面会有多个相同的ID不成? 我们接下来在来看一个实例,用于列表上的,比如说我们制作导航菜单的: #nav a 高效于: #nav li a 上面只是介绍了两个常碰到的实例,在这里说这两个实例,主要目的是让你在今后的编写样式时,能注意这方面的的细节,从而加快你的代码效率。css3.0是一个代码样式标准,不是你认为的那种升级标准,只要你写的代码是3.0的代码,能识别3.0的浏览器就会显示,不能识别的话就不能显示,如果真要说升级的话,那是浏览器提供商们升级的问题,所以说3.0css你学会了就可以使用编写代码的,不需要升级
css技巧如何提升
给您推荐相同类型的内容:
怎样在js中读出datagrid控件中的值
参考代码如下:这是在GridView里面没有控件的情况下,有控件另当别论 ;var gdview=<%=gridview.ClientID%>gridview是GridView控件的ID 或者 var gdvie迅雷下载文件怎么中途停止转用比特彗星
不能中途转用。迅雷和比特的断点记忆文件编码方式不同,那就意味着不能互传任务。迅雷是迅雷公司开发的一款基于多资源多线程技术的下载软件,作为“宽带时期的下载工具”,迅雷专门针对宽带用户做了优化,并同时推出了“智能下载”的服务。比特星(BitCo怎么测试电脑的FPS
电脑FPS不稳定的解决方法如下:方法一:更改电源计划1.帧数不稳定很有可能是电源计划没设置好造成的,首先,点击开始菜单。2.点击右侧的“控制面板”。3.在控制面板里,选择“硬件和声音”。4.进入“硬件和声音”之后,点击“电源选项”。5.js方法调用
JS函数的定义与调用方法JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this电脑软件如何卸载
1.软件正常卸载方法:(1)从开始菜单卸载选择开始按钮 ,然后在显示的列表中查找应用或程序。右键单击应用,然后选择卸载。(2)通过设置页面卸载选择开始按钮 ,然后依次选择设置 >应用>应用和功能。选择要删除的应stp文件是用什么软件打开??
proe软件可以打开stp文件,打开的具体操作步骤如下:1、首先我们打开电脑里的proe软件进入软件主界面。iknow-pic.cdn.bcebos.com8b82b9014a90f60353a37e083712b31bb051ed6ajs 函数里面的focus()是干嘛的
在JavaScript中,focus()虽然比较罕见,但还是比较有用的,主要是用于获取焦点,说白了,就是自动把光标放到此组件上面,无须用户再次操作。直接用一个例子说明问题:上述代码,设置在打开网页5秒之后,无须用户操作,focus()方怎么删除c盘中没用的文件
删除电脑c盘里的垃圾文件的具体操作如下:工具:联想电脑、windows 10。1、打开电脑,同时按下键盘win+R键,出现运行输入框。2、在打开的运行输入框中输入%TEMP%,点击确定。3、点击确定后进去C盘文件,这里的都属于垃圾文件,c语言注释
在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解。在C语言中有两种注释方式:一种是以*开始、以*结束的块注释(block comment);另一种是以开始、以换行符结束的单行注释(line comment)。扩展div+css 列表(项目符号图像)与文字 中线对齐
首先 list-style-image不能设置位置,所以如果要实现你的效果,要把你的项目符号直接做成尺寸刚刚好的,这样个尺寸大小的,但是这样限制性太强,所以还是用背景来做比较方便background:url("..images电脑怎么链接苹果手机热点
1.使用USB数据线连接:如果电脑上已经安装了iTunes,您可以使用USB电缆将iPhone连接到电脑。连接成功后,你可能会看到iPhone上显示“你要信任这台电脑吗,请点击“信任”的提示。并在iPhone控制中心打开蜂窝数据和个人热点,java的主要应用领域有哪些?
在现实社会中有很多地方使用到了Java,从电子商务网站到Androidapps,从科学应用到金融产品,例如电子交易系统,从类似Minecraft的游戏再到Eclipse,Netbeans和IntelliJ的桌面应用,从开源的资源库到J2MEHTML中怎么导入css?
参考以下html导入css的方式:HTML 中引入 CSS 的方式有 4 种方式可以在 HTML 中引入 CSS。其中有 2 种方式是在 HTML 文件中直接添加 CSS 代码,另外两种是引入 外部 CSS 文件。下面我们就来看看这些方式和Go 语言前景怎么样,有木有需要 Go 程序员的
GO语言虽然不如Java、Python等语言火热,但在云计算、云存储时代却是最重要的基础编程语言。作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等。在国外,Google、Facebook等公司在使c语言程序设计 计算时钟的夹角
根据楼主的意思,以下是完整程序,楼主自行添加case个数限制。有问题请再追问#include <stdio.h>#include <math.h>int h, mdouble calc(ijs幻灯片广告切换代码
js幻灯片广告切换代码如下操作。1、下载到的压缩包,上传到网站根目录下。2、解压出来,复制index.html里面的主要代码,插入到网站项目想要放置的位置。3、对插入的代码,根据自己需求对文字以及图片做适当的修改和替换,即可投入到自己网站中《元气骑士》付费人物代码是多少?
元气骑士付费人物代码:duoshou、zijiren、100000、dzbkq、51kuaile、skgift、sknight、gjdfcdij856、5bdklolilvlcq、oppo手机端,1000宝石加法师mm皮肤。ltzjr、sios html混合开发中 怎么加载css
在IOS开发中,可以通过webView来加载HTML文件步骤如下:1.需要有一个webView,可以通过storyboard拖拽一个 或者 alloc 一个(我在这里是拖拽了一个),是否要给webView设置delegate ,根据自己的需电脑用的音响什么牌子音质好?
不知道您喜欢什么样的音响,预算大概在多少范围呢呢?音响是门高深的学问,需要慢慢来了解,集中大家的智慧会更有效率,让自己成为高手,给您推荐下我喜欢的音响,惠威,丹拿,BT-audio AB HIFI套装,惠威,丹拿明显价格贵,不太适合电脑音响css设置全局样式的问题
不要莽撞地使用通配符把所有的标签的margin属性和padding属性都设置为零,css reset还是个挺有技巧的事儿。当然各种框架对于cssreset的方法不太一样。但是既然你又需要用到input的默认属性,就不要最开始把所有都设为0.电脑怎么学打字比较快
可以用金山打字王来学习和练习。0基础的情况下,通过自学快速掌握键盘打字也是需要下一定的功夫的,首先需要说明的是,键盘上有很多按键,一个键盘具有许多的功能,分为了不同的区域,平常使用最多的是主键盘区,而在电脑上打字使用最多的是主键盘区里标有英如何通过js来获取后台数据
通过js来获取后台数据的方法是采用ajax方式完成的。1、定义页面click按钮,通过此按钮触发ajax异步取后台数据功能<!DOCTYPE html><html><body&am笔记本电脑的cpu和显卡可以更换吗?需要注意什么
笔记本电脑的cpu可以更换,但不支持更换显卡。需要注意以下几个方面:1、需要查看cpu的具体类型,注意区分结尾字母是QM或M的则可以更换,结尾字母是Y或U的则不能更换。2、需要注意散热情况,如果换了功率大的cpu还需在BIOS里调整自计算机专业考研基础内容
《2019考研计算机-基础班【完】》百度网盘资源免费下载链接:https:pan.baidu.coms1ho_mjRLYNHXCOZMalgkhjg?pwd=thmu 提取码:thmu2019考研计算机-基础班【完】|2019计算R语言是什么?
《R语言4.0.4软件》百度网盘资源免费下载:链接: https:pan.baidu.coms160twe4ScMvIbGm2TI_sjHw?pwd=3ts7 提取码: 3ts7R语言4.0.4是一款专业的统计建模软件,与其它建仓库管理用什么软件
仓库管理用的软件有:易用仓库管理软件免费版、易速仓库管理软件、简用仓库管理软件、里诺仓库管理软件、仓库管理系统软件。1、易用仓库管理软件免费版它是一款通用性极强的仓库及货物管理软件(仓库软件,仓库管理系统,库房管理系统,仓储管理系统)。怎么使用babel-plugin-import引入antd的字体
我们可以在js中引入样式文件require('myStyle.css')这时我们便需要引入相应的webpack loader来帮助我们解析这段代码。一般来说需要引入css-loader和style-loader,其中cscss行间距怎么设置
HTML 行间距的设置方法与问题我们可以用:<p style="line-height:100%">来设定一段文字内的行距.但我们怎么设定两段文字之间的行距呢? 即1 <p &js中怎么把日期转换成数字?
方法主要有二种:转换函数、强制类型转换。具体步骤:一、转换函数:js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。仅仅有对String类型调用这些方法,这两个函数才干正确执行;python怎么运行代码
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java