2016-07-20 9 views
1

私たちは私が知っているしたいJQueryまたはJavascriptでCSSセレクタルールを作成できますか?

var st = document.createElement("style"); 

でスタイルや他のタグを作成しても、体

body.append(st); 

に同じを追加し、それが

<body><style></style></body> 

を作成することができますが、私たちはスタイルを置くことができます私はそこに$( "セレクタ")があることを知っている。css()関数はセレクタにCSSのルールを適用することができますが、私はもう少し強力な

<style> 
    div.bar { 
     text-align: center; 
     color: red; 
    } 
</style> 

st.innerHtmlまたはst.innerTextは私がこれらの値を設定せれていません。ルールと私は、私が作成したスタイルのタグで、このような

何かを追加したいです。

注:これはブラウザコンソールでのみ実行するように求められました。

+0

指定されたスタイルを持つクラスを追加していない理由を – guradio

+0

@guradio通常、私は同じことを行うが、それがそうすることをインタビューで私に尋ねました。インタビュアーはそのようにしなければならないと主張しました – Mohit

答えて

2

あなたは、単にあなたの目標はあるwhetever、

const cssCode = `div.bar { 
    text-align: center; 
    color: red; 
}` 
$('style-tag-selector').text(cssCode) 

私の意見のようにjQueryの.textメソッドを使用することができます - このソリューションはOKではありません。 JavaScript経由でCSSを混乱させるべきではありません。

ベスト・アプローチでは、別々にロードされた.cssファイルをロードし、クラスをjavascriptで要素に切り替えることができます。

あなたはスタイルタグ内で直接あなたのCSSを追加し、ページの先頭にそれらを追加することができ
+0

実際に私はインタビューで私に尋ねられました。私はこのアプローチに従っていません。 – Mohit

2

:この方法で、あなたがお互いの下に頭の中にCSSで複数のスタイルタグを追加することができ

$("head").append("<style>div.bar {text-align: center; color: red}</style>"); 

ます以前の音節を上書きできますが、それはベストプラクティスではありません。

あなたのスタイルを別々のファイルに保存し、ファイルを管理することをお勧めします。そうでない場合は、ファイルにコードが含まれます。

1

実際には、このためのインターフェイスがあります。たとえば、スタイルの要素を追加し、これが赤であることをクラスshould-be-redと何になります(これにルールを追加します。

var styleElement = document.createElement('style'); 
document.head.appendChild(styleElement); 
var sheet = styleElement.sheet; 
sheet.insertRule('.should-be-red { color: red; }', 0); 

あなたがルールを反復し、挿入/そのようなルールでエキサイティングなものを削除することができます。

さらに詳しい情報:https://developer.mozilla.org/en-US/docs/Web/API/CSSStylesheet

jsbin:?https://jsbin.com/jodiro/1/edit?html,js,output

関連する問題