2

Mac 10.7.2、Ruby 1.9.3、および SASS 3.2.1 を使用しています。複数行のコメントと複数レベルの CSS 間のコメントを取得しようとしています。以下のように、SASS で複数行のコメントを実現できることはわかっています。

SASS

/*
 Multiline
 comments
 goes here

CSS

/* Multiline
 * comments
 * goes here */

しかし、私はスタイルシートでさまざまな種類のコメントを使用して、複数のレベルを強調表示/識別し、CSS でさまざまな種類のものを 2 つ以下に示します。

私のスタイルシートは以下のコメントから始まります:

/***************************************************************

Theme Name: Theme name goes here
Theme URI: Theme URL goes here
Description: Discription related to theme will goes here
Version: 1.1
Author: Author name goes here
Author URI: Authour url goes here

***************************************************************/

私のアプリケーション インデックス コメントは次のようなものです。

/*
---------------------------------------
---------------------------------------
--- Table of Contents:              ---
---                                 ---
--- 1. HEADER                       ---
--- -1.1 Navigation Bar             ---
---                                 ---
---                                 ---
--- 2. MAIN SECTION                 ---
--- -2.1 Home page                  ---
--- --2.1.1 Sections                ---
--- ---2.1.1.1 sub section          ---
---                                 ---
---                                 ---
--- 3. FOOTER                       ---
---------------------------------------
---------------------------------------
*/

私はそれに近いコメントを見つけることができますが、これをコンパイル済みの CSS コメントとして正確に取得することはできません

SASS

/*
  ---------------------------------------
  ---------------------------------------
  --- Table of Contents:              ---
  ---                                 ---
  --- 1. DEFAULT ELEMENTS             ---
  --- 2. LINKS                        ---
  --- 3. TABLE                        ---
  --- 4. FORM                         ---
  --- 5. GLOBAL CLASSES               ---
  ---------------------------------------
  ---------------------------------------

CSS

/*  ---------------------------------------
 *  ---------------------------------------
 *  --- Table of Contents:              ---
 *  ---                                 ---
 *  --- 1. DEFAULT ELEMENTS             ---
 *  --- 2. LINKS                        ---
 *  --- 3. TABLE                        ---
 *  --- 4. FORM                         ---
 *  --- 5. GLOBAL CLASSES               ---
 *  ---------------------------------------
 *  --------------------------------------- */

また、マルチレベルでコメントが必要な場合もあります

.firstLavel
  background: #f00
  /* comeent goes here before second level */
  .secondLavel
    font-size:  20
    color:  #ddd
  /* comeent goes here before third level
  .secondLavel
    font-size:  70
    color:  #ded

しかし、私は結果を得ています:

  background: red;
  /* comeent goes here before second level */
  /* comeent goes here before third level */ }
  .firstLavel .secondLavel {
    font-size: 20;
    color: #dddddd; }
  .firstLavel .secondLavel {
    font-size: 70;
    color: #ddeedd; }

そのはず:

.firstLavel {
  background: red; }

  /* comment goes here before second level */
  .firstLavel .secondLavel {
    font-size: 20;
    color: #dddddd; }

  /* comment goes here before third level */ 
  .firstLavel .secondLavel {
    font-size: 70;
    color: #ddeedd; }
4

1 に答える 1

1

Sassは、エンドポイント(より深いレベルのないもの)から始めて、CSSツリーのすべての子を再帰的にレンダリングするアルゴリズムを使用してコンパイルします。このアルゴリズムにより、エンドポイントでない場合、子の前にコメントを設定することはできません。コメントのレベルが深くなることはありません。コメントを設定する唯一の方法は、コメントをノードの子として設定することです。

明確にするために、このツリーを考えてみましょう。

root
  child1 
    child1.1
      /* comment on 1.1*/
      child1.1.1
    child1.2
  child2
  /* comment on 2 */
  child3
    /* comment on 3*/
    child3.1
  child4

レンダリングすると、最初に子のないエントリが作成され、その後、さらに深くなるエントリが作成されます。CSSの順序は次のようになります。

root
  child2
  /* comment on 2 */
  child4
  child1
    child1.2
    child1.1
      /* comment on 1.1 */
      child1.1.1
  child3
    /* comment on 3 */
    child3.1

使用されるアルゴリズムは、エンドポイントを最初に配置するキューを持つBSFです。

于 2012-12-03T14:33:05.420 に答える