随笔 - 28, 文章 - 0, 评论 - 3, 引用 - 0
数据加载中……

css下margin、padding、border、background和font缩写示例

CSS代码简化在工作中是非常有益的,也是必要的。在编写CSS代码时,经常会出现冗余的代码,为了提高代码的质量及文件压缩到最小,使代码具有可读性,不得不把CSS代码简化。
margin
  margin-top:1px;
  margin-right:1px;
   margin-bottom:1px;
  margin-left:1px;
  代码简化为:margin:1px
  margin-top:1px;
  margin-right:2px;
  margin-bottom:1px;
  margin-left:2px;
  代码简化为:margin:1px 2px
  margin-top:1px;
  margin-right:2px;
  margin-bottom:3px;
  margin-left:2px;
  代码简化为:margin:1px 2px 3px
  margin-top:1px;
   margin-right:2px;
  margin-bottom:3px;
  margin-left:4px;
  代码简化为:margin:1px 2px 3px 4px
  注意:当属性值是0的时候单位可以不写如:0px 直接就写成0
padding
  padding的书写方法和margin相类似
  padding-top:1px;
   padding-right:1px;
  padding-bottom:1px;
  padding-left:1px;
  代码简化为:padding:1px
  padding-top:1px;
  padding-right:2px;
  padding-bottom:1px;
  padding-left:2px;
  代码简化为:padding:1px 2px
  padding-top:1px;
  padding-right:2px;
   padding-bottom:3px;
  padding-left:2px;
  代码简化为:padding:1px 2px 3px
  padding-top:1px;
  padding-right:2px;
   padding-bottom:3px;
  padding-left:4px;
  代码简化为:padding:1px 2px 3px 4px
border
  border-width:1px;
   border-style:solid;
  border-color:#000000;
  代码简化为:border:1px solid #000
background
  background-color:#CCFFFF;
   background-image:url(图片路径);
  background-repeat:repeat-x;
   background-position:5px 4px;
  代码简化为:background:#CFF url(图片路径) repeat-x 5px 4px
font
  font-size:26px;
   font-weight:bold;
  font-family: “宋体”;
  代码简化为:font:26px bold “宋体”
color属性值
  color:#000000;
  color:#ff0000;
  代码简化为:color:#000, color:#f00

posted @ 2010-03-12 14:17 Angle Wang 阅读(234) | 评论 (0)编辑 收藏

浅淡!important对CSS的重要性(转)

CSS中的!important是一个非常重要的属性,有时候发挥着非常大的作用,52CSS.com这方面的知识并不是非常多,我们看下面的文章,对它作比较感观的了解。
  前几天写一些CSS代码的时候又难为我了,因为那个该死的IE6对CSS的支持是如此的差劲,以前我还没注意过,因为做的东西基本都是基于IE的,可是我这次为博客写的CSS要支持不止IE一个浏览器,可恨的是我装的Windows 7,这里面自带的是IE8浏览器,我自认为已经没有问题了,可是打开IE6,仍然出现错位,于是我决定看看IE6到底是什么情况。
  我把所有的CSS块儿全部使用边框包起来,结果看到在IE中两个div之间的距离明显要宽于其他浏览器,比如你写一个div的margin属性为20px,那么在IE中就好像是40px一样,这也就是为什么本来精度计算的刚刚好,在IE下却偏偏错位的原因。
  后来我看到了!important这个属性,这个属性其实也是css规范中的,结果IE6愣是不支持,也正因为它不支持,才让很多的CSSer们找到了解决的方法。一般来讲,在css中,如果在同一个css块中写下两个同样的属性,那么其实是按照最下面的来执行的,比如说:

 Example Source Code [www.52css.com]
.home{
    margin-left:20px;
    margin-left:40px;
}

  那么在执行的时候其实是按照40px来执行的,!important的出现就是为了让用户自己设置被执行语句的优先级。如果把上面的语句改为:

 Example Source Code [www.52css.com]
.home{
    margin-left:20px!important;
    margin-left:40px;
}

  那么在火狐、google浏览器以及IE7以上版本下将会按照20px来执行,而在IE6下却仍然按照40px来执行,因为IE6并不支持!important规范,我们就可以按照这个规则来满足IE6的设计需要,什么时候发现IE6和其他浏览器显示效果不同,那么就设置两个,在上面的一个加入!important标记,而下面的一句则不需要添加,这样IE6就按照下面的来执行了。资深的CSSer说:如今的CSS处处!important。这可都是天杀的IE6惹的祸,大家说IE6就是一坨代谢产物一点也不为过。
  

posted @ 2010-03-11 15:14 Angle Wang 阅读(210) | 评论 (0)编辑 收藏

学习中的点滴

记录学习,工作中遇到的点点滴滴的问题。
1、需要把 background-attachment 属性设置为 "fixed",才能保证该属性在 Firefox 和 Opera 中正常工作。
例子:

<html>
  <head>
  <style type="text/css">
   body
   {
     background-image:url('eg_bg_03.gif');
     background-repeat:no-repeat;
     background-position:center;
     background-attachment:fixed;
   }
  </style>
  </head>
  <body>

  </body>
</html>

2、

clear:both

 CSS中 clear:both;可以终结在出现他之前的浮动
  

语法: clear : none | left |right | both


参数:

none : 允许两边都可以有浮动对象

both : 不允许有浮动对象

left : 不允许左边有浮动对象

right : 不允许右边有浮动对象


说明: 该属性的值指出了不允许有浮动对象的边。请参阅float属性。 对应的脚本特性为clear


示例:

div { clear : left }

img { float: right }

<div style="clear:both;"></div>

主要是用在div套div的结构中。如果内div是浮动的,一般都需要clear浮动,不然的话内div会超出外div的框架

所用什么时候用clear:both;就很重要,一般我们在需要清除浮动的时候用到clear:both;不要轻意用到clear:both;因为它也有副伯用.

我们写一个clear:both;的例子:

<div style="float:left;width:100px;"> clear:both第1行第1列,</div>
<div style="float:left;width:700px;"> clear:both第1行第2列,</div>
<div style="clear:both;"> clear:both第2行。</div>


<div style="float:left;width:100px;"> 第1列,</div>
<div style="float:left;width:700px;"> 第2列,</div>
<div>第三列</div>
------------------------------------------------------------------------------------------------
<div style="float:left;width:100px;"> 第1列,</div>
<div style="float:left;width:700px;"> 第2列,</div>
<div style="clear:both;"></div>
<div>第三列</div>


3css疑难问题收集
表格与内联对象不换行:
table{
width:30em; 
table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */ 
td{ 
width:100%; 
word-break:keep-all;/* 不换行 */ 
white-space:nowrap;/* 不换行 */ 
overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */ 
text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/ 

.text-overflow { 
display:block;/*内联对象需加*/ 
width:31em; 
word-break:keep-all;/* 不换行 */ 
white-space:nowrap;/* 不换行 */ 
overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */ 
text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/ 
}

posted @ 2010-03-11 10:46 Angle Wang 阅读(247) | 评论 (0)编辑 收藏

随机显示图片的JS代码

关于随机显示图片的代码很多,但有的只能在IE下才有效果,如果换在Firefox或其他浏览器下就会失去效果,能做到两全的JS真的很少,今天给大家介绍一个很简单的JS随机显示图片的代码。
以下是代码:

// JavaScript Document
var m=10; //随机显示图片的总数量
var n=Math.floor(Math.random()*m+1)
document.write ("<img src='/banner/banner_"+n+".gif' border=0 galleryimg=no>");
//

  上面代码的意思是图片保存在/banner/文件夹下,根据设置的图片总数量,分别放入10张从banner_01.gif到banner_10.gif的图片,在执行这个JS时,它会随机显示从banner_01.gif到banner_10.gif的图片。
  保存这个JS为banner.js。

在网页相应的地方写入调用代码

以下是代码:

<script language="JavaScript" src="/Js/banner.js"></script>//-->

//调用

这段代码可以在IE和Firefox下有效显示。


简单的JavaScript随机显示图片广告的效果
兼容性:IE6+ FireFox2+ Opera9+

<script>
/******************************************************
* 简单的JavaScript随机显示图片广告的效果  Share JavaScript (http://www.ShareJS.com)
* 使用此脚本程序,请保留此声明
* 获取此脚本以及更多的JavaScript程序,请访问 http://www.ShareJS.com
******************************************************/

var str=new Array("http://www.sharejs.com/code/image/img/1.jpg","http://www.sharejs.com/code/image/img/2.jpg","http://www.sharejs.com/code/image/img/3.jpg");
var a;
a=str[parseInt(Math.random()*(str.length))];
document.write("<img src="+a+">");
</script>


posted @ 2010-03-04 09:47 Angle Wang 阅读(3543) | 评论 (0)编辑 收藏

相邻选择器

这个选择器的正式名称(根据W3C)是临近同属组合器。我觉得这个名称既长又复杂,因此把它简称为相邻选择器。虽说是"相邻",但相邻选择器选取的却是一个元素的下一个元素。基于图3-14中的标记,图3-24中的标记示范了相邻选择器的形式。

注意:

IE 6本身并不支持相邻选择器;请查阅本书的网址www.wrox.com/go/beginning_css2e以获取兼容性方面的帮助。

 
图  3-24

在图3-24中,可以看到加号被用来表示两个元素之间的相邻关系。你在这点上也许会有疑问:这么做看起来很舒服,但实际用途是什么?难道不能单独引用div#body来达到同样的效果吗?为什么需要一个相邻选择器?很高兴你这样问。在特定的情况下这个选择器会发挥作用,比如当几份HTML文档引用同一份样式表时。在一部分文档中,带有id名称heading的<div>元素和带有id名称body的<div>元素是相邻的,即它们在源文件中相继出现。在其他文档中这两个元素或许不是相邻的。如果你对这两种理论上不同的文档有不同的模板需求的话,自然会想通过某种方法来引用那些相邻的元素,这就是相邻选择器实际应用的一个例子。正如我在上一节"直接子选择器"中提到的那样,有时你不想创建新的id和类名。在某些情况下,当你使用相邻选择器时,能够避免创建新的类和id名称。

在接下来的概念验证型例子中,你将亲自试验相邻选择器。

试一试 相邻选择器

例3-5  按以下步骤,了解相邻选择器是如何工作的。

1. 在文本编辑器中输入以下标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
<head>
<title>Next Sibling Selectors</title>
<link rel='stylesheet' type='text/css' href='Example_3-5.css' />
</head>
<body>
<h1>Next Sibling Selectors</h1>
<p>
The next sibling selector (or adjacent sibling combinator as
it's officially called) allows you to select an element based on
its sibling. This paragraph has a lightyellow background and
darkkhaki text.
</p>
<p>
This paragraph has a yellowgreen background and green text.
</p>
<p>
This paragraph has no colored background, border, or text.
</p>
</body>
</html>

2. 保存上述标记为Example_3-5.html。

3. 在文本编辑器中输入以下CSS:

body {
font: 12px sans-serif;
}
p {
padding: 5px;
}
h1 + p {
background: lightyellow;
color: darkkhaki;
border: 1px solid darkkhaki;
}
h1 + p + p {
background: yellowgreen;
color: green;
border: 1px solid green;
}
4.保存样式表为Example_3-5.css。将它在支持相邻选择器的浏览器中载入,你将看到如图3-25所示的结果。
 
(点击查看大图)图  3-25

工作原理

相邻选择器基于相邻关系应用样式。下面是对Example_3-5.css中有关样式的分析。

Example_3-5.css中的第一个样式应用于Example_3-5.html的第一段。h1 + p表示如果<p>元素是直接跟在<h1>元素后的元素,则应用本规则中的声明。

h1 + p {
background: lightyellow;
color: darkkhaki;
border: 1px solid darkkhaki;
}

只有当<p>元素是直接与<h1>元素相邻的元素时,这条规则才起作用。

第二条规则里使用了一个更为复杂的相邻选择器。它表示如果一个<p>元素直接相邻于另一个<p>元素,并且后者也直接相邻于一个<h1>元素时,应用本规则中的声明。

h1 + p + p {
background: yellowgreen;
color: green;
border: 1px solid green;
}

就像直接子选择器可以基于父子关系应用样式一样,相邻选择器可以基于相邻关系应用样式。

在很多时候,如果能基于元素的属性或属性值应用样式会很有用。

posted @ 2010-02-26 13:10 Angle Wang 阅读(297) | 评论 (0)编辑 收藏

li和ul标签用法举例

LI代码的格式化:
A).运用CSS格式化列表符: ul li{
list-style-type:none;
}
B).如果你想将列表符换成图像,则: ul li{
list-style-type:none;
list-style-image: url(/blog/images/icon.gif);
}
C).为了左对齐,可以用如下代码: ul{
list-style-type:none;
margin:0px;
}
D).如果想给列表加背景色,可以用如下代码: ul{
list-style-type: none;
margin:0px;
}
ul li{
background:#CCC;
}
E).如果想给列表加MOUSEOVER背景变色效果,可以用如下代码: ul{ list-style-type: none; margin:0px; }
ul li a{ display:block; width: 100%; background:#ccc; }
ul li a:hover{ background:#999; }说明:display:block;这一行必须要加的,这样才能块状显示!

F).LI中的元素水平排列,关键FLOAT:LEFT: ul{
list-style-type:none;
width:100%;
}
ul li{
width:80px;
float:left;
}
<ul><li>的区别
<LI> 的参数设定(常用):
例如: <li type="square" value="4">

type="square"
只适用于非顺序清单,设定符号款式,其值有三种,如下,内定为 type="disc":
符号 是当 type="disc" 时的列项符号。
符号 if" width=10 height=10 border=0> 是当 type="circle" 时的列项符号。
符号 是当 type="square" 时的列项符号。
value="4"
只适用于顺序清单,设定该一项的数目,其後各项将以此作为起始数目而递增,但前面各项则不受影响,其值只能是 1,2,3.. 等整数,没有内定值。
<UL>称为无序清单标记。
所谓无序清单就是在每一项前面加上 、、等符号,故又称符号清单。
<UL> 的参数设定(常用):
例如: <UL type="square">

type="square"
设定符号款式,其值有三种,如下,内定为 type="disc":
符号 是当 type="disc" 时的列项符号。
符号 是当 type="circle" 时的列项符号。
符号 是当 type="square" 时的列项符号。

<ul>是项目列表,<li>是列表项,项目列表就是用符号来列的,所以你列出来默认的就是黑点啦,还有一个是<ol>这个是编号列表,用数字来列的,也是用<li>做列表项
<li>是 list item 即列表项,但列表有很两种,所以外面得有 <ul> 或者 <ol> 用来区别无序列表(小点点)和有序列表(1,2,3...)。

posted @ 2010-02-25 11:14 Angle Wang 阅读(378) | 评论 (0)编辑 收藏

CSS实现隔行换色2种方法

网页设计制作,CSS实现隔行换色的2种方法:

第1种方法:
<style type="text/css">
UL.myul1 LI{background-color: expression(this.sourceIndex%2==0?'#9FB7F6':'#B6C8F8');
}
</style>
<ul class="myul1">
<li id="li1">111</li>
<li id="li2">222</li>
<li id="li2">333</li>
<li id="li2">444</li>
<li id="li2">555</li>
<li id="li2">666</li>
</ul>


第2种方法:

<style type="text/css">
<!--
.li01 { background:#FFF; }
.li02 { background:#000; }
li a{width:100%;display:block;}
li a:hover{background:red;}
-->
</style>

<div id="list01"><ul>
<li class="title"><a href="#">title</a></li>
<li><a href="#">111</a></li>
<li><a href="#">222</a></li>
<li><a href="#">333</a></li>
<li><a href="#">444</a></li>
<li><a href="#">555</a></li>
<li><a href="#">666</a></li>
</ul></div>

<script Language="Javascript1.2">

objName=document.getElementById("list01").getElementsByTagName("li")

for (i=0;i<objName.length;i++) {
(i%2==0)?(objName(i).className = "li01"):(objName(i).className = "li02");
}
</script> 

posted @ 2010-02-25 10:35 Angle Wang 阅读(228) | 评论 (0)编辑 收藏

DIV CSS网页布局:三行三列自适应高度的DIV布局

通常在DIV布局中,自适应高度一直是比较头疼的问题,一般大都采用背景图、外套DIV、右栏覆盖左栏来解决。现在加了脚本后,简单多了,假如有三个水平并列的DIV,fbox、mbox、sbox,只要在标签中写入:onload="P7_equalCols('fbox','mbox','sbox')",测试条件:ie5.x、ie6.0、FF1.03、NS7.2、opera8.01   
JS代码:版权归原作者,仅供学习研究.
 Example Source Codeom]
/*  
------------------------------------------------ 
PVII Equal CSS Columns scripts 
Copyright (c) 2005 Project Seven Development 
www.projectseven.com 
Version: 1.5.0 
------------------------------------------------ 
*/ 
function P7_colH(){ //v1.5 by PVII-www.projectseven.com 
var i,oh,hh,h=0,dA=document.p7eqc,an=document.p7eqa;if(dA&&dA.length){ 
for(i=0;i oh=dA[i].offsetHeight;h=(oh>h)?oh:h;}for(i=0;i dA[i].style.height=h+'px';}else{P7_eqA(dA[i].id,dA[i].offsetHeight,h);}}if(an){ 
for(i=0;ih){ 
dA[i].style.height=(h-(hh-h))+'px';}}}else{document.p7eqa=1;} 
document.p7eqth=document.body.offsetHeight; 
document.p7eqtw=document.body.offsetWidth;} 

function P7_eqT(){ //v1.5 by PVII-www.projectseven.com 
if(document.p7eqth!=document.body.offsetHeight||document.p7eqtw! =document.body.offsetWidth){ 
P7_colH();} 

function P7_equalCols(){ //v1.5 by PVII-www.projectseven.com 
if(document.getElementById){document.p7eqc=new Array;for(i=0;i document.p7eqc[i]=document.getElementById(arguments[i]);} setInterval("P7_eqT()",10);} 

function P7_eqA(el,h,ht){ //v1.5 by PVII-www.projectseven.com 
var sp=10,inc=10,nh=h,g=document.getElementById(el),oh=g.offsetHeight,ch=parseInt(g.style.height) ; 
ch=(ch)?ch:h;var ad=oh-ch,adT=ht-ad;nh+=inc;nh=(nh>adT)?adT:nh;g.style.height=nh+'px'; 
oh=g.offsetHeight;if(oh>ht){nh=(ht-(oh-ht));g.style.height=nh+'px';} 
if(nh

posted @ 2010-02-25 10:08 Angle Wang 阅读(527) | 评论 (0)编辑 收藏

DIV CSS网页布局常用的方法与技巧

CSS布局常用的方法
float:none|left|right 
取值:
none: 默认值。对象不飘浮
left: 文本流向对象的右边
right: 文本流向对象的左边 

它是怎样工作的,看个一行两列的例子 
xhtml代码:

 Example Source Code
<div id="wrap"> 
<div id="column1">这里是第一列</div> 
<div id="column2">这里是第二列</div> 
<div class="clear"></div> /*这是违背web标准意图的,只是想说明在它下面的元素需要清除浮动*/ 
</div>

CSS代码:
 Example Source Code
#wrap{width:100;height:auto;} 
#column1{float:left;width:40;} 
#column2{float:right;width:60;} 
.clear{clear:both;}


position:static|absolute|fixed|relative
取值:
static: 默认值。无特殊定位,对象遵循HTML定位规则
absolute: 将对象从文档流中拖出,使用left,right,top,bottom等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据body对象。而其层叠通过z-index属性定义
fixed: 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
relative: 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置 

它来实现一行两列的例子 
xhtml代码:
 Example Source Code
<div id="wrap"> 
<div id="column1">这里是第一列</div> 
<div id="column2">这里是第二列</div> 
</div>

CSS代码:
 Example Source Code
#wrap{position:relative;/*相对定位*/width:770px;} 
#column1{position:absolute;top:0;left:0;width:300px;} 
#column2{position:absolute;top:0;right:0;width:470px;} 

他们的区别在哪?
显然,float是相对定位的,会随着浏览器的大小和分辨率的变化而改变,而position就不行了,所以一般情况下还是float布局!


CSS常用布局实例
单行一列

 Example Source Code
body{margin:0px;padding:0px;text-align:center;} 
#content{margin-left:auto;margin-right:auto;width:400px;} 

两行一列 
 Example Source Code
body{margin:0px;padding:0px;text-align:center;} 
#content-top{margin-left:auto;margin-right:auto;width:400px;} 
#content-end{margin-left:auto;margin-right:auto;width:400px;} 

三行一列
 Example Source Code
body{margin:0px;padding:0px;text-align:center;} 
#content-top{margin-left:auto;margin-right:auto;width:400px;width:370px;} 
#content-mid{margin-left:auto;margin-right:auto;width:400px;} 
#content-end{margin-left:auto;margin-right:auto;width:400px;}

单行两列
 Example Source Code
#bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;} 
#bodycenter#dv1{float:left;width:280px;} 
#bodycenter#dv2{float:right;width:420px;} 

两行两列
 Example Source Code
#header{width:700px;margin-right:auto;margin-left:auto;overflow:auto;} 
#bodycenter{width:700px;margin-right:auto;margin-left:auto;overflow:auto;} 
#bodycenter#dv1{float:left;width:280px;} 
#bodycenter#dv2{float:right;width:420px;} 

三行两列
 Example Source Code
#header{width:700px;margin-right:auto;margin-left:auto;} 
#bodycenter{width:700px;margin-right:auto;margin-left:auto;} 
#bodycenter#dv1{float:left;width:280px;} 
#bodycenter#dv2{float:right;width:420px;} 
#footer{width:700px;margin-right:auto;margin-left:auto;overflow:auto;clear:both;} 


单行三列
绝对定位 

 Example Source Code
#left{position:absolute;top:0px;left:0px;width:120px;} 
#middle{margin:0px190px0px190px;} 
#right{position:absolute;top:0px;right:0px;width:120px;} 


float定位一
xhtml代码:
 Example Source Code
<div id="wrap"> 
<div id="column"> 
<div id="column1">这里是第一列</div> 
<div id="column2">这里是第二列</div> 
<div class="clear"></div>/*用法web标准不建议,但是记住下面元素需要清除浮动*/ 
</div> 
<divid="column3">这里是第三列</div> 
<divclass="clear"></div>/*用法web标准不建议,但是记住下面元素需要清除浮动*/ 
</div> 

CSS代码:
 Example Source Code
#wrap{width:100;height:auto;} 
#column{float:left;width:60;} 
#column1{float:left;width:30;} 
#column2{float:right;width:30;} 
#column3{float:right;width:40;} 
.clear{clear:both;} 


float定位二
xhtml代码:
 Example Source Code
<div id="center"class="column"> 
<h1>Thisisthemaincontent.</h1> 
</div> 
<div id="left"class="column"> 
<h2>Thisistheleftsidebar.</h2> 
</div> 
<div id="right"class="column"> 
<h2>Thisistherightsidebar.</h2> 
</div>

CSS代码:
 Example Source Code
body{ 
margin:0; 
padding-left:200px;/*LCfullwidth*/ 
padding-right:190px;/*RCfullwidth CCpadding*/ 
min-width:200px;/*LCfullwidth CCpadding*/ 

.column{ 
position:relative; 
float:left; 

#center{ 
width:100; 

#left{ 
width:200px;/*LCwidth*/ 
right:200px;/*LCfullwidth*/ 
margin-left:-100; 

#right{ 
width:190px;/*RCwidth*/ 
margin-right:-100; 
}

posted @ 2010-02-25 10:04 Angle Wang 阅读(174) | 评论 (0)编辑 收藏

CSS Hack汇总快查

 

原文:http://andymao.com/andy/post/76.html

屏蔽IE浏览器(也就是IE下不显示)

*:lang(zh) select {font:12px  !important;} /*FF的专用*/
select:empty {font:12px  !important;} /*safari可见*/
这里select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。
仅IE7识别

*+html  {…}
当面临需要只针对IE7做样式的时候就可以采用这个HACK。
IE6及IE6以下识别

* html  {…}
这个地方要特别注意很多地主都写了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。
html/**/ >body  select {……}
这句与上一句的作用相同。
仅IE6不识别

select { display /*IE6不识别*/:none;}
这里主要是通过CSS注释分开一个属性与值,流释在冒号前。
仅IE6与IE5不识别

select/**/ { display /*IE6,IE5不识别*/:none;}
这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。
仅IE5不识别

select/*IE5不识别*/ { display:none;}
这一句是在上一句中去掉了属性区的注释。只有IE5不识别
盒模型解决方法

selct {width:IE5.x宽度; voice-family :"\"}\""; voice-family:inherit; width:正确宽度;}
盒模型的清除方法不是通过!important来处理的。这点要明确。
清除浮动

select:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题 。

截字省略号

select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。
只有Opera识别

@media all and (min-width: 0px){ select {……}  }
针对Opera浏览器做单独的设定。
以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。

IE5.x的过滤器,只有IE5.x可见


@media tty {
i{content:"\";/*" "*/}} @import 'ie5win.css'; /*";}
}/* */
IE5/MAC的过滤器,一般用不着

[Copy to clipboard] [ - ]CODE:
/*\*//*/
    @import "ie5mac.css";
/**/
IE的if条件Hack

<!--[if IE]> Only IE <![endif]-->
所有的IE可识别
<!--[if IE 5.0]> Only IE 5.0 <![endif]-->
只有IE5.0可以识别
<!--[if gt IE 5.0]> Only IE 5.0+ <![endif]-->
IE5.0包换IE5.5都可以识别
<!--[if lt IE 6]> Only IE 6- <![endif]-->
仅IE6可识别
<!--[if gte IE 6]> Only IE 6/+ <![endif]-->
IE6以及IE6以下的IE5.x都可识别
<!--[if lte IE 7]> Only IE 7/- <![endif]-->
仅IE7可识别

posted @ 2010-02-25 10:00 Angle Wang 阅读(149) | 评论 (0)编辑 收藏

仅列出标题
共3页: 上一页 1 2 3 下一页