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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

CSS

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

Q&A

解決済

2回答

885閲覧

CSSに別のCSSの情報を付与する方法はないか

BeatStar

総合スコア4958

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

CSS

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

0グッド

0クリップ

投稿2019/03/25 01:51

HTML5 + CSSでやっています。(趣味)

CSSは外部ファイル( 例えば default.css等 ) としてやっています。

質問: CSSに別のCSSの情報を付与する方法はないか?

例えば、基本的なCSSを default.cssに記述しておいて、
基本的なHTML構造を用意するとします。

これを(ファイルとディレクトリを)コピーして"project1"というディレクトリを作ります。

この中に入っているdefault.cssには初期状態として

CSS

1.redpen{ 2 color: red; 3} 4 5.greenpen{ 6 color: green; 7} 8 9.marker{ 10 background-color: yellow; 11}

みたいに書いているとします。

で、このdefault.cssを @importでしたっけ?
これで取り込んでoriginal.css とします。( このproject独自の定義 )

original.css内で redmarker = redpen + marker のように合成することはできないでしょうか?

書き方はあくまでイメージですが、

CSS

1.redmarker{ 2 + .redpen; 3 + .marker; 4}

のような感じです。

ある意味、C++とかでいう、多重継承みたいな状態をイメージしています。

これって不可能でしょうか?

やはり

HTML

1<span class="marker"><span class="redpen">全米が泣いた!</span></span>

のような感じでHTMLの方で追加していくしかないでしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

半角スペースで複数つければよいです。

html

1<span class="marker redpen">全米が泣いた!</span>

あとcss自体も色々な書き方が出来ます。

SCSSを導入すればまさに継承のような定義の仕方が可能です。

※ただ、コンパイル結果はCSSなのでHTMLに当てる場合は最初に書いたような書き方になります。

投稿2019/03/25 02:22

m.ts10806

総合スコア80850

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

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

BeatStar

2019/03/25 05:45

ご回答ありがとうございます。 おお、近いです! まだ試していないのでどうなるかわかりませんが、 ちょっと惜しいぐらいです。 個人的にはsass? のextendに近い処理がしたかったのです... (今、sassっていうのを知りました...) でも、 <span class="marker"><span class="redpen">全米が泣いた!</span></span> よりはかなり、私がやりたかったことに近いので、sassっていうのを理解するまではこちら( and のやつ )を使わせていただきます!
BeatStar

2019/03/25 05:47

そのまま、囲めばよかったのか...
m.ts10806

2019/03/25 05:50

cssはあくまでレイアウトのみを司るものなのでプログラミング的に都合の良いようには作られてなかったりします。これでもだいぶ柔軟になってきましたし、SCSSという仕組みはできたものの結局コンパイルしてcssとして読ませるしかなかったりします。 そこは仕様として受け止めるしかない部分もありますね
guest

0

回答として少し違っていたらすみません。

scssのmixinがやりたいことと近いのかなという印象だったので回答してみます。
https://qiita.com/one-a/items/2758511326c09200fded

scss

1 2@mixin redpen(){ 3 color: red; 4} 5 6@mixin greenpen(){ 7 color: green; 8} 9 10@mixin marker(){ 11 background-color: yellow; 12} 13 14.redmarker { 15 @include redpen(); 16 @include marker(); 17} 18

scssはブラウザでサポートされていなかったと思うので
一般的にはローカル環境などでコンパイルすることが多いと思います。

私はgulpというものを使用してCSSに書き出していますが
上記をコンパイルすると以下のようになります。

css

1.redmarker { 2 color: red; 3 background-color: yellow; 4}

scssはプロパティを変数に入れたり
その変数を引数にしてオブジェクト指向っぽく書けたりします。
数年前にCSS界隈で流行っていたもので
現在は生のCSSで四則演算ができるようになっていたりするので
この辺りももっと良い方法があるかもしれません。
参考になりましたら幸いです。

投稿2019/03/25 02:29

編集2019/03/25 06:12
ruuusaamarki

総合スコア468

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

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

BeatStar

2019/03/25 05:39

ご回答ありがとうございます。 おー、sassっていうのがあるんですねぇ。
BeatStar

2019/03/25 05:48

sassっていうのを試してみてから使わせてもらいますね
ruuusaamarki

2019/03/25 06:14 編集

すみません、extendの方が近そうですね。 私も使ったことなかったので勉強になりました! またsassとscssの記載も間違いがあったので修正しました。 今回書いたのはscssでした。失礼いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問