浏览器专属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
相关文档:
浏览器越来越多,不同的浏览器,不同的版本在页面的渲染上都各不相同。这让网页开发人员很头疼,为了能兼容各个浏览器,人们挖掘出了很多 CSS Hack。下面进行一下总结,如果还有其他的 CSS Hack 欢迎提供。
一) 针对 IE 的 Hack
大部分 CSS Hack 都是针对 IE 的,这是用于我们的 IE "坚强"所致,尤其是 IE6。
#test {
......
從上到下
body{
FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ffffff,endColorStr=#000000);
} 二、从左上至右下渐变
body{
FILTER: Alpha( style=1,opacity=25,finishOpacity=100,
startX=50,finishX= 100,startY=50,finishY=100);
background-color: skyblue; ......
网页中我们经遇到刷新要保留表单里内容的时候,习惯的做法使用cookie,但是那样做实在是很麻烦,css中的behavior就为我们很好的解决了这个问题。
比如:
<input style="behavior:url(#default#savehistory)" name="youname" type="text" id="yourname" size="10" autocomplete="off">
......
此文为网上收集~
给客户做站的时候遇到的问题,div层加了margin后 总宽度超过父级层宽度 就自动换行了 如何让浮动层加margin后不换行呢?
下面看浮动层加margin后换行的例子:
比如说有个DIV宽度为380px,它里面有一个菜单列表,每个宽度为60px,margin-right为20px。如果就按照下面的HTML结构来做的话,那么这个菜单列表能 ......
hand是手型
pointer也是手型,这里推荐使用这种,因为这可以在多种浏览器下使用。
crosshair是十字型
text是移动到文本上的那种效果
wait是等待的那种效果
default是默认效果
help是问号
e-resize是向右的箭头
ne-resize是向右上的箭头
n-resize是向上的箭头
nw-resize是向左上的箭头
w-resize是向左的箭头
sw- ......