什么是最好的CSS框架,他们是值得的努力?
阅读另一个论坛,我遇到了CSS框架的世界。 我特别关注的是BluePrint 。 我想知道是否有其他人遇到CSS框架,build议哪个是最好的,如果他们是值得的努力?
CSS的“框架”完全没有意义。
CSS不像JavaScript,你可以在其中包含一个基本库/框架,然后调用函数和对象来完成更高层次的工作。 所有的CSS框架可以给你的是声明性规则:一些默认的浏览器规则重置的东西,一些类的样式被迫创作你的网页,和布局规则使用“浮动”和“清除”。 你可以自己写几行CSS,而不是拉扯一百个框架规则。
特别是“网格布局”的东西可以追溯到将您的演示文稿混合到标记中的糟糕的旧时代。 'div class =“span-24”'并不比表格好,你必须回到那里,改变标记来影响布局。 而我所看到的所有框架都基于固定像素浮动框,使得无法创build可在各种窗口大小上访问的液体布局。
它是后向创作,只能用于害怕编写CSS规则的人。
所以,没有人回答这个问题(尽pipe我已经看到了一些upvotes),所以 我打算至less试图解决这个提示中的第二个问题。
CSS框架是伟大的; 像其他任何框架一样,它们减less了开发时间,让您立即在特定于站点的devise和CSS上工作。 他们考虑艰难的决定,所以你不必这样做。
不幸的是,使用框架有两个缺点(一般来说):
-
框架决定了CSS代码的整体结构和机制。 现在,我不是在谈论CSS重置(这些都是有用的,但它们不是真正的框架)。 我正在谈论一个诚实的好的框架,它已经决定了你要在文档中使用哪些语义标签,等等。因此,你依赖于框架,当有一个bug在框架中,你通常需要自己修复它。
-
框架不是无视跨浏览器/高级CSS问题的借口。 就像你在使用PHP或JavaScript框架一样,你总是会碰到它们。 而且你需要知道如何处理它们。 有一个常见的说法,你应该先写自己的框架,然后再使用别人的。
快速浏览一下Blueprint,我不会把它称为一个框架。 也许重置一些额外的好东西在上面。
我看了BluePrint和其他几个人,我build议的唯一的CSS框架是YUI Grids
优点:
- (国际海事组织)(Nate Koechley)撰写的最好的前端工程师之一,
- 很小。 4KB
- 非常灵活(1000种不同的布局)
- 支持stream体宽度(100%)布局以及750像素,950像素和974像素的预设固定宽度布局,并且可以轻松定制到任意数量。
- 支持定宽宽度布局的简单定制。
- 模板列是独立于源代码的,所以你可以把你最重要的内容放在标记层,以提高可访问性和search引擎优化(SEO)。
- 自清空页脚。 不pipe哪一列更长,页脚停留在底部。
- 小于100%的布局会自动居中。
- 有些语义类名(比顶,左,右等更好)
缺点:
- 与手写的HTML和CSS相比,有许多额外的标记
- 需要学习如何做复杂的布局
和其他人一样,CSS没有真正的“框架”。 重置样式表也对布局有很大的帮助。 我通常坚持一个重置样式表,并从那里去。 但是,如果你没有很多的CSS体验,YUI Grids可以为你节省一些时间。
Compass是一个真正的CSS框架,它不仅为您提供了模板(包括YUI和蓝图),而且还提供了可重用的构造和更高级别的声明,同时还为您提供了熟悉的CSS语法。
花时间学习和理解(真正理解!)几个CSS框架,如BluePrint和YUI,和CSS重置像埃里克·迈耶的。 然后,花时间根据您的工作方法和您构build的网站types,将自己的重置和/或框架放在一起。
就我个人而言,我使用了大部分Eric Meyer重设了一些课程,并重新设置了我自己的课程,再加上了BluePrint和YUI的一些想法。
我最近看到Eric Meyer在CSS Frameworks上做了一个演讲,他问了一个问题:“哪一个适合我? 然后他通过显示一张空白幻灯片来回答这个问题。 他的观点是,在大多数重置和框架中确实存在一些有用的概念,但最适合你的是你自己写的(这是值得的)。
为什么使用CSS“框架”?
-
如果你受到时间的压力。
-
如果你不认识css,也不知道能为你写信的人。
-
如果你对标准等不太珍贵
我认识那些非常乐于使用蓝图或960的程序员,因为他们可以自己组织一个布局,而不必转向前端开发人员。 这对于个人项目或资源有限的创业公司来说非常理想。
如果你已经有了相当的CSS知识,那么你可能已经有一个不错的库存布局库,所以你显然不需要一个框架。
但是,如果你是初学者,只需要启动和运行,那么你可能会转向一个框架,因为它使基本的布局变得更简单,同时也解决了浏览器的兼容问题。
说了这么多,很多开箱即用的框架确实使用了一些可怕的类名等等。我知道一些网站是以框架为出发点,然后用自己的类和id标签来定制的。 但是很显然,重写也有一些工作要做。 如上所述,使用类似Compass的东西确实有助于解决这个问题。
所以,CSS框架 – 它们可以节省您的时间,代价是语义。 他们也可能会伤害你对CSS的知识,但这更多的是你在一般的学习上投入多less钱。 你是否使用它取决于你。
你不得不问自己在解决你的问题上可用的框架有多有效。 他们是否符合你的要求?
通过使用框架,您可以在像素级设置一些规则或细节,并将剩下的时间用于实现和生成。 这是一个巨大的生产力提升。 如果你发现自己花时间在项目后期调整了几个像素(微观pipe理devise),这是一个框架可能有用的标志。
实用程序员的提示#17说:“程序靠近问题域”。 使用抽象层可以让您更接近解决布局的实际问题。 例如:您可能会专注于增加用户体验,而不是稍微调整像素。
这并不是说你必须为数量牺牲质量。 这是关于效率。
在最近的一个项目中,我制作了我自己的框架,因为我们的资源非常有限,stream行的框架没有做到我想要的。 然后,我将devise团队的PSD设置为与我部署的同一个网格alignment。
一个框架不一定是CSS的任何特定的实现。 它不一定是从networking上下载的东西,或者是实施过时的想法。 这只是一项完成工作的技巧。 如果一些编码者已经有自己的框架,甚至不知道,我也不会感到惊讶。 事实上,如果您将DOM视为一组使用CSS扩展的默认元素,那么按照定义,这就是一个框架。
实际上,我在过去24小时中花了很大一部分时间来调查这个问题,呵呵。 我的结论是,一个很好的重置(我使用YUI重置 ),也许还有其他东西来设置基准的东西( YUI字体是值得的,在我的情况下,也许BluePrint的“额外的好处”是在你的)是一个好主意。 但是,一个类似于YUI网格的“框架”太过于限制了,迫使你使用它们的类名,ID等,而很less像手工制作的CSS那样适合你的网站。
所以总之:重置似乎很不错; 最好是消除列表的margin-vs-padding或段落间距等等的所有变化。 但是,就我所能接受的而言。
我没有使用过,但我认为emastic可能是一个值得检查的好select。 它与范围内的蓝图类似,但也支持弹性布局(因此名称),您可以指定px,em或%的值,甚至混合它们。
指南针,我认为是惊人的。 确保你看到了截屏 。
我为一些网站使用了960.gs ,并且发现它非常简单和容易,并且值得努力。 节省了我在布局上的很多工作。 一定要检查自定义的CSS发生器,以960像素的固定宽度消失。
我认为Site Point首席执行官Kevin Yank的video介绍会回答你的问题。 我真的build议看。
Compass允许您用自己的语义名称来重命名框架的类和ID,因此您可能需要检查它。 它还提供了一些你不能用简单的香草CSS获得的东西,比如mixin。
我被所谓的“CSS专家”吓了一跳,他们批评这些工具而没有真正挖掘和使用它们。 他们必不可less? 不,如果你喜欢你自己的框架(你有自己的框架,对吗?CSS框架只是一个精心定义的库 – 每个人都应该使用它),然后千方百计继续使用它。 没有人强迫你使用其他框架,我也没有看到使用框架的人告诉CSS纯粹主义者他们“做错了”。
从这个观点来批评框架只是performance出不安全感和无知。 例如,这个概念是可笑的,一个人会使用像Compass这样的工具而不知道CSS。 你意识到,一个框架通常不会为你写所有的CSS? 你仍然可以在大多数框架的背景下发掘自己的CSS。 事实上,如果你不了解CSS,你可能会很快受挫。
对于我自己,我很欣赏有一个框架,因为它已经被logging,经过数百名其他用户的testing,我可以通过Compass来申请我自己的类和ID。 如果我需要框架不适合的东西,那么我将自己编码。
AppFuse成名的Matt Raible在为AppFuse开发CSS框架的时候有一个CSS框架竞赛。 结果在这里公布。 有一些变化,我用了一些我自己,因为我使用AppFuse,并发现他们非常好。
我应该补充说,这些CSS框架工作得很好,因为它们在主题应用程序中使用。 也就是说,如果你坚持规则,那么从一个切换到另一个就像在属性文件中更改一个值一样简单。
我曾经在一个网站上使用了BluePrint(我可以在这里提到这个网站,但是我确定这个post会被标记为垃圾邮件!)。 我不确定我是否会在将来使用它,因为我认为CSS的思想之一是没有布局逻辑的硬编码。 你不应该有称为span-24和span-12的CSS元素来定义布局,但像searchBox和mainContent。 至less这是我如何看待它。
我发现的好链接: 前12个CSS框架和如何理解他们
这里是我关于CSS框架的博客文章何时使用CSS框架?
我知道使用CSS框架并保留语义标记的唯一方法是使用更高级别的抽象。 目前,Compass是我所知道的唯一一个足够成熟的用户,但Nicole Sullivan似乎正在用她的“面向对象的CSS”项目做一些有趣的事情。
我发现Compass巧妙地使用了Sass mixins,并且向可维护语义标记的圣杯迈出了一大步。 我不认为我想使用像Blueprint或YUI这样的框架,而没有像Compass这样的抽象,可以使表示类不在标记中。
顺便说一句,有一个漂亮的CSS框架称为弹性,看起来不错,我正在考虑将其添加到指南针。
我相信CSS是关于简单。 目标是在HTML和样式表之间引用一两个地方来检查。 添加更多的行,特别是没有写入并且可能不太熟悉的行,将会成倍增加CSS代码的复杂性和波动性。
我会build议你的布局,因为你写他们和开发一个通用的模板系统。 虽然我喜欢使CSS更加模块化,但通常取决于devise,CSS可能是特定于个案的,而不是模块化的。
我已经在一些一次性的网站上使用了Blueprint,它确实节省了时间,主要是在跨浏览器testing中。
它肯定会吸收添加演示代码到您的标记,虽然在光明的一面是可读的。 虽然我喜欢“你可以重新devise而不触及标记”的概念,但是如果你正在生产一个真的不会发生的网站,而且你昨天只需要这个网站,蓝图就是值得关注的事情。
但是,它也可以在可以创build的布局types中进行权衡。 如果您从严格的网格开始,将网站线框化,那么以最小的麻烦将其转换到框架中将更容易。
我已经使用了BluePrint和YUI,但是我总是因为某些名字给他们的id和类而感到沮丧。
对于他们自己的,但我喜欢从头开始做,但过了一段时间,你开发一个过程中,你会使用以前的工作,并将其应用到新的项目,只是做一些调整,使网站看起来像你会喜欢它。
一定要使用一个好的命名约定,以防万一有人在编辑CSS,那么他们将有一个好主意每个样式名称是指什么。
克雷格,
指南针就是你要找的东西:它允许你用你自己的名字来重命名你的Blueprint CSS类,如“span-24”。 它还通过variables和mixins扩展了CSSfunction。 确实,那些过早地判断框架而没有检查出Compass的人是“错过了”。 就像那些多年前告诉我们的人一样,我们在布局中使用CSS而不是HTML表格,从而忽略了这一点。
-Matt
请查看http://www.ez-css.org/ 。 最简单和最轻的CSS框架之一。 🙂
看看这个演示: http : //www.richstyle.org/demo-web.php这个框架是基于“HTML标签应该足够”的想法。 我认为可重用性是select软件组件(包括Web框架)最重要的因素。 对于Web框架开发人员,您承诺的标准越多,保证可重用性越高。