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

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

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

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1200閲覧

Webサービスのユーザー側のカラーを、管理画面で一括変更できるような仕組みを作りたい

xyunow

総合スコア122

CMS

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2021/04/20 16:26

前提・実現したいこと

jQuery、SCSS、Python、Djangoを利用しています。

管理者だけが操作できる管理画面と、一般ユーザーが見る画面のあるWebサービスがあり、
管理画面で管理者がボタンの色に「#f00」を登録したら、ユーザー画面全体のボタンの色が「#f00」に変わるような仕組みを作りたい

そもそもどうやって実装したら良いか、取っ掛かりもなく行き詰まっている状態です。。。
検索のキーワードもわからず、良い参考記事も見つけられないでいます。

jQuery、SCSS、Python、Django以外でも、実現に必要な技術があれば取り入れたいと思っています。

試したこと

Djangoテンプレートに、

tpl

1<input type="hidden" data-service-color="{{service_color}}">

のような形で利用する色を表示しておき、
jQueryでdata-service-colorの値を読み取って、

tpl

1<button class="js_change_color">登録する</button>

jQuery

1$(".js_change_color").css("background-color", service_color);

のような形で指定する

ただし、この場合
・JavaScriptを使うため、色の変更が完了するまで少し時間がかかる
・色を変更したい対象が様々なため、buttonだったらbackground-color、○○○だったらborder-color。。。とUIごとにプロパティのパターンをたくさん記述しないといけなくなる
といった問題があります

なにか良い方法はないかと思い質問させていただきました。

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんにちは。

CSS変数を使えばいいのではないかな、と思いました。

html

1<body style="--service_color: {{service_color}}">

CSS

1.js_change_color .hoge{ 2 background-color: var(--service_color); 3} 4.js_change_color .fuga{ 5 border-color: var(--service_color); 6}

js

1$('body')[0].style.setProperty(`--service_color`, service_color);

参考:
CSS カスタムプロパティ (変数) の使用 - CSS: カスケーディングスタイルシート | MDN

投稿2021/04/23 00:58

編集2021/04/23 05:21
Lhankor_Mhy

総合スコア36115

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

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

xyunow

2021/04/26 07:44

ありがとうございます。 CSS変数を知らなかったので詳しく調べて利用したいと思います。
guest

0

標準デザインの CSS は用意されているのだと思います。

あらかじめ、カスタマイズ可能な全ての箇所に ID か Class を記載しておいて、管理画面で id や class に対応する CSS を編集するのが比較的簡単ではないでしょうか。

管理画面で編集した内容は、CSS ファイルとして書き出して HTML でデフォルトのCSS と一緒に読み込むか、HTML の先頭で Style タグで埋め込むことが実装面では楽な気がします。

投稿2021/04/22 22:06

CHERRY

総合スコア25171

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

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

xyunow

2021/04/26 07:43

ありがとうございます。 自分がフロント側なのでついついそちらをメインに考えていましたが、 ご回答いただいたCSSファイルを書き出す方法も良いですね! (今、管理者が編集したHTML/CSSをファイルに書き出す仕組み自体はあるので、機能を修正すれば実現できそうです)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問