分类“HTML & CSS”的存档

2009.1122
默认Web字体样式

通常用户看到的页面的样式会受到三层控制,第一层是浏览器的默认样式,第二层是网页定义样式,第三层是用户自定义样式。和CSS一样,后面的优先级高于前面的,也就是说网页定义样式可以覆盖浏览器的默认样式,而用户自定义样式优先级最高。实际情况是虽然浏览器都或多或少提供了用户自定义样式的功能,但是极少数会有用户去自定义,一般用也是高级用户。而浏览器默认的样式往往在不同的浏览器、不同的语言版本甚至不同的系统版本都有不同的设置,这就导致如果直接利用默认样式的页面在各个浏览器下显示非常不一致,于是就有了类似YUI的reset之类用来尽量重写浏览器的默认设置保证各个浏览器样式一致性的做法。

拿字体来说,各个浏览器默认的字体种类、字体大小和字体行高都不一样,比如IE8的中文版在Windows XP下显示网页时默认字体是宋体,而英文版肯定不会如此。所以我们需要统一设置默认的字体样式,以便实现一致的显示效果来保证设计的一致性和提高开发效率。

以后准备使用如下默认字体样式:

body{
  font: 12px/1.5 arial;
}

阅读全文 »

标签:, , , ,
在18:36发表于HTML & CSS,有评论34
2009.0910
IE中选择符的4095限制

去年曾总结了《IE对CSS样式表的限制和解决方案》中限制的第4条写道“一个CSS文件的不能超过288kb?”,这是一个疑问句,当时没有重现出来且参考来自Internet Explorer CSS File Size Limit。今天终于看到了IE在CSS上的另一个限制:IE中每个style标签或css文件的选择符个数不能超过4095。其实style属性也应该有这个限制,但是几乎不可能发生。这个限制在IE6、IE7和IE8中存在。请看IE关于4095个选择符限制的DEMO

阅读全文 »

标签:, , , ,
在23:42发表于HTML & CSS,有评论19
2009.0906
CSS实现HTML元素透明的那些事

CSS3草案中定义了{opacity:<length> | inherit;}来声明元素的透明度,这已经得到了大多数现代浏览器的支持,而IE则很早通过特定的私有属性filter来实现的,所以HTML元素的透明效果已经无处不在了。首先看看A级浏览器所支持的用CSS实现元素透明的方案

阅读全文 »

标签:, , , , , , , ,
在23:44发表于HTML & CSS, Javascript & DOM & AJAX,有评论32
2009.0815
Data URI 和 MHTML

Data URI

Data URI是由RFC 2397定义的一种把小文件直接嵌入文档的方案。通过如下语法就可以把小文件变成指定编码直接嵌入到页面中:

data:[<MIME-type>][;base64],<data>
  1. MIME-type:指定嵌入数据的MIME。其形式是[type]/[subtype]; parameter,比如png图片对应的MIME是image/png。parameter可以用來指定附加的信息,更多情況下是用于指定text/plain和text/htm等的文字编码方式的charset参数。默认是text/plain;charset=US-ASCII。
  2. base64:声明后面的数据的编码是base64的,否则数据必须要用百分号编码(即对内容进行urlencode)。

阅读全文 »

标签:, , ,
在0:54发表于HTML & CSS,有评论29
2009.0614
用doctype激活浏览器模式

为了处理根据Web标准创作的网页和根据在20世纪90年代末流行的陈旧实践创作的网页,现代的Web浏览器实现了各种不同的引擎模式。本文说明了那些模式是什么以及如何触发它们。

原文:Henri SivonenActivating Browser Modes with Doctype2009.05.19

文档范围

本文包括的模式转换(mode switching)适用于Firefox和其他基于Gecko的浏览器,Safari、Chrome和其他基于Webkit的浏览器,Opera、 Konqueror、Mac版Internet Explorer、Windows版Internet Explorer和内嵌IE的浏览器。避免提及浏览器引擎的名字,取而代之的是使用该引擎最知名浏览器的名字。

本文着重介绍模式的选择机制,而不是记录每个模式的确切行为。

阅读全文 »

标签:, , ,
在15:19发表于HTML & CSS,有评论33
2008.1227
border-radius与圆角

两年前发表的《The visual design of Web 2.0》中提到“Rounded everything”,圆角因使人感觉舒适的友好风格而变得无处不在。这个无处不在也让很多前端工程师累个半死,YAHOO Performance Research Engneer Team的Nicole在讲演《Designing Fast Websites》中用的副标题是don’t blame the rounded corners!,从侧面也说明了圆角给实现者带来的困扰:实现麻烦、兼容困难、性能不佳。而W3C早在2002年的CSS3草案中就加入了一个叫border-radius的属性,通过它可以直接来定义HTML元素的圆角。 阅读全文 »

标签:, , ,
在19:25发表于HTML & CSS,有评论9
2008.1204
连续字符自动换行的解决方案

文本的排版依据语言的不同会有一些格式上的要求,比如简体中文中类似逗号、分号等标点符号不会出现在一行的开头,对于英文来讲就是一个完整单词不会在两行显示,浏览器会依据类似这样的原则来显示文本。但是由于网页有宽度限制的,连续的超长的字母、数字或标点符号超出其所在区域宽度的限制而导致影响页面视觉,如例1所示。这个问题在显示用户输入信息时尤为突出,这里就是要说如何解决这个问题。

CSS3草案中,对文本的处理新增了两个新属性word-wrapword-break来解决这个问题:

  1. {word-break:break-all;} :依照亚洲语言和非亚洲语言的文本规则,允许在字内换行,且允许非亚洲语言文本行的任意字内断开
  2. {word-wrap:break-word;}: 内容将在边界内换行,如需要则词内换行(word-break)也行发生

阅读全文 »

标签:, , , , , ,
在0:16发表于HTML & CSS, Javascript & DOM & AJAX,有评论17
2008.0712
CSS Hacks

Java一直标榜一句老话叫“编写一次,到处运行(Write Once,Run Anywhere)”,CSS也差一点点做到了。但就是为了差的一点点往往需要大量的工作,虽然这并不是CSS的错。基本上别妄想兼容所有的解析器了,仅仅是为了让网页在YUI中列举的A级浏览器呈现一致就不是一件特别容易的事情。虽然通过精心的组织HTML结构加上使用最合适最通用的CSS代码可能实现多浏览器呈现一致,但当在视觉的过度设计、精确到像素的规定和前端快速实现的要求的前提下,可能你不得不为不同的浏览器写不同的CSS代码,这就是CSS Hacks了。我们的目标是保持CSS简洁和没有CSS Hacks,但即使多年以前就呼吁Keep CSS simple的PPK也不得不在他的网站中使用CSS Hacks,即便如此其站点在所有的A级浏览器中也无法保持一致的呈现。所以,下面这个我常用的CSS Hacks列表或许有些用: 阅读全文 »

标签:,
在3:05发表于HTML & CSS,有评论17
2008.0617
是时候不用考虑基于字体大小(em)的设计了

今天是Firefox3的2008下载日(貌似北京时间是6.18的凌晨1:00),这就意味着Firefox3正式发布了。Firefox3有众多的改进和新功能,我最关注的功能之一是“全页面缩放(Full page zoom)”。这就意味着Firefox3和Opera以及IE7+都可以让用户“完全控制显示内容的大小同时自动调整页面布局和结构”,说白了就是可以让整个页面直接放大或缩小却不会乱掉。这就意味着我们不用再考虑为了可访问性而整个页面是基于字体大小(em)的设计了。 阅读全文 »

标签:, , , ,
在2:23发表于HTML & CSS,有评论46
2008.0512
语义、标准和样式

大概在2004年初的时候,我第一次买了一本很厚的书,名字或许叫《Dreamweaver MX从入门到精通》,很认真看着书并实践操作大约三分之二后,就感觉自己不错了,利用Dreamweaver加上表格套表格可以把视觉精确的转化成静态页面,在那年底我完成了随网之舞的第一版。也就是在那个时候“WEB标准”这个新名词闯入了我的视线,《网站重构》这本书和w3cn.org吸引了我。2005年初,当我在广东茂名实习的时候,我第一次利用当时理解的标准,准确来说就是利用XHTML1.0加上利用CSS布局做了两个能同时兼容IE5.0+和Firefox的站点。毕业后,看到到处言必称标准,开发时强调XHTML1.0的语法规范(标准貌似被很多人认为就是XHTML1.0+CSS),检查时强调W3C的验证器(比如为了通过验证利用Javascript实现弹窗),招聘是强调会DIV+CSS(这是标准的另一个称呼,甚至到现在偶尔还有人给我一个链接对我说:”看我按标准做的网页,全部是DIV,一个TABLE都没有。”),那个时候似乎陷入了对基础语法(通过验证)和对CSS技能(hack技术)的追求上去了。后来,当我了解HTML的历史时,我才注意到HTML众多版本的标准,意识到HTML本质是用语义结构化文档和构建WWW的超链接。 阅读全文 »

标签:, , , , , , ,
在0:48发表于HTML & CSS,有评论14

回到页眉