• ベストアンサー

cssは複数作る?

こんにちは。 ホームページを自分で作成している初心者です。 ページがだんだん増えてくると、それにともなってcssの記述も多くなってきます。 そこで今はテーマやカテゴリーごとにcssを分けているのですが、cssもだんだんと増えてきます。 そもそもcssは複数作るものなのでしょうか。 そのことによる利点、欠点などがあれば教えてください。 よろしくお願いします。

  • arbert
  • お礼率98% (269/273)
  • HTML
  • 回答数6
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

>cssは複数作るものなのでしょうか。  通常はそうです。スタイルシートには、 ちょっと別のアングルから説明する、外部スタイルシートには 固定スタイルシート  <link rel="STYLESHEET" href="default.css" type="text/css"> 優先スタイルシート  <link rel="STYLESHEET" href=" standard.css" title="標準" type="text/css"> 代替スタイルシート  <link rel="ALTERNATE STYLESHEET" href="big.css" title="大きなフォント" type="text/css"> があり、さらにmediaタイプで適用する端末も指定できます。 さらに、これらは複数あっても構いません。  たとえば優先スタイルシートにて  <link rel="STYLESHEET" href=" standardD.css" title="標準" type="text/css">  <link rel="STYLESHEET" href=" standardC.css" title="標準" type="text/css"> のように二つあっても良いのです。  たとえば、この場合、 default.cssでテキストインデントやフォントのサイズ、背景を指定して standardD.cssで、配置や枠の大きさなどだけ指定し、standardC.cssで配色を指定する。そうするとより後に出てくるスタイルシートで上書きされ、そうでない指定は継承(カスケード)されます。  複数(ページ内、要素内、ユーザーを含めて)用意して、それらが順番に継承されるからこそ、カスケードスタイルシート(CSS)なのですから。  ちなみに私は、 デフォルト (CSS1) サイト内統一部分・サイト内リンクとか・・ (CSS2) 各テーマのトップページ(ホーム)のデザイン (CSS3) そのテーマの配置 (CSS4) そのテーマの配色 (CSS5)  と分けていて、 Top index.html --- CSS1+CSS2+CSS3 |-- theme1 |  |-index.html --- CSS1+CSS2+CSS3+CSS4 |  |-page1.html --- CSS1+CSS2+CSS4 |  |-page1.html --- CSS1+CSS2+CSS4 というふうに整理しています。  好きなときにデザインだけ、あるいは色だけ変えるとか、そうすることで、労力もトラフィックも軽減できますから

arbert
質問者

お礼

ご回答いただきありがとうございます。 なるほどー。 同じデザインの部分をすべてのページに適用するなら、すべてのcssに同じことを書くのではなく、 一つ用意しておいて、そこから継承すればいいのですね。 だから゛カスケード”というわけですか。 今わかりました。 これは目からウロコですね。

その他の回答 (5)

  • Werner
  • ベストアンサー率53% (395/735)
回答No.6

私は各テーマのスタイルを記述した外部CSSファイルそれぞれの冒頭に @import url("default.css"); と書いて、HTMLからは1つのCSSファイルを参照するようにしてます。 全てのページに <link rel="stylesheet" type="text/css" href="default.css"> と書くよりCSSファイルに書く方が数が少ないので。 default.cssでなくdefault2.cssと組み合わせたいページも存在するとかなら HTMLファイルに書いたかもしれません。

arbert
質問者

お礼

ご回答いただきありがとうございます。 今回初めて“インポート”というものを聞いたのですが、 だんだんわかってきました。 >全てのページに <link rel="stylesheet" type="text/css" href="default.css"> と書くよりCSSファイルに書く方が数が少ないので。 基本は無駄な記述をなくすということですよね。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.5

No.3 snowizeさん >HTML側からは1種類のスタイルシートしか指定せず、そのスタイルシートが他のスタイルシートをインポートした方がよくないですか?  いえ、それじゃトラフィックの低減にも管理のわずらわしさの低減にもなりません。巨大なCSSを分割しただけですよね。  たぶん多くの比較的規模の大きなサイトでは、デザインが共通する部分、あるいは違う部分があると思います。  たとえば、複数のテーマを持つサイトがあるとします。まあ、先の例と同じなのですが、すこし具体的に書くと。 Top index.html --- 私が管理しているサイトの最上位 |        (別にディレクトリ構造に基づかなくても良いけど) |-- job/ --------ここには私の本業の話題 |  |-index.html --- そのトップページ(本業のサイトのホームになる) |  |-page1.html --- 1ページ目 |  |-page1.html --- 2ページ目 |-- books/ --------私の著作物とか |  |-index.html --- 目次 |  |-book1.html --- 一冊目の紹介 |  |-book2.html --- 2冊目の紹介 |-- hoby/ --------趣味 |  |-index.html |  |-page1.html たとえば、すべてのページに標準的に指定したいものは、default.cssに書いておく。 default.css  body{ background :*****}  a[name]{border:none;}  p{ text-indent: 1em;}  h1{ font-size: 2em; text-align:center;}  ul.SiteNavi{ position: absolute;*******} また、各テーマのトップには目次の役割があるので、その配下のページとはデザインが異なるはずです。 たとえば  job/index.htmlとjob/page1.htmlは色は同じだけど、デザインが異なる。それで デザインだけ指定した  topPage.css そして、各テーマにごとの、  bookColor.css ★こうすることで、そのページに必要なCSSが最低限のものになります。 さらに、HTMLも簡単になるのです。  もしひとつ(importを使っても)のCSSで記述するなら、htmlもtopにあるindex.htmlでは <h1 class=topPageh1">とか指定する必要があり、これはとてもじゃないけど大変ですし、そもそも、新しいHTMLを起こすたびに、CSSをチェックしてその設定(クラス名とか)を探さなきゃならない。  しかし、そもそも適用するCSSが限定されるなら top/index.htmlにおいては、参照されるCSSが、default.cssとtopPage.cssだけです。そして、HTMLにはCSSの為だけのclass属性なんて書かなくて済む。  

arbert
質問者

お礼

ご回答いただきありがとうございます。 今作成しているcssには無駄が多く、class名も似たような名前がたくさんあります。 でも内容はほとんど同じです。 でもこの考え方だとその無駄が省けるというわけですね。

  • snowize
  • ベストアンサー率27% (68/245)
回答No.4

#3です。 高度な技じゃないですよ。 @import("URL"); でCSSを取り込むことができます。 詳しくは技術解説のページなどをご覧ください。

arbert
質問者

お礼

ご回答いただきありがとうございます。 わかりました。 使えるように勉強してみます。

  • snowize
  • ベストアンサー率27% (68/245)
回答No.3

>>2さん HTML側から2種類のスタイルシートを読み込むより、 HTML側からは1種類のスタイルシートしか指定せず、そのスタイルシートが他のスタイルシートをインポートした方がよくないですか?

arbert
質問者

お礼

ご回答いただきありがとうございます。 かなり高度な技のようですが、興味あります。 ORUKA1951さん、ご回答いただければうれしいのですが。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>今はテーマやカテゴリーごとにcssを分けている 賢明な判断だと思います。 >利点、欠点などがあれば教えてください。 利点としては、テーマごとにCSSを用意すれば、HTMLを編集することなく 見た目を大幅に変更できることですね。いわゆるスキンという考え方です。 欠点は管理が面倒なこと、ただし一つのCSSにすべてまとめてしまっても 必ずしも管理は楽にはなりませんが・・・

arbert
質問者

お礼

ご回答いただきありがとうございます。 これはこれでいいんですね。 確かにあまりcssも増えすぎれば、該当するcssを探すのも大変ですね。

関連するQ&A

  • cssについて

    ホームページでcssにしたいページがあります。そこで判らない点がありまして皆さんの教えを乞いたいと思い質問した次第です。 1.cssを作成したページはcssのフォルダを作って、その中にcssのソース(HTML)を格納し、サーバーに転送するそうなんですが、これはページ全体のソースのことですか。cssの部分だけですか? 2.cssのページはバック(壁紙)が“白”と“緑”のページがありますが、この場合はcssのフォルダを別々に作るのですか? 3.cssフォルダによってページが一括管理出来て更新が簡単になるとのことですが、ページ全体をcssにした方が管理しやすいですか? 4.cssのソースはホームページを作ってるソフト以外のエディタにコピーしても宜しいですか? Dreamweaver3で作成してますが、以外とアバウトなソフトなので、細かい設定はソフトの機能に頼らず、ソフトのタグをいじっています。なんせ初心者です。判りやすく解説お願いします。

  • CSSでメニューの作成

    初心者ですがホームページを作成しています。 メニューをあとから追加して複数ページを一括変更するには、外部スタイルシートを用いてメニューを作成すると良い、ということを検索してみつけたのですが、どうすればいいのかよくわかりません。 過去の質問を検索するとCSSではメニュー自体は作れないと書いてあったのですが、実際はどっちが正しいのでしょうか? もし作れるなら、作り方の載っているサイト等をおしえてください。

    • ベストアンサー
    • HTML
  • CSSでこんなことしたい

    CSS初心者です。 HPをこんどCSSを使って作成したいと思っています。 で、いろいろなページを参考に独自でがんばろうと… そんな状況ですが、ページ内のメニューにマウスを持っていったときに メニューが増えるようにするにはどうすればいいのですか? そんなCSSがあるのでしょうか?

  • 一つのドメインで複数のホームページを持つ利点は

    実験のために、いろんなテーマのホームページを作成したいのですが、ひとつのドメインに、複数のホームページを作ることはSEO上やはり影響があるでしょうか? 例えば、ダイエットと家電の2つのテーマを別々にホームページを作り、ひとつのドメインの下に別々のページとして作ると、SEO上不利でしょうか? それとも、別ドメインを取得して、それぞれのテーマごとにドメインを割り当ててページを作ったほうが良いでしょうか? ホームページ作成の練習のためと考えているので、ひとつのドメインの中に複数ホームページを作れるようなら、コストの削減になると思い、質問してみました。 よろしくお願い致します。

  • HTMLとCSSの違いとは?

    ホームページ作成を最近はじめたのですが、HTMLとCSSの違いがよくわかりません。本などをみて見ると、ひとつのスタイルを作ってそれを全体に適応できるようなことが書いてあったのですがいまいちよくわかりません。 スタイルシートは別に作ったりするのでしょうか? そもそもどちらかがどちらかに含まれるのでしょうか? 初心者なのでまったくよくわからないのですが、初心者でもわかるような説明をいただけるとうれしいです。

    • ベストアンサー
    • HTML
  • HTMLとCSSでのClass属性がわかりません

    画像を挿入し、リンクを埋め込むと、画像の周りに線がついてしまう。 これを避けたいのですが・・・・ 具体的に言いますと・・・各ページに「TOPページ」へ戻るボタンを埋め込みます 各ページのHTMLに <div class="icon"> <a href="リンク先"><img src="パス名"></a> </div> CSSに img.icon{ border-style: none; } と記述しましたが、各ページの画像(「TOPページ」へ戻るボタン)の周りは線がついたままです HTMLの<img src="パス名" border="0">を記述すれば、線を消すことは出来ますが 複数ページに渡っているため、全てにborder=”0”を入力するのは 手間がかかってしまいます なんとかCSSでコントロールしたいのですが・・・ そもそも記述(文法)が間違っているのでしょうか? Classのとらえ方が間違っているのでしょうか? 画像も一気に変えたい場合の事も想定し、 現在HTMLで画像挿入しているのを、CSSで埋め込む記述方法があれば 教えてください。 数日前から、HTMLとCSSの勉強をはじめた初心者ですので 見当違いな質問かもしれませんが どうぞ、よろしくお願いします

    • ベストアンサー
    • CSS
  • CSSで複数ページに、同じ文字列を表示できますか?

    初心者ですが、フレームを使わずに、複数ページに同じ文字列を表示する方法を教えてください。CSSではできないのでしょうか?

    • ベストアンサー
    • HTML
  • CSSの設定

    CSSの初心者です。 両端に背景色が表示されるようなページを作りたいです。 どんな幅の画面でも中央にコンテンツが中央に配置されるようにしたいです。どのようにCSSを記述すればいいでしょうか?

    • ベストアンサー
    • HTML
  • CSSの分割とウェブサイトの表示速度 (SEO)

    . よく、【(1)HTTPのリクエストを抑えるために、複数のCSSファイルはひとつにまとめる】ということが言われますが、一方で、【(2)表示速度のためにCSSを分割する】ということが推奨されることもあります。 この2つが一見矛盾する感じで少々混乱しております。 ここで、例えば、ホームページ・記事ページ・製品ページの、3つのページが存在するウェブサイトを仮定するとします。 【質問A】 そこで、(1)については、ある一つのページにおいては、もしCSSを複数呼び出している場合には、できるだけその複数のCSSファイルをまとめた方がHTTPのリクエストが少なくなるのでよい。 そして、(2)については、各ページにおいては、ページごとにCSSファイルを分けていた方がそのページでは使わない無駄なCSSコードを読み込ませなくて済むのでよい。 ということなのでしょうか? 【質問B】 そうすると、全てのCSSファイルを一つにまとめてしまうのではなく、例えば上の3つのページに共通するCSSをcommon.css 、それぞれのページに特有なCSSをindex.css、article.css、product.css といった感じで読み込ませるようにすることは、(1)(2)の両方をある程度両立させる方法といえますでしょうか? 【質問C】 質問Bの内容を具体的に実現するには、HTMLのヘッダー部分をテンプレートパートにして、まずcommon.cssについては<head>に<link>で記述しておき、index.css、article.css、product.css についてはその下に条件分岐で記述して各ページで該当のCSSを読み込ませるという方法で問題ございませんでしょうか。 .

    • ベストアンサー
    • CSS
  • CSSで動く画像ロールオーバーの利点について

    javascriptを使わずCSSのみで動かすロールオーバー画像の利点と欠点が↓以外にあれば教えて下さい。私の解釈が間違っていればご指摘願います。 ■利点 1.HTMLのソースが綺麗=ソースコードが軽くなる。 2.検索ロボットが余分なソースを読まなくてもよくなる為、SEO対策に有効。 3.listタグ(UL、LI)はSEOで重みづけが大きい?従ってlistタグで作成されたメニューはロボットに重要視される。 ■欠点 1.CSSファイルが複雑化。 javascriptでもできる事をあえてCSSでしようとする意図がイマイチ掴めません。 また、メニューの背景のみを画像にした場合(メニュー名はテキスト)、CSSもさほど複雑化しないと思いますが、もしメニューひとつひとつを画像にしていた場合はCSSが複雑化しないんでしょうか。

専門家に質問してみよう