CSSはどのような言語ですか?
私の最初の傾向は、それをマークアップ言語と呼ぶことでした...しかし、それは本当に型には合いません:
マークアップ言語は、構文的にテキストと区別できる方法でテキストに注釈を付けるためのシステムです。 - ウィキペディア
CSSはさまざまなセレクターを使用して、プロパティwithinHTML(マークアップ言語)にプロパティを適用します
ドメイン固有の declarative 言語だと思います。
構文的には、CSSは2つの言語の混合です。正規表現やxpathなどのパターンマッチング言語であるセレクターの言語と、プロパティは本質的に割り当てであるため、「手続き型宣言型」として分類できるプロパティの言語です。演算子。主観的なレベルでは、cssは言語デザインの分野での集団的努力のほぼすべての成果と同様に、「醜い混乱」とみなされます(「ラクダは委員会によって設計された馬です」)。
CSSは本当に言語そのものではありません。これは、構成ディレクティブを記述するための構文です。
実際、これらはどちらでもありません。 CSSは、いくつかのトークンとその視覚的な意味の説明です。 .cssファイルには、コンピューターがそれらを解析できるように構造化されたこれらのトークンが含まれています。 CSS宣言は、SVGドキュメント内のname = "value"宣言の形式を取ることができます。そして、.cssファイル構造は、FreeCivの特にばかげたイテレーションでユニットの説明を含めるために、同じように簡単に使用できます。
ウィキペディアでのスタイルシート言語としての定義は、特異に存在する現象の一般化を強制的に定義したもののようです。また、実際にはそれ自体では何もマークアップしないため、マークアップ言語ではないことは明らかです。
CSSは間違いなく言語です:
ウィキペディアはCSSを「スタイルシート言語」と呼んでいます
http://en.wikipedia.org/wiki/Style_sheet_language
CSSを開発したW3Cから:( xsl と css を比較)
独自の機能は、CSSを使用してHTMLおよびXMLドキュメントのスタイルを設定できることです。一方、XSLはドキュメントを変換できます。たとえば、XSLを使用して、XMLデータをWebサーバー上のHTML/CSSドキュメントに変換できます。このようにして、2つの言語は互いに補完し合い、一緒に使用できます。
両方の言語は、XMLドキュメントのスタイル設定に使用できます。
2番目の文からわかるように、W3CはCSSを言語として参照しています。
そして、同じ記事からの次の引用:
W3Cが[~~~~ css [〜#〜]に加えて[〜#〜] xsl [〜#〜]を開発したという事実は、いくつかの混乱を引き起こしました。実装者が最初の言語を完成していないのに、なぜ2番目のスタイルシート言語を開発するのですか?答えは以下の表にあります:
CSS XSL
Can be used with HTML? yes no
Can be used with XML? yes yes
Transformation language? no yes
Syntax CSS XML
CSSには明確に定義された文法があるため、それは言語であり、CSSが宣言的であるか命令的であるかを選択する必要がある場合、その結果はプログラムが実際にCSSを解釈および処理することによって決定されるため、宣言的です。 。
ただし、CSSだけでは有用なものを作成することはできません。操作するためのドキュメントが必要であり、CSSが行うことはすべて、ドキュメントの補足情報を提供することです。事実上、CCSは操作するドキュメントの一部です。
CSSの問題は、HTMLからDOMへの生成プロセスの一部として使用されることです。したがって、CSSは「乱雑な」グローバル変数と同様に動作し、その結果、開発者はCSSがもたらす大量の厄介な副作用に対処する必要があります。
うまくいけば、CSSの発明者でありW3Cの主要プレーヤーであるHåkonWium Lieが、CSSが最初から今日まで間違いであり、セマンティックマークアップとプレゼンテーション。
現在、CCSは@mediaクエリで必須の機能を獲得し、@ screenや@printなどの@operatorsでターゲティングしています。しかし、新機能のどれもCSSの基本的な欠陥を修正しません:神のようなひどいグローバルと、その要素セレクターでの副作用の悪名高い不合理な使用。
残念ながら、CSSを言語として研究することは、実際のプログラミング言語を研究することよりも複雑です。それを使用する方法の例は、実際的な事例よりも逸話的であるため、Bootstrap =そしてあなたの仕事を成し遂げるための他の人たち。