aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/css/_colon_valid/index.html
blob: 92f7e6cb9da2a42f519b8ae598a5d133cce1512b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
title: ':valid'
slug: 'Web/CSS/:valid'
tags:
  - CSS
  - CSS 基本ユーザーインターフェイス
  - Layout
  - Pseudo-class
  - Reference
  - Web
  - セレクター
  - 疑似クラス
translation_of: 'Web/CSS/:valid'
---
<div>{{CSSRef}}</div>

<p><a href="/ja/docs/Web/CSS">CSS</a><strong><code>:valid</code></strong> <a href="/ja/docs/Web/CSS/Pseudo-classes" title="Pseudo-classes">擬似クラス</a>は、内容の<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">検証</a>に成功した {{htmlelement("input")}} 要素 やその他の {{HTMLElement("form")}} 要素を表します。これにより、有効な入力欄に、データの形式が適切であることをユーザーが確認しやすくなる外観を簡単に適用できるようになります。</p>

<pre class="brush: css no-line-numbers notranslate">/* 有効な &lt;input&gt; をすべて選択 */
input:valid {
  background-color: powderblue;
}</pre>

<p>この擬似クラスは、入力値が正しい入力欄をユーザーに強調表示するのに便利です。</p>

<h2 id="Syntax" name="Syntax">構文</h2>

{{csssyntax}}

<h2 id="Examples" name="Examples"></h2>

<p>この例では、このような構造を使用しています。この構造には、コンテンツを生成するための追加の <span> が含まれており、これらを使用して、データが有効であるか無効であるかの表示を提供します。</span></p>

<pre class="brush: html notranslate">&lt;div&gt;
  &lt;label for="fname"&gt;First name *: &lt;/label&gt;
  &lt;input id="fname" name="fname" type="text" required&gt;
  &lt;span&gt;&lt;/span&gt;
&lt;/div&gt;</pre>

<p>これらの表示を提供するために、以下の CSS を使用します。</p>

<pre class="brush: css notranslate">input + span {
  position: relative;
}

input + span::before {
  position: absolute;
  right: -20px;
  top: 5px;
}

input:invalid {
  border: 2px solid red;
}

input:invalid + span::before {
  content: '✖';
  color: red;
}

input:valid + span::before {
  content: '✓';
  color: green;
}</pre>

<p>生成されたコンテンツを相対的に配置できるように <code>&lt;span&gt;</code><code>position: relative</code> に設定します。そして、フォームのデータが有効か無効かに応じて、生成されるコンテンツを絶対位置指定で配置します。無効なデータには、さらに軽く緊急性を表すために、無効になったときに太い赤い枠線をつけています。</p>

<div class="blockIndicator note">
<p><strong>Note</strong>: We've used <code>::before</code> to add these labels, as we were already using <code>::after</code> for the "required" labels.</p>
</div>

<p>You can try it below:</p>

<p>{{EmbedGHLiveSample("learning-area/html/forms/pseudo-classes/valid-invalid.html", '100%', 430)}}</p>

<p>Notice how the required text inputs are invalid when empty, but valid when they have something filled in. The email input on the other hand is valid when empty, as it is not required, but invalid when it contains something that is not a proper email address.</p>

<h2 id="Accessibility_concerns" name="Accessibility_concerns">アクセシビリティの考慮事項</h2>

<p>緑色は入力が有効であることを示すためによく使われます。色盲の人によっては、それ以外の色によらない識別方法を伴わないと、入力状態が判別できないことがあります。通常、文字列やアイコンを使用して説明します。</p>

<ul>
 <li><a href="/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.4_Make_it_easier_for_users_to_see_and_hear_content_including_separating_foreground_from_background">MDN "WCAG を理解する ― ガイドライン 1.4 の解説"</a></li>
 <li><a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-without-color.html">Understanding Success Criterion 1.4.1 | W3C WCAG 2.0 の理解</a></li>
</ul>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状態</th>
   <th scope="col">備考</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('HTML WHATWG', '#selector-valid', ':valid')}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td>変更なし。</td>
  </tr>
  <tr>
   <td>{{SpecName('HTML5 W3C', '#selector-valid', ':valid')}}</td>
   <td>{{Spec2('HTML5 W3C')}}</td>
   <td>HTML の意味論と制約検証を定義。</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS4 Selectors', '#validity-pseudos', ':valid')}}</td>
   <td>{{Spec2('CSS4 Selectors')}}</td>
   <td>初回定義。</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<div>
<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div>

<p>{{Compat("css.selectors.valid")}}</p>
</div>

<h2 id="See_also" name="See_also">関連項目</h2>

<ul>
 <li>他の検証関連の擬似クラス: {{ cssxref(":required") }}, {{ cssxref(":optional") }}, {{ cssxref(":invalid") }}</li>
 <li><a href="/ja/docs/Learn/HTML/Forms/Form_validation">フォームデータの検証</a></li>
 <li>JavaScript からの <a href="/ja/docs/Web/API/ValidityState">validity state</a></li>
</ul>