即使所有的浏览器都不支持,我们也应该学习所有的CSS(至版本3),即使我们不使用吗?

4

即使所有浏览器都不支持并且我们不使用,我们是否应该学习所有CSS(直到版本3)?

这里提到了http://meiert.com/en/indices/css-properties/所有CSS属性,我不知道所有2.1版本中的属性,即使它们没有被使用,我们是否应该学习每个版本的每个CSS属性。

我还没有学习这些CSS 2.1属性。

caption-side
clip
counter-increment
counter-reset
cue
cue-after
cue-before
direction
elevation
orphans
page-break-after
page-break-before
page-break-inside

pause
pause-after
pause-before

pitch
pitch-range
play-during
richness
right

size 
speak
speak-header
speak-numeral
speak-punctuation
speech-rate
stress

table-layout

unicode-bidi

voice-family

1
这是一个相当令人印象深刻的列表。我想代表许多以前的CSS高手说,我从没听说过这些东西。 - harpo
我有。虽然这并不会减少它的印象,但其中大多数项目都是针对非常特定的情况。 - ANeves
9个回答

4
我建议您下载一个“备忘单”(示例)作为参考,以便查看那些不常用的属性,而不是试图记住您不使用的内容。尝试熟悉所有功能是很好的--我建议浏览教程(例如,以及另一个,和更注重设计的一个),并学习看起来有趣的技术,而不是标准的技术。最终,您会熟悉标准,很少需要使用备忘单。

2

学以致用。您随时可以学习其他内容。


2
要实现CSS的道路,你必须理解的不仅仅是一堆语法规则。你还需要学习: 1. 暴力逻辑并不能奏效。浏览器兼容性问题、CSS中的"C"以及Internet Explorer的支持滞后都会让你抓狂。要明白CSS只是一种方法,如果某个东西可用,那么你不一定需要知道它为什么可用。接受这些微妙之处并且容忍IE。 2. 学习多种调试方式。我在Stack Overflow上看到很多问题,比如“我的CSS在IE中无法正常工作”。向S.O.用户请教调试代码并不能真正教会你如何解决问题。调试几乎和编写代码同样重要。学习多种调试方法,其中一种是逐个删除和添加样式属性,另一种是使用FireBug进行实时调整,还有一种是使用临时内联样式。如果你擅长调试,那么你可以更快地编写代码。 3. 编写的CSS越少,代码就越好。层叠是CSS的一个基本特性。如果你没有使用它,那么编写CSS还有什么意义呢?要了解文档对象模型(DOM)、节点树,并明智地放置你的选择器。 额外奖励:弄明白为什么它们被称为“样式表”,如果你知道答案,请在评论中留言。

接受IE?x_x但我真的很喜欢这个答案,尽管它并不是非常针对问题。 - ANeves

0

知识越多,越好。
即使你现在不打算使用这些知识。
如果你根本没有这些知识,你永远也不会使用它。
如果现在对你来说似乎没有用处,不要深入细节,直到你需要它。但至少试着听说过它。

问题是,为什么你不学习它们呢?


1
因为学习某件事情半吊子地进行,会导致我们当前的状况——比如...(X)HTML、设计模式(单例滥用,有人吗?)、需要150年才能查找单个记录的数据库,因为有人说“索引?谁需要它?数据库总能找到我的数据”...当然,还有那些用所有编程语言编写糟糕代码的渣滓。仅学习一半的东西往往比不学还要糟糕。 - cHao
1
@chao:是的,但在这种情况下,它不是一个复杂的系统,而是支持或不支持个别规则。CSS的基本思想在V3中没有改变,我们的工具箱只是变得更加丰富了一些。 - Matt Briggs
我应该补充一点,只是为了把这个小抱怨带回主题...每个人都支持“正常”的日常属性。更奇特的东西没人用...那些要么没有实现,要么在这个浏览器或那个浏览器中出现问题。除非它在所有主要浏览器中都得到支持,并且在它们之间保持一致,否则将需要一些“黑科技”才能使其在其他地方工作--如果你要以其他方式(有效)完成它,那还有什么意义,不是对W3C的盲目崇拜? - cHao
1
@chao:除了IE,所有主要浏览器都已经支持border-radius一段时间了。目前实现圆角边框的技术有三种:使用JavaScript将数百个不同大小的div拼在一起以创建效果,让设计师为您绘制它,或者使用带有边框精灵的表格。第一种方法性能不佳且容易出错,第二种方法会在任何尺寸发生变化时破坏效果,第三种方法会导致页面加载缓慢,并且标记比应该有的多3-4倍。或者使用所有现代浏览器都支持的东西,并且对旧浏览器具有优雅的失败处理机制。 - Matt Briggs
1
@Matt:如果出现问题能够优雅地失败,我完全支持。但是人们跟随最新的“标准”——实际上要求支持它——然后当它看起来像垃圾时,就说:“是啊……你的浏览器太烂了,用火狐吧。”(这不是什么随机的例子,我听到的更多的是来自于火狐粉丝而非其他任何人,甚至包括IE粉丝。)我想这就是我对更奇特的东西最大的问题——并不是东西本身,而是那些使用它而不关心让它在不完美支持浏览器时不会显得可怕的人们。在我看来,这是错误的。 - cHao
显示剩余2条评论

0
我必须赞同Robert Harvey的看法,学习自己所需的知识非常重要。然而,至少阅读所有属性将极大地有助于每个人了解可用的选项,他们可能会学到某些东西,从而加快开发速度。

0

由于CSS3尚未正式发布,我倾向于不使用。但是有些属性值得关注,特别是那些可能被包含的属性。


0
我必须不同意这里的每个人。有很多CSS属性可以添加非常好的效果(text-shadow、box-shadow、border-radius、rgba、gradients等),如果特定的浏览器不支持它们,那么它们只会使事情看起来不太好。不仅如此,大量的CSS3已经被除IE之外的所有人支持。
一切都归结于你在做什么以及你的目标受众是谁。如果是开发人员,我不会犹豫使用仅在最近版本的Firefox、Safari、Chrome和Opera中可用的东西。如果是针对老年人的计算机教程网站,我会考虑两次是否使用基于CSS的div布局。
一旦你把IE和过时的浏览器版本排除在外,你可以用CSS做的事情就会大大增加。
话虽如此,你列出的未知属性大多是我不会费心去处理的边角案例。

0
许多这些属性都有非常特定的用例。如果您正在实现某种HTML5媒体播放器(或其他任何东西)并且不知道需要哪些特定属性,那么学习它们足够摆弄大约需要喝一杯咖啡的时间。不必担心记忆任何您看不到即时用途的属性,只需记住它们在需要的时候就在那里。

0

我偶尔会扫描一下属性,只是为了知道它们的存在以及何时出现。然后,如果有什么可以用到它们的地方,我至少会意识到这个工具,并花些时间学习它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接