2010-07-10 82 views
10

我从过去两年开始开发网站,我很难学习CSS(只花了一整天的时间创建像twitter一样的登录框...)。迟早我会回到桌面布局,并完成任务(几乎所有我深入到其他源代码和谷歌喜欢地狱......但我希望我知道如何做到这一点,我的方式,我平时搞清楚我的编程问题而不是Google整天......)。越来越专业地学习css

即使在某个时候,如果我实现了创建完美布局的目标,并返回到IE进行测试,一切都会搞砸。

我是唯一开发它的人,所以通常我的时间花在设计上的时间是70%,编程时是30%。

我想我需要学习更多的东西,以便我花更少的时间调整布局和更多的时间来编程。

你是所有的程序员+设计师的工作?而且,如何掌握CSS?

+1

掌握CSS是不够救你脱离IE6。 – TNi 2010-07-10 07:39:35

+0

彻底学习CSS,以及一些IE怪癖,真的帮助我使用IE6。现在几乎所有我做的事情都只是在Ie6/7中做了很少的修改。 – JAL 2010-07-10 18:38:57

+1

这是一个链接,可能会帮助你:http://www.quirksmode.org/ – Alerty 2010-07-10 18:50:12

回答

13

所有的程序员+设计师是如何工作的?

在使用CSS时,我发现最好先设计和构建符合标准的浏览器的站点(我的首选是FireFox)。然后,当它看起来正确时,请检查它是否适用于Internet Explorer和其他浏览器。

对于任何复杂性的设计,不幸的是,多个浏览器会花费时间打开修复规则直到它是一致的。

而且,如何掌握CSS?

有几个improtant的东西来包装你的头左右,这将使你的CSS的生活更轻松: 首先我要学习的是Box model。这是关于这个问题,这是相当长的官方W3C的文章,所以我会包括以下的图像,以及,这简化了一点:

alt text

需要注意的是浏览器以不同计算这个是很重要的。

一旦您知道是什么导致事物自行调整大小,布局应该更容易以与表格相同的样式实现。

第二个帮助我围绕正在发生的事情是特异性This article帮助我解决了这个问题。基本总结是,每种类型的选择器(元素,类,id)都有一个归因于它的权重,如果一个元素具有更高权重的css值,则它将不会被覆盖。

#ID 0,1,0,0

的.class 0,0,1,0

p 0,0,0,1

1,0,0,0

所以,你的css文件说什么并不重要,一个内联样式优先。 例如:

a {color: red;}            (0,0,0,1) 
.class1 a {color: blue;}   Overwrites red    (0,0,1,1) 
#id1 a {color: green;}   Overwrites blue    (0,1,0,1) 
#id1 .class1 a {color: yellow;} Overwrites green    (0,1,1,1) 
#id2 a {color: red;}    Overwrites green, NOT yellow (0,1,0,1) 
#id1 #id2 a {color: black;}  Overwrites yellow and red (0,2,0,1) 

我仍然阅读文章。两次。

第三个要学习的是如何支持以前的浏览器(如IE6)和他们会困扰你的错误。我是这个网站的粉丝:http://www.positioniseverything.net/ 它们涵盖了清晰和解决方案,在实现跨浏览器对CSS的支持时会遇到许多浏览器错误。

一些你可能会与IE6遇到的错误是:

+0

IE6在标准模式下不使用MS的盒子模型,是吗? – JAL 2010-07-10 18:39:43

+0

任何人都知道http://www.molly.com/2005/10/06/css2-and-css21-specificity-clarified/的最新链接? – Antony 2011-05-17 19:38:59

+0

@Antony我用“The Wayback Machine”链接更新了它。我会尽力联系原作者,看看我是否可以在将来反映它,因为它看起来像博客已被删除,但现在会做。 – staticbeast 2011-05-17 23:24:49

3

2年前我有类似的问题。我阅读了CSS 2.1规范(从W3C免费下载) - 它很难阅读 - 用FF来回加载测试,但它确实巩固了我对CSS的理解(以及后来与CSS有关的项目)。大多数市场化的CSS书籍太实际了,以至于无法深入了解(您可以自由应用于您自己的概念)

7

我一直在做网络工作12年以上。我经历过桌面布局,框架,DHTML,XHTML,CSS,Ajax ......我记得我第一次看到CSS,我以为“WTH是这个烂摊子?我永远不会需要这个。”一年后,我发现自己了解它,而且事实上你可以用它做一些非常有用的事情。但要学习和学习,需要时间和奉献精神。

一些提示,使用像埃里克迈耶的CSS重置。 http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/。这会中和很多特定于浏览器的格式,因此您将开始使用干净的平板电脑,但开销不如其他重置。

确保您有一个格式良好的HTML/XHTML文档,顶部有所需的DOCTYPE。不同的浏览器会根据不同的DOCTYPE呈现不同的页面。

CSS也是一种不同的思维方式。而之前你可能有一个图形定位在这个块,突然你在想图层和背景。也许图形根本不在块中,只有填充和背景图像本身。需要时间来看待事情的不同。

最后,我承认毕竟这些年来,我仍然会回到表格来布置我的大部分表格。 CSS很棒,但它不是圣杯。实用。您可能想要观看http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-4的第一部分,其中Crockford概述了这些Web标准(如HTML和CSS)的历史以及他看到的与他们有关的问题。

+0

我喜欢doctype建议最好的,它的越野车多少文档可以改变布局。谢谢。 – iamgopal 2010-07-10 14:22:57

7

除了这里的其他伟大的建议,我也发现用正确的工具开发有很大的帮助。

首先,我觉得写的像Notepad++编辑器可以帮助CSS,语法高亮显示,当您去可以拿起令人沮丧的小错误。

我也使用Firefox浏览器初始测试,并确保DOCTYPE被设置,如上面所建议的。

我还使用了一个名为Firebug的优秀Firefox插件,它允许您检查页面的DOM元素并更改其CSS,以便立即了解CSS的外观以及许多其他功能。

然后我确保HTML和CSS都符合W3C标准。这可以通过http://validator.w3.org/http://jigsaw.w3.org/css-validator/或通过另一个名为Html Validator的Firefox插件在线完成。

此外,我发现当我想在Javascript中操作页面时,我发现使用Javascript框架jQuery非常有用,从HTML/DOM/CSS细节中抽象出来并允许经过良好测试跨浏览器兼容性。

也许看看CSS框架。对于许多常见的布局情况,这些都有经过试用和测试的CSS样式。我听说推荐使用Frame,而且对我来说看起来不错。

我发现有一个大的CSS文件很难管理和阅读。但我担心将文件分割成更小的部分(例如,每页一个CSS文件)会减慢页面加载速度。解决方案是使用Minify。它允许CSS文件作为单个文件提供,以及“压缩”结果以删除冗余空间等等。它非常易于使用,并且还可以消除浏览器缓存站点的旧CSS文件时出现的问题。

0

如果您不完全了解CSS的语言,您将不必要地浪费大量时间。编程非常耗时,因为它是!

我不建议通过访问网站开始学习CSS。你首先需要一个坚实的基础。为此,我推荐Andy Budd使用CSS Mastery。这是一个快速阅读(阅读封面到封面),以及其后的一个很好的参考。本书中有一个例子可以帮助您在5分钟内编写该登录表单(以非常灵活的方式)。

接下来,您将需要一个CSS复位和基础: