標題のとおりですが、現況INPUT要素に対して以下のCSSを外部ファイルで定義しています。
CSS
1input[type='text'], textarea { 2 background-color: #EEFFFF; 3 color: #0000FF; 4} 5 6input[readonly] { 7 background-color: #FFFFDF; 8 color: #0000FF; 9}
これが適用されるWebページに、JSで適時ReadOnlyのTrue・Falseを切替えるようにしているのですがこの動作にひもづいて背景を替えたいと考えています。
(ReadOnly=True⇒背景#FFFFDF、ReadOnly=False⇒背景#EEFFFF)
上段のCSS定義を、ReadOnlyがFalseのとき限定と追記できれば と思うのですが
どういった記述を行えばよろしいのでしょうか?
:not()で書くのでしょうか、ちなみに以下のようにtype=textかつReadonlyではないという併記を試行したところ失敗、この定義は無効になっています。
CSS
1input[type='text']:not[readonly], textarea { 2 background-color: #EEFFFF; 3 color: #0000FF; 4}
【14:50編集】
皆様の支援でreadonlyが適用されていない要素には、背景色を#EEFFFFとするCSSを定義できたようです。
但し、ブラウザの開発ツールをみると、その定義は無効=別の定義で上書かれてしまっているようです。
以下の画像は既にReadOnlyがFalseになった状況で(当該input要素の内容を変更できるのでReadOnlyは外れているに違いない)、ブラウザの開発ツールを起動し当該要素部分のスタイルを確認しているところです。右側の緑枠で囲んだ部分についてですが、上段が現況採用されているスタイルで、下段が無効になってしまったスタイルという認識は正しいでしょうか?また、そうであった場合、上段は何の制御から設定されたスタイル・背景なのかうかがいしれないでしょうか(スタイルシートの行番号の記載がないということはJSの仕業?)

回答3件
あなたの回答
tips
プレビュー