[译]渐进增强:纯CSS聊天泡泡

标签: 网站重构 | 发表时间:2010-05-07 16:54 | 作者:Rhythm winners
出处:http://cnydg.com

原文地址:http://nicolasgallagher.com/progressive-enhancement-pure-css-speech-bubbles/
作者:Nicolas Gallagher
译者:米随随

聊天泡泡做为一种UI表现形式是广大网民群众所喜闻乐见,但许多教程实现它却总是需要上使用非语义的HTML或者JavaScript。而本教程中 的各种聊天泡泡只需要使用到CSS2.1来构建,并用CSS3来增强效果。不使用图片,也不使用JavaScript和更加不使用当前语义没用到的 HTML哦。
在CSS文件中有大量对代码的注释,可以让你方便的看懂这些代码。(译者:在翻译时作者要求DEMO页面要用原先的网址,所以这些注释没有翻译,当然当你 看完本文,了解清楚实现方式,哪么不看注释也是可以看懂代码。)

查看DEMO:纯 CSS聊天泡泡

纯CSS聊天泡泡
只需要简单的HTML代码: <div>Content</div><p>Content</p> 就可以做出以下的聊天泡泡效果:

如果再添加一个子元素,例如 <blockquote>Quote</blockquote> 再可以做出这样的聊天泡泡效果:

我建议您使用伪类 :before 和(或者) :after 来创建HTML文档中没有写入的DOM并且用CSS来控制他们的表现。(译者:这里就是本文最为关键的一句话了,伪类在非IE的浏览器 中竞然可以在HTML中创建一个DOM元素,并且可以用CSS来控制哦~哪么为什么伪类会表形成一个DOM元素呢,可能浏览器为了实现伪类的效果而产生 的,这里则被作者发现并利用了。)
再使用CSS3中的 border-radiustransform 就可以来表现更为复杂的图形,更详情的说明请看《CSS typography experiment》(译者:本文未翻译)

示例代码
以下代码主要是创建一个有几个最基本的渐进增强型聊天泡泡的DEMO。更多的DEMO请看 纯 CSS聊天泡泡 及在 相 关CSS文件 使用。


/* 泡泡及小三角
------------------------------------------ */
 .triangle-isosceles {
position:relative;
padding:15px;
margin:1em 0 3em;
color:#000;
background:#f3961c;
 /* 这里是用CSS3来控制圆角和渐变效果 */
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
background:-moz-linear-gradient(top, #f9d835, #f3961c);
background:linear-gradient(top, #f9d835, #f3961c);
}
 /* 创建三角形(译者:请注意这里,这里就是在控制伪类所创建的DOM元素) */
.triangle-isosceles:after {
content:"0a0";
display:block; /* 针对 FF3.0 */
position:absolute;
z-index:-1;
bottom:-30px;
left:50px;
width:0;
height:0;
border-width:15px 15px;
border-style:solid;
border-color:#f3961c transparent transparent;
}

一些说明:
本方法是一个渐进增强的过程。首先是创建一个简单的层,然后是用伪类来实现泡泡的“小三角”,然后用CSS3来实现圆角及渐变背景。层、 伪类、圆角、渐变背景这四个特性会根据浏览器的渲染能力而有不同的体验。
所以,不充分支持CSS2.1(如IE6和IE7)或不充分支持的CSS3(如IE8)的浏览器,他们将无法让用户体验到出最好的效果。

关于Firefox3.0的提示:
FF3.0支持的CSS2.1的伪类生成的DOM,但不支持对生成的元素的定位。DEMO中的一些例子我认为在FF3.0中是不能接受的,即FF3.0不 能处理最基本的聊天泡泡。根据NetApplications公司2010年3月的统计,FF3.0浏览器目前约有2%〜4%的市场份额。所以应用本技术 之前,应该考虑FF3.0在你的访问者中的重要性。不过,最终它将成为一种罕见的浏览器。但对于FF3.0本文中的技术没有更好的支持方 案。

原文链接: http://isd.tencent.com/?p=1781

相关 [渐进增强 css 聊天] 推荐:

[译]渐进增强:纯CSS聊天泡泡

- winners - 硬导购
原文地址:http://nicolasgallagher.com/progressive-enhancement-pure-css-speech-bubbles/. 作者:Nicolas Gallagher. 聊天泡泡做为一种UI表现形式是广大网民群众所喜闻乐见,但许多教程实现它却总是需要上使用非语义的HTML或者JavaScript.

理解前端开发中的优雅降级及渐进增强

- - 博客园_新闻
在前端开发中,遇到最麻烦的事情就是浏览器的兼容性问题. 对于这个问题的解决,通常有如下两种思路:. 优雅降级指的是一开始就构建站点的完整功能,然后针对浏览器测试和修复. “优雅降级”观点认为应该针对那些最高级、最完善的浏览器来开发网站. 而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,并把测试对象限定为主流浏览器(如 IE、Mozilla 等)的前一个版本.

CSS图形

- GLORY - 酷壳 - CoolShell.cn
下面的示例展示了使用纯CSS制作的各种图形,你可以自由地修改文中的CSS代码. 经测试,IE9, Chrome, FF, Safari都可以正常显示. 五角星形 via Kit MacAllister. 心形 via Nicolas Gallagher. 无穷大 via Nicolas Gallagher.

用 Compass 寫 CSS

- Jay - Blog.XDite.net
最近在開發一個新產品,整體來說應該是接近寫完了,不過越接近完工,抓 IE 系列的 bug 就越是挫折. 朋友 @evenwu 就來洗我要不要換成 Compass,說這東西超神奇,超好用,還可以把 IE bug 殺光光. 其實之前就久仰 Compass 大名了,只是文件實在看起來太他媽的眼花繚亂,因為專案進度一直在跑,不太敢貿然換掉寫 CSS 的方式.

CSS 入门

- - 博客 - 伯乐在线
级联样式表非常简单,也就是 (X)HTML 网页之上的分层设计. 使样式表 “级联”,这样您就可以跨站点应用它 — 也就是说,将样式应用到网站,它就会自行应用到每个网页的每个元素. ●XHTML:可扩展 HTML. 对于网站,将数据与设计分离是一个重要的概念:数据使用 (X)HTML 发送到 浏览器,而设计使用 CSS 应用到该数据.

css 圆角

- - CSDN博客推荐文章
作者:kangquan2008 发表于2012-2-20 22:32:24 原文链接. 阅读:6 评论:0 查看评论.

CSS架构

- - 博客 - 伯乐在线
英文原文: CSS Architecture,编译: CSDN-张红月. Philip Walton 在AppFolio担任前端工程师,他在Santa Barbara on Rails的聚会上提出了CSS架构和一些最佳实践,并且在工作中一直沿用. 擅长CSS的Web开发人员不仅可以从视觉上复制实物原型,还可以用代码进行完美的呈现.

CSS总结

- - CSDN博客Web前端推荐文章
         接触过一段CSS,为简单理解,将CSS说成两步,一步是你做个“记号”,另一步是根据记号设置样式.      网页的内容和样式是分开的. “记号”便是能标识网页中某部分内容的关键字词(选择器),而根据记号设置样式呢,就是按图索骥根据记号设置标识的那部分内容的样式.     这段时间练习的每个CSS小例子,或是用id做记号,或是用name,或是用class,只有有了这些所谓的记号,CSS设定的样式才有用,.

CSS基础

- - CSDN博客Web前端推荐文章
1、引入CSS的四种方式. 行内样式、内嵌样式、链接样式、导入样式. 基本选择器:标签选择器,ID选择器,类选择器,通用选择器. 通用选择器:*{css代码}. 通用选择器作用:对整个网页中所有HTML标签进行样式定义. 常见用法:定义*{margin:0;padding:0}通用样式,并置于CSS文件最顶端,用于对HTML内所有的标签进行重置以保证页面能兼容多种浏览器.

CSS命名规范

- - BlogJava-首页技术区
网上整理的比较好的css命名规则,为css代码的规范化做参考,增加代码的可读性. 容器: container 页头:header 内容:content/container. 页面主体:main 页尾:footer 导航:nav . 侧栏:sidebar 栏目:column 左右中:leftright center .