浏览器专属CSS开发
转发下,同事总结的。
浏览器大战的结果曾经一度是IE一统天下,在那个时代,我们根本不用担心浏览器兼容性问题,用PS自动生成代码都行。然而伴随时代发展,人们对WEB应用的期望越来越高,于是乎,江湖烽烟再起,各种浏览器如雨后春笋,这可苦了我们这些开发者,为了让各浏览器表现一致,不知道有多少前辈耗费了多少心血,现在,让我们踩在前辈的肩膀上继续去奋斗吧。
日常工作我们经常需要区分Firefox和IE系列浏览器,这里有一个使用的快速方法:
background:blue;
/* Firefox */
background:red \9; /* IE8(只有IE系列浏览器认识\9)
*/
*background:black; /* IE7(IE6/IE7认识星星)*/
_background:orange; /* IE6
(IE6认识下划线) */
测试地址:
http://webtech.intra.sina.com.cn/?page_id=39
如果想更深入的研究,那么这里有更多的例子:
/* Opera */
html:first-child #opera
{
display: block;
}
/* IE 7 */
html > body #ie7
{
*display: block;
}
/* IE 6 */
body #ie6
{
_display: block;
}
/* Firefox 1 - 2 */
body:empty #firefox12
{
display: block;
}
/* Firefox */
@-moz-document url-prefix()
{
#firefox { display: block; }
}
/* Safari */
@media screen and (-webkit-min-device-pixel-ratio:0)
{
#safari { display: block; }
}
/* Opera */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0)
{
head~body #opera { display: block; }
}
以上都是前辈实践摸索出来的hack方式,用以区分不同浏览器,不过呢,当今世界的浏览器主要分为四大内核:
渲染引擎
浏览器
Trident
Internet Explorer
Gecko
Mozilla Firefox
WebKit
Safari、google Chrome
Presto
Opera
官方的文档都有说明,可以使用前缀
来实现各引擎的私有属性:
-o-:以Presto为渲染引擎的浏览Opera的私有属性、
-moz-:以Gecko为渲染引擎的浏览器Mozilla Firefox的私有属性
-webkit-:以Webkit为渲染引擎的浏览器Safari、Google Chrome的私有属性
IE8开始引入-ms-前缀用以区分私有属性的方式,详见:
https://blogs.msdn.com/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx
另外IE还可以通过条件注释来加以区分,详见:
http://www.quirksmode.org/css/condcom.html
http://msdn.microsoft.com/en-u
相关文档:
1、如何用ul制作一行菜单
<body>
<ul>
<li><a href="#">Link one</a></li>
<li><a href="#">Link two</a></li>
<li><a href="#">Link three</a></li>
<li><a href="#">Link four</a></li>
</ul> ......
今天开始做我们公司内部使用的ITSM系统的静态页面,这个页面好复杂,当然,我是一个才开始做页面的家伙,所以对我来说还有一定的难度。侧栏要折叠,菜单要Js控制,我本来以前是搞编程的,都是直接用人家的页面,css和js都只是会一点皮毛,现在伤到我的心了。
今天还有一个不幸的消息,我竟然挂了一科,大学4年的清白生活啊 ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset ......
此文为网上收集~
给客户做站的时候遇到的问题,div层加了margin后 总宽度超过父级层宽度 就自动换行了 如何让浮动层加margin后不换行呢?
下面看浮动层加margin后换行的例子:
比如说有个DIV宽度为380px,它里面有一个菜单列表,每个宽度为60px,margin-right为20px。如果就按照下面的HTML结构来做的话,那么这个菜单列表能 ......