最高のCSSフレームワークとは何ですか?それらは努力する価値がありますか?


106

CSSフレームワークの世界に出会った別のフォーラムで読書。私が特に調べてきたのはBluePrintです。私は他の誰かがCSSフレームワークに出くわしたのではないかと思っていましたが、どれが最善であり、努力する価値があるかを提案しますか?

回答:


140

CSSの「フレームワーク」には、ポイントがまったくありません。

CSSはJavaScriptとは異なり、ベースライブラリ/フレームワークを含め、そこから関数とオブジェクトを呼び出して、より高度な作業を行うことができます。CSSフレームワークが提供できるのは宣言ルールです。デフォルトのブラウザールールリセット、ページの作成を強制されるクラススタイル、および「フロート」と「クリア」を使用したレイアウトルールです。100のフレームワークルールの肥大化を引き込むのではなく、CSSの数行でそれを自分で書くことができます。

特に「グリッドレイアウト」のものは、プレゼンテーションをマークアップにミックスするという昔からの昔にさかのぼります。'div class = "span-24"'はテーブルに劣らず、そこに戻ってマークアップを変更してレイアウトに影響を与える必要があります。そして、私が見たすべてのフレームワークは、固定ピクセルのフロートボックスに基づいているため、幅広いウィンドウサイズでアクセス可能なリキッドレイアウトを作成することは不可能です。

これは、CSSルールを作成するのが怖い人だけが使用できる、逆向きのオーサリングです。


14
あなたはコンパスを見ていません。それがまさにそれです。 acts-as-architect.blogspot.com/2008/11/introducing-compass.html
ダスティン

3
同意する。私はcssリセットのみを使用して、アプリケーションに関連する独自のスタイルを開発しています。
Hemanshu Bhojak 2009年

3
私は今コンパスを見ているのでしょうか、それともむしろサスですか、それともハムルですか?とにかく、それは非常識です。CSSのように学習するのが難しいだけで十分であり、CSSをすでに知っている場合は、CSSを煩わしくするのも嫌です。
AmbroseChapel 2009

11
Sass、Haml、Compassは別物です。HamlとSassは通常一緒になっており、Hamlを使用すると、マークアップの少ないHTMLを記述できます。Sassを使用すると、定数を使用するだけでなく、コードの少ないCSSを記述できます。Compassは、世の中で人気のあるcssフレームワークの単なるSass解釈です。
Sam Murray-Sutton、

2
私が見たところ、BluePrintと他のフレームワークは一部のブラウザで失敗します。CCSの経験が多ければ多いほど、ほとんどすべての場所で機能させるために何をオーバーライドするかを知る機会が増えます。これらの "フレームワーク"は、予期せぬ結果を招いて人生をより困難にするだけです。
eugeneK 2010年

27

だから、まだ誰もこの質問に答えていません(私はいくつかの賛成投票を見てきましたが)。 私は、少なくともこのプロンプトの2番目の質問に取り組むことを試みます。

CSSフレームワークは素晴らしいです。他のフレームワークと同様に、開発時間を短縮し、サイト固有のデザインとCSSにすぐに取り掛かることができます。彼らは難しい決断を考えるので、あなたはそうする必要はありません。

残念ながら、(一般的に)フレームワークを使用することには2つの欠点があります。

  1. フレームワークは、CSSコードの全体的な構造とメカニズムを決定します。ここでは、CSSのリセットについては触れていません(これらはそれ自体で有用ですが、真のフレームワークではありません)。私は正直で優れたフレームワークについて話しています。それは、ドキュメントで使用することになるセマンティックタグなどについてすでに決定しています。そのため、フレームワークに依存し、バグがある場合フレームワークでは、通常、自分で修正する必要があります。

  2. フレームワークは、クロスブラウザ/高度なCSSの問題に気づかない言い訳にはなりません。PHPまたはJavaScriptフレームワークで作業するのと同じように、常にそれらに遭遇します。そして、あなたはそれらに対処する方法を知る必要があります。他人のフレームワークを使用する前に、まず独自のフレームワークを作成する必要があるという一般的な言い方があります。

ブループリントをざっと見ただけで、私はそれをフレームワークとは本当に呼んでいません。多分いくつかの追加の良いものを載せたリセットです。


18

BluePrintと他のいくつかを見てきましたが、私がお勧めする唯一のCSS「フレームワーク」はYUIグリッドです

長所:

  • 最高のフロントエンドエンジニアの1人が作成(IMO)(Nate Koechley)
  • 非常に少ない。4KB
  • 非常に柔軟(1000種類のレイアウト)
  • 流動幅(100%)のレイアウトと、750px、950px、974pxのプリセットの固定幅レイアウト、および任意の数に簡単にカスタマイズする機能をサポートします。
  • 固定幅レイアウトの幅の簡単なカスタマイズをサポートします。
  • テンプレート列はソース順に依存しないため、最も重要なコンテンツを最初にマークアップレイヤーに配置して、アクセシビリティと検索エンジン最適化(SEO)を向上させることができます。
  • 自己消去フッター。どちらの列が長くても、フッターは一番下に留まります。
  • 100%未満のレイアウトは自動的に中央揃えになります。
  • やや意味のあるクラス名(上、左、右などより良い)

短所:

  • 手書きのHTMLやCSSと比較して多くの追加のマークアップ
  • 複雑なレイアウトを行う方法を理解するためにいくつかの学習が必要

他の人が投稿したように、CSSの実際の「フレームワーク」はありません。リセットスタイルシートは、レイアウトにも役立ちます。私は通常、リセットスタイルシートを使い続け、そこから移動します。しかし、CSSの経験があまりない場合は、YUIグリッドを使用すると時間を節約できます。


16

Compassは実際のCSSフレームワークであり、テンプレート(YUIとブループリントの両方)だけでなく、使い慣れたCSS構文も提供しながら、再利用可能な構成とより高いレベルの宣言も提供します。


12

時間を取って、BluePrintやYUIなどのいくつかのcssフレームワークと、Eric Meyerのようなcssリセットを理解してください(本当に理解してください!)。次に、時間をかけて、作業方法と構築するサイトの種類に基づいて、独自のリセットやフレームワークをまとめます。

個人的には、Eric Meyerのリセットのほとんどを、いくつかのクラスと自分のリセットに加えて、BluePrintとYUIからのいくつかのアイデアを使用しています。

私は最近、Eric MeyerがCSSフレームワークについてプレゼンテーションをしているのを見て、彼が「それで私にとってどれが適切か」という質問をしました。次に、空のスライドを見せて質問に答えました。彼の要点は、ほとんどのリセットとフレームワークに組み込まれたいくつかの有用な概念があることですが、あなたに最も適したものは、自分で書くものです(努力する価値があります)。


良い考えです、それについて調べます。
マーティンクラーク

おそらくこれまでのベストアンサー!
David Yell

12

なぜcss 'frameworks'を使うのですか?

  • 時間のプレッシャーがかかっている場合。

  • あなたがCSSを知らない、そしてあなたのためにそれを書くことができる誰かを知らない場合。

  • 規格等についてあまり気にしない方

ブループリントまたは960を使用して、フロントエンドの開発者に頼ることなく自分でレイアウトを作成できるため、本当に満足しているプログラマーを知っています。これは、個人的なプロジェクト、またはリソースが限られているスタートアップに最適です。

CSSについて十分な知識を持っている場合は、おそらくストックレイアウトの適切なライブラリがすでにあるので、フレームワークは明らかに必要ありません。

ただし、初心者で何かを立ち上げて実行する必要がある場合は、フレームワークを使用すると、基本的なレイアウトがはるかに簡単になり、ブラウザーの互換性にも取り組むことができます。

そうは言っても、すぐに使える多くのフレームワークは、恐ろしいクラス名などを使用しています。しかし、その書き直しにも少し作業が関係しているのは明らかです。上記のように、コンパスのようなものを使用すると、それを回避するのに役立ちます。

つまり、CSSフレームワークは、セマンティクスを犠牲にして時間を節約できます。また、CSSの知識を損なう可能性もありますが、それは、一般的に主題を学習するためにどれだけ投資するかによります。それらを利用するかどうかはあなた次第です。


9

利用可能なフレームワークが問題の解決にどれほど効果的かを自問する必要があります。彼らはあなたの要件を満たしていますか?

フレームワークを使用することで、ピクセルレベルでいくつかのルールや詳細を設定し、残りの時間を実装と生成に充てることができます。生産性が大幅に向上します。プロジェクトの後半で数ピクセルずつ調整に時間を費やしていることに気付いた場合(デザインのマイクロ管理)、フレームワークが役立つ可能性があることを示しています。

Pragmatic Programmerのヒント#17には、「問題のあるドメインに近いプログラム」と書かれています。抽象化の層を使用すると、レイアウトの実際の問題を解決するのに近づくことができます。たとえば、ピクセルの微調整ではなく、余分な時間を使ってユーザーエクスペリエンスを向上させることに集中できる場合があります。

これは、量ではなく質を犠牲にしなければならないということではありません。それは効率についてです。

最近のプロジェクトでは、リソースが非常に限られていて、人気のあるフレームワークでは思い通りの結果が得られなかったため、独自のフレームワークを作成しました。次に、設計チームのPSDをセットアップして、展開したのと同じグリッドにスナップします。

フレームワークは、CSSの特定の実装である必要はありません。これは、インターウェブからダウンロードした肥大化したものや古いアイデアを実装したものである必要はありません。それは仕事を成し遂げるための単なるテクニックです。一部のコーダーがすでに独自のフレームワークを持っていて、それを知らなくても私は驚かないでしょう。実際、CSSで拡張した一連のデフォルト要素としてDOMを考える場合、それは本質的にフレームワークです。


6

私は実際に過去24時間のかなりの部分を自分で調査しました。私の結論は、素敵なリセット(私はYUIリセットを使用しました)と、ベースラインを設定するための何か他のもの(私の場合、YUIフォントは価値がありました;おそらくBluePrintの「特別な利点」があなたのものであるでしょう)は良い考えです。しかし、「フレームワーク」---これは一般的にYUIグリッドのようなもの-は制限が厳しすぎるため、クラス名やIDなどを使用する必要があり、手作りのCSSのようにサイトに適合することはめったにありません。

要するに、リセットはかなりいい感じに見えます。たとえば、リストのmargin-vs-paddingや段落の間隔など、すべてのバリエーションを排除することをお勧めします。しかし、それは私がそれを理解する限りです。


6

はい、使用していませんが、チェックする価値のある代替手段として、emasticを使用することをお勧めします。これはスコープがブループリントに似ていますが、エラスティックレイアウト(したがって名前)もサポートしており、px、em、または%で値を指定したり、それらを混合したりすることもできます。


5

コンパスは素晴らしいと思います。スクリーンキャストが表示されていることを確認してください。

いくつかのWebサイトで960.gsを使用していますが、非常にシンプルで簡単で、努力する価値があります。レイアウトに関する多くの作業を節約できます。960ピクセルの固定幅でなくなるカスタムCSSジェネレーターを確認してください。



4

Compassを使用すると、フレームワークのクラスとIDの名前を独自のセマンティック名に変更できるため、確認した方がよいかもしれません。また、ミックスインなどの単純なCSSでは得られないものへのアクセスも提供します。

私は、これらのツールを実際に掘り下げて使用したことがなくてもこれらのツールを批判する、いわゆる「CSSエキスパート」に驚いています。それらは不可欠ですか?いいえ。独自のフレームワークが必要な場合(独自のフレームワークがありますか?CSSフレームワークは、慎重に定義されたライブラリであり、誰でも使用する必要があります)、それでも、引き続き使用してください。他のフレームワークを使用するように強制されている人はいません。フレームワークを使用している人々がCSS純粋主義者に「間違っている」と言っているのを見かけません。

このような観点からフレームワークを批判すると、不安と無知が明らかになります。たとえば、CSSを知らなくてもコンパスなどのツールを使用するという考えはおかしいです。フレームワークは一般的にすべてのCSSを作成するわけではないことに気づきましたか?それでも、ほとんどのフレームワークのコンテキスト内で独自のCSSを分割して作成できます。実際、CSSがわからないとすぐにイライラするかもしれません。

フレームワークはすでに文書化されており、他の何百人ものユーザーによってテストされており、Compassを介して自分のクラスとIDを適用できるため、私自身にとってはフレームワークがあることに感謝しています。フレームワークに適さないものが必要な場合は、自分でコーディングします。


3

AppFuse名声のMatt Raibleは、しばらく前にCSSフレームワークコンテストを開催して、AppFuse用のCSSフレームワークを開発しました。結果はこちらに掲載されています。いくつかのバリエーションがあり、AppFuseを使用して非常に優れているため、自分でいくつか使用しました。

これらのCSSフレームワークはテーマ付きアプリケーションで使用されるため、うまく機能することを付け加えておきます。つまり、ルールに固執する場合、プロパティファイルの1つの値を変更するだけで、次のルールへの切り替えが簡単です。


3

私はサイトで大成功を収めてBluePrintを使用しました(ここでサイトに言及することはできますが、投稿はスパムとしてマークされると確信しています!)。CSSのアイデアの1つは、レイアウトロジックをハードコーディングしないことだと思っていたので、将来的に使用するかどうかはわかりません。レイアウトを定義するために、span-24やspan-12というcss要素は必要ありませんが、searchBoxやmainContentなどの要素が必要です。少なくともそれは私がそれを見る方法です。




3

CSSフレームワークを使用してセマンティックマークアップを保持するために知っている唯一の方法は、より高いレベルの抽象化を使用することです。現時点では、私が認識しているのはCompassだけであり、十分に成熟しているが、Nicole Sullivanは彼女の「オブジェクト指向のCSS」プロジェクトで興味深いことをしているようだ。

CompassがSassのミックスインを巧妙に使用していることは素晴らしいことであり、維持可能なセマンティックマークアップの聖杯への大きな一歩です。プレゼンテーションクラスをマークアップから除外するために、Compassなどの抽象化なしでBlueprintやYUIなどのフレームワークを使用したくないと思います。

ところで、Elasticと呼ばれる見栄えの良いCSSフレームワークがあり、Compassに追加することを検討しているほど十分によく見えます。


2
しばらくして、これについてさらに考えました。BlueprintのようなCSSフレームワークは、しばしば間違ったツリーを起動していると思います。ただし、コンパスなどのCSS 抽象化は、本格なWebデザイン作業に不可欠です。CSSはあまりにも制限されており、CSSが設計された目的(マークアップとプレゼンテーションの分離)を少しの支援なしに実際に達成することはできません。コンパスはその助けを提供します。(他のライブラリもそうかもしれませんが、私が知っているのはコンパスだけです。)
Marnen Laibow-Koser 09

1
後で:私はあなたがコンパスを必ずしも必要としないことを今信じています。あなたが行う必要はSassのです。以前の投稿で説明したように、Sassが提供する抽象化は非常に強力で、CSSを管理しやすくします。
Marnen Laibow-Koser

2

CSSはシンプルさを重視していると思います。目標は、HTMLとスタイルシートの間で参照しているときにチェックする場所を1つまたは2つ持つことです。さらに行を追加すると、特に自分で記述しておらず、あまり馴染みのない行を追加すると、指数関数的に複雑さが増し、CSSコードの揮発性が高まります。

あなたがそれらを書いて、そこから一般的なテンプレートシステムを開発するとき、私はあなたのレイアウトを提案します。CSSをよりモジュール化することは大好きですが、多くの場合、デザインによっては、CSSは非常にケース固有で、モジュール化されていない場合があります。


2

いくつかの1回限りのサイトでBlueprintを使用しましたが、主にブラウザー間のテストで時間を確実に節約できました。

それは間違いなくあなたのマークアップにプレゼンテーションコードを追加するのは面倒ですが、明るい面ではそれは読みやすいです。「マークアップに手を加えることなく再設計できる」というコンセプトは大好きですが、それが本当に起こらないようなサイトを作成していて、昨日それを行う必要があるだけなら、ブループリントは注目に値します。

ただし、実行可能なレイアウトのタイプにはトレードオフもあります。厳密なグリッドで最初からサイトをワイヤーフレーム化すると、最小限の手間でフレームワークに置き換えることがはるかに簡単になります。


2

私はBluePrintとYUIを使用しましたが、IDとクラスに付けた名前の一部にいつも不満を感じています。

自分自身で、しかし私は最初から物事を行うことを好みますが、しばらくすると、以前の作業を使用して新しいプロジェクトに適用するプロセスを開発し、Webサイトをあなたが望むように見せるように調整しますそれが好きです。

CSSを編集するために将来誰かがやってくる場合に備えて、適切な命名規則を必ず使用してください。そうすれば、各スタイル名が何を参照しているかがわかります。


2

クレイグ

コンパスはあなたが探しているものです。「span-24」などのBlueprint CSSクラスの名前を自分の名前に変更できます。また、変数とミックスインを使用してCSS機能を拡張します。本当に、コンパスをチェックアウトせずにフレームワークを時期尚早に判断する人たちは、「要点を逃しています」。レイアウトにHTMLテーブルの代わりにCSSを使用することでポイントを逃していると数年前に私たちに言ったようなものです。

-マット



1

このデモをご覧ください。http//www.richstyle.org/demo-web.php このフレームワークは、「HTMLタグで十分」という考えに基づいています。再利用性は、Webフレームワークを含むソフトウェアコンポーネントを選択するための最も重要な要素だと思います。Webフレームワーク開発者にとって、標準にコミットするほど、再利用性が保証されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.