使用XHTML 1.0 Strict,一些需要特别注意的地方

  • 永远使用小写字母,让引号伴随者属性: 所有元素和属性的名字都必须使用小写,所有属性值必须使用双引号。

    错误: <A HREF="index.HTML" CLASS=internal>
    正确: <a href="index.HTML" class="internal">

  • 关闭所有的元素: 在HTML中一些元素没有必要被关闭。当下一个元素开始的时候,上一个元素就自动被关闭。XHTML中是不允许这样的。所有元素都必须被关闭,即使其中没有内容(如<img>)。

    错误: <li>Item 1
    正确: <li>Item 1</li>

    错误: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    正确: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>

    错误: <br>
    正确: <br />

    错误: <img src="image.jpg" alt="">
    正确: <img src="image.jpg" alt="" />

  • 属性不能被缩减: 在HTML里,一些属性可以被缩减。而XHTML则不允许这样做。

    错误: <input type="checkbox" id="checkbox1" name="checkbox1" checked>
    正确: <input type="checkbox" id="checkbox1" name="checkbox1" checked="checked" />

  • 不要使用被排斥的元素: 一些元素和属性在HTML 4.01 Transitional和XHTML 1.0 Transitional是被允许的,而在XHTML 1.0 Strict下则不被支持(还有in HTML 4.01 Strict)。比如<font><center>alinkalignwidthheight (对于某些元素)和background

[轉載]http://www.456bereastreet.com/lab/developing_with_web_standards/zh

HTML4標籤的默認css樣式

html, address,
blockquote,
body, dd, div,
dl, dt, fieldset, form,
frame, frameset,
h1, h2, h3, h4,
h5, h6, noframes,
ol, p, ul, center,
dir, hr, menu, pre { display: block }
li { display: list-item }
head { display: none }
table { display: table }
tr { display: table-row }
thead { display: table-header-group }
tbody { display: table-row-group }
tfoot { display: table-footer-group }
col { display: table-column }
colgroup { display: table-column-group }
td, th { display: table-cell }
caption { display: table-caption }
th { font-weight: bolder; text-align: center }
caption { text-align: center }
body { margin: 8px }
h1 { font-size: 2em; margin: .67em 0 }
h2 { font-size: 1.5em; margin: .75em 0 }
h3 { font-size: 1.17em; margin: .83em 0 }
h4, p,
blockquote, ul,
fieldset, form,
ol, dl, dir,
menu { margin: 1.12em 0 }
h5 { font-size: .83em; margin: 1.5em 0 }
h6 { font-size: .75em; margin: 1.67em 0 }
h1, h2, h3, h4,
h5, h6, b,
strong { font-weight: bolder }
blockquote { margin-left: 40px; margin-right: 40px }
i, cite, em,
var, address { font-style: italic }
pre, tt, code,
kbd, samp { font-family: monospace }
pre { white-space: pre }
button, textarea,
input, select { display: inline-block }
big { font-size: 1.17em }
small, sub, sup { font-size: .83em }
sub { vertical-align: sub }
sup { vertical-align: super }
table { border-spacing: 2px; }
thead, tbody,
tfoot { vertical-align: middle }
td, th, tr { vertical-align: inherit }
s, strike, del { text-decoration: line-through }
hr { border: 1px inset }
ol, ul, dir,
menu, dd { margin-left: 40px }
ol { list-style-type: decimal }
ol ul, ul ol,
ul ul, ol ol { margin-top: 0; margin-bottom: 0 }
u, ins { text-decoration: underline }
br:before { content: "\A"; white-space: pre-line }
center { text-align: center }
:link, :visited { text-decoration: underline }
:focus { outline: thin dotted invert }
/* Begin bidirectionality settings (do not change) */
BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override }
BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override }
*[DIR="ltr"] { direction: ltr; unicode-bidi: embed }
*[DIR="rtl"] { direction: rtl; unicode-bidi: embed }
@media print {
h1 { page-break-before: always }
h1, h2, h3,
h4, h5, h6 { page-break-after: avoid }
ul, ol, dl { page-break-before: avoid }
}

[轉載]Appendix D. Default style sheet for HTML 4

</END>

3D桌面軟件bumptop

http://bumptop.com

相当强悍的东东,用了一下,交互做的不错,并且支持触摸屏操作。

整个桌面好比一个立体的小房间,有4面墙,双击墙就可以把视角转过去。
一组文件可以拖到半空中放着,水平一扔就会抛物线运动掉到地面上,还会在地面蹦几下。

文件碰到文件会弹开,碰到墙也会被反弹。

总的来说,不是很占资源,在我机器上跑得很流畅。



Continue reading →

準確獲取指定元素的CSS屬性值

  如何实现javascript精确获取元素css属性值?当处理 DOM 元素的 CSS 属性时,我们经常会遇到一个问题:明明页面上已经定义了 CSS 属性值,但在获取的时候却为空,这是因为任何样式表文件或内联 CSS 预设的样式信息并不能可靠地反映到 style 属性上,本文向你介绍准确获取指定元素 CSS 属性值的方法。

Javascript:
<script type="text/javascript">
function getStyle( elem, name )
{
??? //如果该属性存在于style[]中,则它最近被设置过(且就是当前的)
??? if (elem.style[name])
??? {
??????? return elem.style[name];
??? }
??? //否则,尝试IE的方式
??? else if (elem.currentStyle)
??? {
??????? return elem.currentStyle[name];
??? }
??? //或者W3C的方法,如果存在的话
??? else if (document.defaultView && document.defaultView.getComputedStyle)
??? {
??????? //它使用传统的"text-Align"风格的规则书写方式,而不是"textAlign"
??????? name = name.replace(/([A-Z])/g,"-$1");
??????? name = name.toLowerCase();
??????? //获取style对象并取得属性的值(如果存在的话)
??????? var s = document.defaultView.getComputedStyle(elem,"");
??????? return s && s.getPropertyValue(name);
??? //否则,就是在使用其它的浏览器
??? }
??? else
??? {
??????? return null;
??? }
}
</script>

[轉載]http://www.chinaz.com/Design/Rules/0122640202009.html

標籤語義化

前两天参加了公司组织的一个WD培训,有一节课讲了标签语义化,听了之后感觉特别有用,更正了我以前对 HTML 和 CSS 的错误看法。

首先说明的一点是,人可以通过视觉的划分判断内容的语义,搜索引擎看到的只是代码。搜索引擎只能通过标签来判断内容的语义。 以前我真的没有怎么重视过搜索引擎,现在开始比较在意了,因为页面的很大一部分流量是来自搜索引擎的,要使页面尽可能地对搜索引擎友好,所以就要尽可能地使标签语义化。

以前以我对web开发的粗浅理解,觉得写一个好的符合标准的页面只需要把结构和表现分离,然后不要使用table,font等标签就行了,至于通篇都是div我也不会觉得有什么问题,因为CSS很强大。但是,所有的标签都是有自己的语义的,下面给出一部分标签的语义:

div 语义:Division(分隔)
span 语义:Span(范围)
ol 语义:Ordered List(排序列表)
ul 语义:Unordered List(不排序列表)
li 语义:List Item(列表项目)
…………

如果无视标签语义和默认样式,所有标签都用div,其实也是可以写出来视觉效果很好的页面,只要你灵活运用CSS。但是那样的话虽然视觉上达到了要求,但是整个页面一点语义都没有,搜索引擎还是看不懂。所以,要记住:

结构(html)才是重点,样式(css)是用来修饰结构的。所以,要先确定html,确定标签,再来选用合适的css。

一般来说,所有的标签都会有一个默认的样式,所以一个简单的判断网页标签语义是否良好的方法就是:去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。

另外,值得重点提及的是h标签,h标签的语意是标题,搜索引擎对这个标签比较敏感,特别是h1,和h2。一个语义良好的页面,h标签应该是完整有序没有断层的。也就是说,要h1,h2,h3,h4这样推下来,不要h1,h3,h4,漏掉h2。一个结构良好的网页,h标签可以组织起一个网页的大纲。

以上这些东西都是WD的工程师阿当讲的,我受益匪浅,加深了对html的理解。HTML 虽然很简单,但是要用好也是很不容易的。

[轉载] http://www.zhuoqun.net/html/y2008/1096.html
另外,兩篇相關的文章:《语义化你的HTML标签和属性》《罕为人知的语义元素》