4.17 优化与兼容

页面优化要素:
1)页面头部优化
<meta name="keywords"   content="" />向搜索引擎说明你的网页的关键词;
<meta name="description"    content=""/>告诉搜索引擎你的站点的主要内容;
2)超链接优化
1、采用纯文本链接,少用,最好是别用Flash动画设置链接,因为搜索引擎无法识别Flash上的文字.
2、按规范书写超链接,这个title属性,它既可以起到提示访客的作用,也可以让搜索引擎知道它要去哪里.
3、最好别使用图片热点链接,理由和第一点差不多
4)图片优化
图片优化并不是修改图片的大小、颜色,而是你应该为每个标签加上alt属性,alt属性的作用是当图片无法显示时以文字作为替代显示出来,而对于SEO来说,它可以令搜索引擎有机会索引你网站上的图片,对于一些确实没什么意义的图片,最好也不要省略alt,而应该留空,即 。
5)PageRank(pr值,友情链接)
PR值是Google提出的一个重要参数,它标明了某个网站的重要程度,那么pr值是如何确定的呢?目前普通的解释为:假如有ABC三个网站,彼此互作友情链接,那么当一个访客通过A上的友情链接来到B时,Google就认为A为B投了“一票”,同理,如果有人从C访问B,那么B又得一票,如果全世界的网站上都有B的友情链接,B就是世界上最重要的网站了!
回流(resflow) & 重绘(repaint):
页面的渲染流程

图片整合(精灵图、css sprites、css精灵、雪碧图):
把网站里面的小图标有规则的整合在一起,利用   background-position 改变背景图的位置,每个图标应用。
优点:
 (1)CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
 (2)CSS Sprites能减少图片的字节;
 (3)CSS Sprites解决了网页设计师在图片命名上的困扰,只需对一张集合的图片命名,不需要对每一个小图片进行命名,从而提高了网页制作效率。
 (4)CSS Sprites只需要修改一张或少张图片的颜色或样式来改变整个网页的风格。
 
缺点:
 (1)图片合并麻烦:图片合并时,需要把多张图片有序的合理的合并成一张图片,并留好足够的空间防止版块出现不必要的背景。
 (2)图片适应性差:在高分辨的屏幕下自适应页面,若图片不够宽会出现背景断裂。
 (3)图片定位繁琐:开发时需要通过工具测量计算每个背景单元的精确位置。
 (4)可维护性差:页面背景需要少许改动,可能要修改部分或整张已合并的图片,进而要改动css。在避免改动图片的前提下,又只能(最好)往下追加图片,但这样增加了图片字节。
浏览器大战:
第一次浏览器大战:上个世纪90年代。第二次浏览器大战:20世纪。:战争产物:Internet Explorer 9
Trident 代表作:IE
Gecko 代表作:Mozilla
WebKit : 苹果 & 谷歌旧版本
Blink : 代表作:谷歌 & 欧鹏
Presto ( Opera前内核 已经废弃 )
CSS Bug、CSS Hack和Filter
IE低版本常见CSS解析Bug及hack:
1)图片有边框BUG
当图片加<a href=“#”></a>在IE上会出现边框
Hack:给图片加border:0;或者border:0    none;

2)图片间隙
div中的图片间隙BUG:
描述:在div中插入图片时,图片会将div下方撑大大约三像素。
hack1:将</div>与<img>写在一行上;
hack2:将<img>转为块状元素,给<img>添加声明:display:block;
img会把父元素高度撑大:
hack1:font-size:0
hack2:vertical-align:top;
hack3:float-left;
 
3)  双倍浮向(双倍边距)(只有IE6出现)
描述:当Ie6及更低版本浏览器在解析浮动元素时,会错误地把浮向边边界(margin)加倍显示。
hack:给浮动元素添加声明:display:inline;

4)默认高度(IE6、IE7)
描述:在IE6及以下版本中,部分块元素拥有默认高度(在16px左右;)
hack1:给元素添加声明:font-size:0;
hack2:给元素添加声明:overflow:hidden;

非IE BUG
5)表单元素对齐不一致
描述:表单元素行高对齐方式不一致
hack:给表单元素添加声明:float:left;
6)按钮元素默认大小不一
描述:各浏览器中按钮元素大小不一致
hack1: 统一大小/(用a标记模拟)
hack2:input外边套一个标签,在这个标签里写按钮的样式,把input的边框去掉。
hack3:如果这个按钮是一个图片,直接把图片作为按钮的背景图即可。

8)鼠标指针bug
描述:cursor属性的hand属性值只有IE9以下浏览器识别,其它浏览器不识别该声明,cursor属性的pointer属性值IE6.0以上版本及其它内核浏览器都识别该声明。
hack:    如统一某元素鼠标指针形状为手型,
应添加声明:cursor:pointer

cursor:         ;
auto默认
crosshair加号
text文本
wait等待
help帮助
progress过程
inherit继承
move移动
ne-resize向上或向右移动
pointer手形
 
9)透明属性
兼容其他浏览器写法:opacity:value;(value的取值范围0-1;
 例:opacity:0.5;)
IE浏览器写法:filter:alpha(opacity=value);取值范围 1-100(整数)
过滤器
  1.下划线属性过滤器
  当在一个属性前面增加了一个下划线后,由于符合标准的浏览器不能识别带有下划线的属性而忽略了这个声明,但是在IE6及更低版本浏览器中会继续解析这个规则。
 
  语法:选择符{_属性:属性值;}
 
  2. !important关键字过滤器
 
  它表示所附加的声明具有最高优先级的意思。但由于IE6及更低版本不能识别它,
我们可以利用IE6的这个Bug作为过滤器来兼容IE6和其它标准浏览器。
  语法:选择符{属性:属性值!important;}
 
  3. *属性过滤器
  当在一个属性前面增加了*后,该属性只能被IE7浏览器识别,其它浏览器混略该属
性的作用。
 语法:选择符{*属性:属性值;}

  4.   \9  :IE版本识别;其它浏览器都不识别
语法:选择符{属性:属性值\9;}
  5.   \0  :   IE8 及以上版本识别;其它浏览器都不识别
 

css

相关推荐