-1

MODx、SASS、Bourbon & Neat、jQuery、Bootstrap、Velocity、およびその他のマイナー ライブラリを使用して、Web サイトを作成しています。使用される IDE は PhpStorm で、すべてのファイルは utf-8 でエンコードされ、BOM はありません。また、サードパーティのリソースからの検索フォームも含まれており、iframe に配置されたものもあれば、標準の html フォームを使用した「ネイティブ」のものもあります。したがって、ネーミング地獄は近いので、私はまだ BEM や SMACSS などの標準化された CSS 命名規則を確立していません。いくつかの一般的な優れた CSS の推奨事項 (低いネスト レベル、細かいセマンティクス、あらゆる場所での .class セレクター) だけです。

私はBEMに移行し、名前空間を探しますが、これに固執したくありません。なぜなら、これは私の最初の BEM CSS プロジェクトであり、100% 確信が持てないからです。それについてのすべてで、グローバル操作(名前の変更、おそらく他の何か)を行うときに、何かを壊すことを恐れています。だから、☺☻や♥♦♣♠など、非標準の記号の組み合わせを使いたいのです。これは 100% すべきではありませんサードパーティのプロジェクトのライブラリでビジーです。その後、たとえば Grunt regexp やカスタム ポスト処理アプリケーションを使用して、その文字を通常の名前空間名に置き換えるか、名前空間をまったく使用しないようにすることができます (うれしい、ちょっとしたおまけ)。このシンボルを製品コードに残すつもりはありません。Apache、PHP、SASS パーサー、およびブラウザーは「通常の」コードを受け取ります。これらのシンボルは、Grunt、PhpStorm などの「Devend」アイテムにのみ「表示」されます。

しかし、インターネット上でそのようなアプローチを推奨している記事や著者を見たことがありません。そのため、大きな問題があるようです。いずれかがあります?

追加:そして、それらの問題は何ですか?

PS: 最新のブラウザーの多くは、CSS クラス名に Unicode シンボルを使用しても問題ないことを認識しています (Java が関数/変数/その他の名前に Unicode シンボルを許可しているようなものです)。したがって、理論的にはそのままにしておくことができます。しかし、同じ理由で私にはうまく見えません。この方法を行っている/推奨している人を見たことがありません。

4

1 に答える 1

1

いくつかの調査の後、正しい質問と回答を整理しました。

BEM 命名規則を使用して、プロジェクトの CSS 名前空間名を選択するときに、将来のトラブルを回避する方法。


CSS クラスの命名に関する一般的な推奨事項は、すべて小文字を使用することです。おそらく、命名方法によってはルールが異なる場合がありますが、BEMでは、すべて小文字を使用することが必須です。したがって、 NS--のように、いくつかのダッシュを含む大文字を使用できます。私自身のコードは、Grunt や PhpStorm などの検索/置換スコープを正確に定義できるように十分に集中化されています。また、マークアップを開発することができ、将来の問題について気にする必要はありません。主な利点は、前処理/後処理がなくても機能することです。私の場合、BEM で使用するのは良い規則です。

次の課題は、合成されたクラス名/セレクター文字列を php と js でどのように処理するかです。そしてここで、最初の部分 (静的マークアップ) の解決策は、この問題の「動的部分」を解決する方法を制限しません。また、PHP と JS に変数を導入することで、前処理と後処理を回避することもできます。

私はプリ/ポスト プロセッサが大好きですが、この場合は使用を避けることができるのは素晴らしいことです。これは実際には命名規則の問題であり、ワークフローの強化の問題ではなく、ウェブマスターのプリ/ポスト処理ツールの主な目的であるためです。

于 2015-08-31T11:46:02.247 に答える