Sep 01
引子:彻底放弃表格布局,使用xhtml+CSS建站也已经有一年多了。一年多的实践也积累了一定的经验,现在写这篇文章来总结一下。在使用xhtml+CSS建站的过程中有一个比较关键的问题:网站的CSS样式表规划与管理。
我的CSS管理进化史
在 最初使用CSS来控制网站样式的时候,并不清楚CSS管理规划之类的东西,所写的CSS基本上都是按照需要,随时添加,刚开始还不觉得有什么不好,但是后 来越加越多,越改越乱,虽然有一些注释,但到最后还是变得让我自己看着都头疼。那个时候,一个网站所有的CSS都在一个文件中,没有规划,并且排序也没多 少规律,于是只能在html页面中找到class的名称,然后在上千行的css代码中搜索自己想要的那个。
过了一段时间,思考总结之后,我对站点的CSS样式表进行了初级的规划。在样式表中初步划分了三个区域:
base 样式表
layout 样式表
class 样式表
其 中“base 样式表”用来描述一些公共性的东西,比如全局性的body、a样式等;“layout 样式表”用来描述具有唯一性的id布局,属于整个页面的框架式布局;“class 样式表”用来描述剩下的class类的样式,这类样式分为可复用样式和通常只在特殊页面出现一次或几次的样式。
按照这种方法布局的确提高了不少的效率,但这种方式只适合中小型网站,在大型网站上应用还是略显单薄,至少在多人协作的时候并不能达到最佳效率。于是就有了下面总结的较完善的CSS管理规划模式。
阅读这篇文章的其余部分 »
固定链接:
站点的CSS样式表管理规划经验总结 Tags:
CSS
Aug 31
下面是我翻译的内容,是根据我对文章的理解意译的,你就别挑哪里翻译的不对了,我的目的只是传达这个CSS技巧
许多网页设计师都喜欢,将两个或者多个容器等高的并排放置,并在里面展示每个容器的内容,就象经典表格布局中的单元格控制几个栏目的位置,也喜欢容器的内容居中或顶部对齐显示。
但是你又不喜欢用table来实现他,那怎么办呢?实现的方法很多,有根据视觉错觉实现的,有用JS控制使高度相等的,还有采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题。
其实有个简单的方法,使用display:table, display:table-row and display:table-cell 就可以实现,而且高度小的容器会自适应那些高度相对较高的,但是IE不支持这个属性,我们先不用去责备IE,相信以后会有所改善的。这里我制作了一个模型。
阅读这篇文章的其余部分 »
固定链接:
CSS技巧!像table一样布局div Tags:
CSS,
布局,
table
Aug 31
屏蔽IE浏览器(也就是IE下不显示)
*:lang(zh) select {font:12px !important;} /*FF,OP可见*/
select:empty {font:12px !important;} /*safari可见*/
这里select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。
仅IE7识别
*+html {…}
当面临需要只针对IE7做样式的时候就可以采用这个HACK。
IE6及IE6以下识别
* html {…}
这个地方要特别注意很多地主都写了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。
仅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浏览器做单独的设定。
IE5.x的过滤器,只有IE5.x可见
@media tty {
i{content:”\”;/*” “*/}} @import ‘ie5win.css’; /*”;}
}/* */
IE5/MAC的过滤器,一般用不着
/*\*//*/
@import “ie5mac.css”;
/**/
固定链接:
CSS Hack汇总快查 Tags:
CSS,
兼容
Aug 31
- 原文作者:Douglas Bowman
- 原文出自:A List Apart
- 中文翻译:54player.com nobita
- 版权说明:本文中文翻译版权归译者54player.com nobita所有。需要转载发表的,请先与作者联系
在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果。根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素。在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用。
标签导航栏就是其中的一个例子。过去,我们频繁的使用这些标签,并已成为了一种非常流行的站点导航方式。现今,在CSS已被广泛支持的前景下,我们可以为我们站点制作出更高质量和更好外观的标签导航栏来。你也许知道CSS可以用来“驯服”无序的列表,或许你还曾经看到过这种样式的标签列表:
![[一般的基于CSS的标签,采用单色及直角]](http://www.w3cn.org/article/translate/2005/images/tabex1.gif)
如果我们想用和以上类似的标记,将导航标签变成这种样式,该怎么办呢?
阅读这篇文章的其余部分 »
固定链接:
CSS中的滑动门技术 Tags:
CSS,
滑动门,
菜单