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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

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

JavaScript

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

Q&A

解決済

2回答

7161閲覧

textareaやinput内の一部の色をクラスを変えて再現する挙動

ninjin_missile

総合スコア9

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

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

JavaScript

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

0グッド

0クリップ

投稿2018/06/20 11:15

前提・実現したいこと

WordpressのContact form7にてお問い合わせフォームを作成中です。
それ自体はいいのですが、デザイン上でplaceholder内に必須マーク(※)があり、これの色だけが違うという状態で再現に手間取っています。
placeholderの色を一部だけ変えるというのがCSS上で無理だったため、jsにて挑戦中なのですがうまくいきません

解決策を模索して、擬似的にcssの疑似要素で「※」を入れていまして(label要素にrelativeを入れabsoluteで位置を調整しています。)
文字が入力されることでhissuクラスをとり、文字が入力されてない状態になるとまたhissuクラス付与、
入力ミス等で元の画面に戻された際、文字が入力済みの箇所があるとhissuクラスはとる
という挙動で考えています。

javascript

1 2$('.hissu').each(function () { 3var $this = $(this); 4$(this).find('.input').on('keypress', function () { 5 if ($(this).val()) { 6 $this.removeClass('.hissu'); 7 } 8 else { 9 $this.addClass('.hissu'); 10 } 11}); 12 if ($(this).val()) { 13 $this.removeClass('.hissu'); 14 } 15 else { 16 $this.addClass('.hissu'); 17 } 18});

css

1.hissu::before{ 2content: '※'; 3position:absolute; 4top: 5px; 5left: 45px; 6color: #3377EE; 7}

html

1<label class="hissu"><input type="text" id="namae" name="namae" value="" placeholder="お名前"></label>

どなたかご教授願えればと思います。

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

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

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

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

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

guest

回答2

0

ベストアンサー

:invalid 疑似クラスを使って背景色を指定してみてはどうでしょうか?
required 属性追加。

HTML

1<input type="text" id="namae" name="namae" value="" placeholder="お名前" required="required" />

CSS

1.hissu::before { 2 content: '※'; 3/* 4 position:absolute; 5 top: 5px; 6 left: 45px; 7*/ 8 color: #3377EE; 9/* add */ 10 display: inline-block; 11 width: 0; 12 overflow: visible; 13} 14 15.hissu input { 16 background: transparent; 17 border: 1px solid #999; 18} 19 20.hissu input:valid { 21 background: #fff; 22} 23 24.hissu input::placeholder { 25 text-indent: 1em; 26}

https://developer.mozilla.org/ja/docs/Web/CSS/:valid

投稿2018/06/21 03:04

編集2018/06/21 03:28
x_x

総合スコア13749

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

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

ninjin_missile

2018/06/21 09:33

すみません名前の後ろに本来持って行きたかったのですが、情報不足でした・・・ しかし挙動としてはとても実装したかったことに近くとても参考になりました。ありがとうございます
guest

0

textareaで途中で文字の色を変える方法 - teratail

↑こちらに似たような質問が。

投稿2018/06/20 12:27

tkturbo

総合スコア5572

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

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

ninjin_missile

2018/06/21 09:28

ありがとうございます確認してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問