質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

2509閲覧

グローバルナなスコープとは

退会済みユーザー

退会済みユーザー

総合スコア0

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

2グッド

0クリップ

投稿2016/03/06 08:02

編集2016/03/06 08:08

CSSは現状グローバルなスコープですとCSS設計の教科書にあったのですが、
グローバルナなスコープとは、ほかの要素から、影響を受けてしまう、要素ということでしょうか?

初心者にもわかるように教えていただければ幸いです。

下記のグローバル変数 ローカル変数のグローバル変数のことでしょうか?
http://tacamy.hatenablog.com/entry/2012/12/30/191125

dsk, 5o5o_wagon👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

グローバルなスコープというのは、大まかに下記のようなことです。
同じファイル内で書き換わるのはもちろんのこと、別ファイルに記述されている場合でも書き換わってしまいます。

javascript

1// 最初に定義しても 2var sample1 = '最初の設定'; 3 4// 同じ名前で再定義して設定すると内容が書き換わる 5var sample1 = '変更後の設定';

別のファイルに下記があり、

  1. 上の設定
  2. 下の設定

の順に読み込むと、 sample1は「2つ目のファイルの設定」になります。

javascript

1var sample1 = '2つ目のファイルの設定';

CSSも同様で、最初に読み込むファイルが下記だとします。

css

1/* 最初に読み込むファイル */ 2 3.sample { 4 margin-top: 10px; 5}

次に読み込むファイルが下記だとすると、実際に適用されるのはmargin-top:20pxの方です。

css

1/* 次に読み込むファイル */ 2.sample { 3 margin-top: 20px; 4}

このような上書きされる関係をCSS単体では防止する手立てがない(書き方によって工夫することしかできない)ので、「グローバルなスコープ」と言われます。
全部グローバル変数だ、ということですね。

投稿2016/03/06 08:21

yamato_hikawa

総合スコア2092

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/07 00:45

ありがとうございます。 下記のようにまとめましたがあっていますでしょうか? ・ スコープとは大雑把に言って、定義されたものを参照できる範囲のこと ・グローバルスコープ かぶっているクラス名があると、影響を受けてしまうのがグローバルスコープ、 逆にカプセル化ができて、完全に独立されてほかのかぶっているクラス名があっても絶対に影響されないものが、ローカルスコープ グローバルスコープは同じファイル内で書き換わるのはもちろんのこと、別ファイルに記述されている場合でも書き換わってしまいます。 // 最初に定義しても var sample1 = '最初の設定'; // 同じ名前で再定義して設定すると内容が書き換わる var sample1 = '変更後の設定'; 別のファイルに下記があり、 上の設定 下の設定 の順に読み込むと、 sample1は「2つ目のファイルの設定」になります。 var sample1 = '2つ目のファイルの設定'; CSSも同様で、最初に読み込むファイルが下記だとします。 /* 最初に読み込むファイル */ .sample { margin-top: 10px; } 次に読み込むファイルが下記だとすると、実際に適用されるのはmargin-top:20pxの方です。 /* 次に読み込むファイル */ .sample { margin-top: 20px; } このような上書きされる関係をCSS単体では防止する手立てがない(書き方によって工夫することしかできない)ので、「グローバルなスコープ」と言われます。 全部グローバル変数だ、ということですね。 ・CSSの問題点 また、スコープ内で名前がかぶった場合、解決する方法が必要なのですが、 CSSでは基本的に読み込み順になります 実務ですとこれが問題になる場面が多々あります。 例えばAさんが #id1 {} というCSSを、 Bさんが #id1 {} というCSSをかいた場合、 どちらが適用されるかは 読み込み順依存 です。 例えばAさんのCSSが適用されてBさんが困り、Bさんが!importantを追加したりして、 今度はAさんが困って……という残念なことが起こります。 ・かぶっているクラス名があると、影響を受けてしまうのがグローバルスコープ、 逆にカプセル化ができて、完全に独立されてほかのかぶっているクラス名があっても絶対に影響されないものが、ローカルスコープ
yamato_hikawa

2016/03/07 01:26

そんな感じです。なので、グローバルスコープを使わないアプローチが出来るなら、それに越したことはないです。
guest

0

スコープとは大雑把に言って、定義されたものを参照できる範囲のことです。
例えば、

#id1 {}

というCSSがあったとしましょう。これはCSSの読み込んだHTMLの どこからでも 参照できます。

<span id="id1"></span>

これがグローバルスコープ、という意味です。

また、スコープ内で名前がかぶった場合、解決する方法が必要なのですが、
CSSでは基本的に読み込み順になります。後ろのCSSは見えなくなります。

実務ですとこれが問題になる場面が多々あります。
例えばAさんが

#id1 {}

というCSSを、

Bさんが

#id1 {}

というCSSをかいた場合、

どちらが適用されるかは 読み込み順依存 です。
例えばAさんのCSSが適用されてBさんが困り、Bさんが!importantを追加したりして、
今度はAさんが困って……という残念なことが起こります。

解決策は色々ありますので、気になったら調べてみてください。

投稿2016/03/06 08:29

編集2016/03/06 08:38
liply

総合スコア150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/07 00:45

ありがとうございます。 下記のようにまとめましたがあっていますでしょうか? ・ スコープとは大雑把に言って、定義されたものを参照できる範囲のこと ・グローバルスコープ かぶっているクラス名があると、影響を受けてしまうのがグローバルスコープ、 逆にカプセル化ができて、完全に独立されてほかのかぶっているクラス名があっても絶対に影響されないものが、ローカルスコープ グローバルスコープは同じファイル内で書き換わるのはもちろんのこと、別ファイルに記述されている場合でも書き換わってしまいます。 // 最初に定義しても var sample1 = '最初の設定'; // 同じ名前で再定義して設定すると内容が書き換わる var sample1 = '変更後の設定'; 別のファイルに下記があり、 上の設定 下の設定 の順に読み込むと、 sample1は「2つ目のファイルの設定」になります。 var sample1 = '2つ目のファイルの設定'; CSSも同様で、最初に読み込むファイルが下記だとします。 /* 最初に読み込むファイル */ .sample { margin-top: 10px; } 次に読み込むファイルが下記だとすると、実際に適用されるのはmargin-top:20pxの方です。 /* 次に読み込むファイル */ .sample { margin-top: 20px; } このような上書きされる関係をCSS単体では防止する手立てがない(書き方によって工夫することしかできない)ので、「グローバルなスコープ」と言われます。 全部グローバル変数だ、ということですね。 ・CSSの問題点 また、スコープ内で名前がかぶった場合、解決する方法が必要なのですが、 CSSでは基本的に読み込み順になります 実務ですとこれが問題になる場面が多々あります。 例えばAさんが #id1 {} というCSSを、 Bさんが #id1 {} というCSSをかいた場合、 どちらが適用されるかは 読み込み順依存 です。 例えばAさんのCSSが適用されてBさんが困り、Bさんが!importantを追加したりして、 今度はAさんが困って……という残念なことが起こります。 ・かぶっているクラス名があると、影響を受けてしまうのがグローバルスコープ、 逆にカプセル化ができて、完全に独立されてほかのかぶっているクラス名があっても絶対に影響されないものが、ローカルスコープ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問