Twitter's Bootstrap libraryを使用してプライマリボタンを作成するには、class="btn btn-primary"
のような2つのCSSクラスを使用する必要があります。Twitter Bootstrapはボタンに複数のクラスを必要とするのはなぜですか?
なぜこのようにAPIを設計したのですか?btn-primaryには、btnに含まれるすべてのCSSが含まれていましたか?純粋にコードの重複とファイルサイズを節約するのか、それとももっと複雑な理由がありますか?
Twitter's Bootstrap libraryを使用してプライマリボタンを作成するには、class="btn btn-primary"
のような2つのCSSクラスを使用する必要があります。Twitter Bootstrapはボタンに複数のクラスを必要とするのはなぜですか?
なぜこのようにAPIを設計したのですか?btn-primaryには、btnに含まれるすべてのCSSが含まれていましたか?純粋にコードの重複とファイルサイズを節約するのか、それとももっと複雑な理由がありますか?
これはOOCSSの原則によるものです。要素から特定のスタイルを切り離すことで、コードとスタイルの再利用が向上し、CSS内のオブジェクトをすばやく簡単に変更できるようになります。たとえば、.btn
クラスではボタンにデフォルトの灰色のスタイルを設定しているため、.btn
クラスのすべてのボタンは同じスタイルになりますが、あらかじめ定義されたスタイルで、同じボタンクラスを拡張して、デフォルトの.btn
プロパティを何度も繰り返し書く必要があります。 .btn-warning
と他のすべてのボタンステートクラスのCSSを見ると、ボタンの色とスタイルを定義するだけで、ボタンクラスをもう一度書き直す必要はありません。
.btn-warning:hover, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] {
background-color: #F89406;
}
これにより、読みやすく、短く、よりクリーンなスタイルシートが可能になります。
btn-primary
はデフォルトのボタンではないためです。 btn-success
が緑色に変わるような青色に変わるCSSです。
デフォルトのボタンは灰色です。
右。そしてスティーブ、それはコードの繰り返しを節約することです。 '.btn'はボタンのルック・アンド・フィールの主要な構造をすべて持っていますが、追加のクラスは色の変更を非常に簡単にします。私はTwitter Bootstrapを使っていませんが、個人的にも仕事でも、私の多くのプロジェクトでは、一般的なボタンクラスを持っていて、他のクラスを色付けできるという同じ方法を行っています。 –
これはおもしろい点ですが、TwitterがLESSでコンパイルされていることを考慮すると、開発者としてこれらのDRYの利点をすべて得ることができ、結果だけが繰り返しです。 – Steve
@Steveコンパイルされたlessは、OOCSSと同じ利点をもたらすはずです。今後登場するブートストラップコンポーネントのバージョンは、この原則[roadmap](http://blog.getbootstrap.com/2012/03/coming-up-in-bootstrap/)に基づいて構築されています。 –