若干IEbug及解决方案

这篇东西写了很久,大概半个月了,开始想详尽的写完所有的IEbug,但是要回家了,暂时先把这些放出来吧。写的过程参考了很多文章,比以前明白了很多东西,也发现了很多不知道的问题,如果您看完了,发现任何错误疑点、任何意见观点可以评论或者发邮件给我。

命中注定总有一个浏览器作为复仇女神来到世界各地的开发者中,在web标准运动初期,这个角色是Netscape Navigator 4,垂死挣扎就是不肯死去,阻碍着现代标准的进程;今天这个角色被Internet Explorer 6这位邪恶的坏同学代替了。——Jeremy Keith

Read more

在IE主流时代诗意地编码(四)

工具集

Modernizr

如果你使用高级CSS属性,Modernizr 将是一个非常有用小型JavaScript。它为你的页面html标签添加一些类(class),来测试浏览器是否支持一些特定的CSS属性,像:
Read more

CSS选择符之四伪类和伪对象

可以运用伪类和伪对象来设置那些在DOM中不能操作的信息的样式。例如,通常需要格式化一个段落的第一行,或者一个标题的首字母。

伪类

伪类是通过对象的特征对其进行格式化的,而不是通过它们的标识符、属性或者内容。

伪类:first-child将匹配一个元素的第一个子对象。假如你打算让新闻的第一段更具有视觉效果。如果新闻出现在类名(class)为news的<div>元素中,下面的规则将格式化每篇新闻的第一个<p>元素:

div.news p:first-child {

font-weight: bold;

}

<div class=“news“>

<p>Hi, 认识圣斗士吗? </p>

<p>星矢穿着神圣衣进入哈迪斯的神殿后面的事情怎么样了?</p>

</div>

动态伪类(dynamic pseudo-class )是伪类的一个子集。它们指那些有某些动态特征的伪类。运用它们,能够根据站点访问者的特定行为来格式化对象。

:focus将应用于那些获得焦点的对象。例如,当访问者点击了一个表单或者一个标签页中的输入框的时候:

input[type=text] : focus {

color: #f00;

background-color:#666;

}

用伪类:lang可以格式化特定语言(或许与文档主体不同的语言)内容中的对象。例如,下面的规则将一个迷你国旗放在任何汉语<blockquote>上:

blockquote:lang(cn) {

padding-right : 30px;

background: url(images/cn.png) no-repeat right top;
}

<blockquote lang=”cn”>

<p>哈尔很帅,黄头发时候最帅。冈田秒子长大的样子好丑,真的很丑的,奇怪,怎么可以那么丑,笑的就更丑了。</p>

</blockquote>

伪对象

伪对象同样能格式化那些不能作为DOM节点的文档部分。

伪对象:first-line将以段落的第一行作为目标。任何第一行中的字数将会随着文字在浏览器中的大小而改变。

下面的规则应用于页面中所有段落的第一行:

p:first-line {

font-style: italic:

}

伪对象:first-letter能够将元素的第一个字母或者数字作为目标。接下来的规则将用到类名为introduction的<p>元素中的第一个字符:

p.introduction:first-letter {

font-weight: bold:

font-size:400%;

}

CSS选择符之三相邻选择符

相邻选择符由“+”连接符分隔的选择符组成。它匹配与第一个元素相邻的下一个元素。同时元素必须有相同的父级,并且第一个元素要在第二个之前。

h2 + p {

font-size: 20px;

border-bottom: 1px solid #666;

}

将上面的规则应用到下面这个例子中时,它只会影响第一段的内容

<h2>Hi, guy.</h2>

<p>preview on lost.</p>

<p>preview on prison break.</p>

CSS选择符之二子对象选择符

子对象选择符以所给元素的直属子对象为目标。例如,它使你能够格式化列表的直属子对象中的链接,以区别其他的链接。子对象选择符由两个或更多的一”>”连接符分隔的选择符组成。

提示? -_- -!连接符(Combinator)分隔组合选择符中的两个或更多个选择符。可用的连接符包括空格,> ,+,逗号,分号。(当然都是半角咯#_#)

下面的例子规则将设置所有属于<div>元素子对象的链接的样式:

div > a {

text-indent: 200px;

}

这个规则仅影响那些直属于<div>元素的子对象(不是其他自对象的子对象)<a>元素。如果其他元素出现在<div>和链接之间——例如<ul>元素——选择符将不会与之匹配,text-indent格式也会失效。

<div>

<a href=”http://www.5ivedanc.com”>yunsi me</a>

<ul><li><a href=”http://www.5ivedanc.com”>yunsi me</a></li></ul>

</div>

CSS选择符之一属性选择符

以下内容节选资料书籍来自CSU中图- -! 这个地方权当做重要笔记摘抄(包括不改变意义的篡改, 简写-___-),包括之前众多文字,New Riders & 人邮版权所有。或者其他xxx版权归其作者和出版商所有,笔记仅供学习。

属性选择符异常强大,通过它们可以基于一个元素是否有属性名称,例如href, 或是是属性值,如http://www.xx.com 来对这个元素设计样式。

在下面的例子中,所有包含alt属性的图像都将会有一个灰色的色框:

img[alt] {

border: 1px dotted #999;

}

<img src=”../img/5ve.jpg“ alt=”ID: Milo Xing” />

所有包含title属性的链接将是红色:

a[title] {

color: #f00;

}

<a href=”../blog/index.php” title=”5ivedance blog“>blog me</a>

同样能够基于属性的内容来格式化一个元素:

p[class="rant"] {

font-weight: bold;

text-transform: uppercase;

}

<p class=”rant“>

Hi, I’m 5ivedance.</p>

同样,

div[id="main"] {

float=left;

}

<div id=”main“><p>Hi, I’m 5ivedance.</p></div>

【也许你会觉得上面这两个列子不是纯属费事吗,恩,其实我也是这么觉得开始,只是多默念一下这句话吧:基于元素部分的属性设置元素的样式。】

运用模式匹配(pattern matching), 你能够基于元素部分的属性设置元素样式。在下面的例子用到引言(<q>)的引用(cite)属性中的URL:

q[cite*=http://www.5ivedance.com/] {

background: #f00;

}

<q cite=”http://www.5ivedance.com/?134/“>Hi, I … I …  I miss u.</q>