<input id="username" name="username" HTML5 プレースホルダー属性の詳細な紹介="请输入用户名" type="text">
<textarea>
複数行のテキスト ボックスと、属性値が text、password、search、tel、url、または email などである <input>
に適しています。 > <textarea>
多行文本框和 type
属性值为 text, password, search, tel, url 或者 email 等的 <input>
。<p>::HTML5 プレースホルダー属性の詳細な紹介
伪元素选择器,不过当前还没有浏览器支持,因此只能根据不同浏览器的不同实现方式分别定义:::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介 { /* Chrome/Safari/Opera */ color: green;}::-moz-HTML5 プレースホルダー属性の詳細な紹介 { /* Firefox 19+ */ color: green;}:-ms-input-HTML5 プレースホルダー属性の詳細な紹介 { /* IE 10+ 注意这里只有一个冒号 */ color: green;}
::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介,::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: green;}
:-moz-HTML5 プレースホルダー属性の詳細な紹介 { /* Firefox 4 - 18 */ color: green;}
:-moz-HTML5 プレースホルダー属性の詳細な紹介
被废弃了,切换为两个冒号的伪元素定义方式。与此同时,它还添加了一个默认的 opacity: 0.54
不透明度样式,如果需要,可以覆盖掉该样式,否则文字是半透明的:::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: green; opacity: 1;}
:first-child
伪类,选择第一个子元素:p:first-child { font-size: 16px;}
p.first-child { font-size: 16px;}
<p>
元素上的。<p>而伪元素可以理解为添加了一个虚拟的元素。比如 p:before
伪元素,可以像下面这个伪代码这样理解:<before>p:before</before><p>paragraph</p>
<p>
元素和 p:before
可以理解为是两个不同的元素。如果被绕晕了,没关系,毕竟这不是本文的重点,更多伪元素与伪类的信息可以参考 Pseudo-classes - CSS | MDN 和 Pseudo-elements - CSS | MDN:-ms-input-HTML5 プレースホルダー属性の詳細な紹介
选择器来定义 HTML5 プレースホルダー属性の詳細な紹介 的样式,实际上样式是作用于文本输入框的,如果另外还有针对文本输入框的选择器特殊性更高的样式规则,将会覆盖掉该样式,参考下面代码:input:-ms-input-HTML5 プレースホルダー属性の詳細な紹介 { /* 0, 0, 1, 1 */ color: green;}#username { /* 0, 1, 0, 0 */ color: blue;}
!important
规则可以用。其它使用两个冒号的伪元素选择器的浏览器不会出现这个问题,例如:input::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介 { /* 0, 0, 0, 2 */ color: green;}#username { /* 0, 1, 0, 0 */ color: blue;}
:focus
伪类选择器来将 HTML5 プレースホルダー属性の詳細な紹介 的文本颜色设置为透明::focus::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介 { color: transparent;}
HTML5 プレースホルダー属性の詳細な紹介
属性的值就行了:$('input').attr('HTML5 プレースホルダー属性の詳細な紹介', 'Please enter your name');
window.getComputedStyle()
<p>::HTML5 プレースホルダー属性の詳細な紹介
疑似要素セレクターを使用する必要があります。ただし、現在ブラウザーはサポートされていないため、次に従って個別に定義することしかできません。異なるブラウザの異なる実装方法: 🎜window.getComputedStyle(document.getElementById('username'), '::-moz-HTML5 プレースホルダー属性の詳細な紹介').getPropertyValue('color'); // "rgb(0, 255, 0)"
.style-1::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: green;}.style-2::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: red;}
$('input').addClass('style-2').removeClass('style-1');
:-moz-HTML5 プレースホルダー属性の詳細な紹介
は非推奨となり、2 つのコロンの疑似要素定義メソッドに切り替えられます。同時に、デフォルトの opacity: 0.54
不透明度スタイルも追加されます。これは必要に応じてオーバーライドできます。それ以外の場合、テキストは半透明になります: 🎜if (!Modernizr.input.HTML5 プレースホルダー属性の詳細な紹介) { // 做点什么事}
:first-child
疑似クラスなどの要素にクラスを追加し、最初の子要素を選択するものとして理解できます。 🎜'HTML5 プレースホルダー属性の詳細な紹介' in document.createElement('input')
'HTML5 プレースホルダー属性の詳細な紹介' in document.createElement('textarea')
<p>
要素に直接追加されます。 。 🎜🎜擬似要素は、仮想要素を追加するものとして理解できます。たとえば、p:before
擬似要素は次の擬似コードのように理解できます: 🎜({}).toString.call(window.operamini) === '[object OperaMini]'
<p>
要素と p:before は次のとおりです。
これは 2 つの異なる要素として理解できます。混乱している場合でも、それは問題ではありません。結局のところ、これはこの記事の焦点ではありません。疑似要素と疑似クラスの詳細については、「疑似クラス - MDN と疑似要素 -」を参照してください。 CSS | MDN🎜:-ms-input-HTML5 プレースホルダー属性の詳細な紹介
セレクターを使用するため実際、スタイルはテキスト入力ボックスに適用されます。テキスト入力ボックスのセレクターに対してより高い特異性を持つ他のスタイル ルールがある場合、このスタイルは上書きされます。コメント内の は、セレクターの特異性を示すために使用されます。 🎜🎜上記 2 つのスタイル ルールのうち、ID セレクターを使用する方がより具体的であるため、IE 10/11 でテストすると、プレースホルダーが青色で表示され、予想とは少し異なることがわかります。この問題は、疑似クラス セレクターを使用する Firefox の古いバージョンでも発生するため、スタイルを記述するときに特に注意する必要があります。! important</ があることを忘れないでください。 code> 使用できるルール。 2 つのコロンを含む疑似要素セレクターを使用する他のブラウザーでは、この問題は発生しません。例: 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false;">if (!(&#39;HTML5 プレースホルダー属性の詳細な紹介&#39; in document.createElement(&#39;input&#39;)) || ({}).toString.call(window.operamini) === &#39;[object OperaMini]&#39;) {
// 做点什么事}</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>🎜 上記の 2 つのスタイル ルールは、相互に影響しません。Chrome を使用して、プレースホルダーの色が緑色であることをテストします。 🎜🎜セレクターの特殊性については、私の著作「CSS セレクターの特殊性と重要性」を参照してください。 🎜<h3>動作の一貫性を保つ</h3>🎜 スタイルはカスタマイズできますが、Chrome と Firefox ではまだ動作にいくつかの違いがあり、テキスト入力ボックスにコンテンツが入力された場合にのみプレースホルダーが消えます。コンテンツがクリアされると表示されます。IE では、テキスト入力ボックスがフォーカスを取得するとプレースホルダーが消え、フォーカスを失ってコンテンツが入力されないと再表示されます。 Chrome や Firefox などのブラウザでフォーカスを取得した後に消える効果を実現したい場合は、 <code>:focus
擬似クラス セレクターを使用して、プレースホルダーのテキストの色を透明に設定できます: 🎜// 做点什么事$('input[HTML5 プレースホルダー属性の詳細な紹介]').on('focus', function() { var $this = $(this); if (this.value === $this.attr('HTML5 プレースホルダー属性の詳細な紹介') && $this.hasClass('HTML5 プレースホルダー属性の詳細な紹介')) { this.value = ''; $this.removeClass('HTML5 プレースホルダー属性の詳細な紹介'); }}).on('blur', function() { var $this = $(this); if (this.value === '') { $this.addClass('HTML5 プレースホルダー属性の詳細な紹介'); this.value = $this.attr('HTML5 プレースホルダー属性の詳細な紹介'); }});
HTML5 プレースホルダー属性の詳細な紹介
属性の値を直接取得または変更するだけです: 🎜$('input[HTML5 プレースホルダー属性の詳細な紹介]').on('blur', function() { var $this = $(this); var $replacement; if (this.value === '') { // 失去焦点时值为空则显示 HTML5 プレースホルダー属性の詳細な紹介 if (this.type === 'password') { $replacement = $this.clone().attr('type', 'text'); $replacement.data('HTML5 プレースホルダー属性の詳細な紹介-password', $this); // 替代显示的文本输入框获取焦点时将它删掉,并且重新显示原来的密码输入框 $replacement.on('focus', function() { $(this).data('HTML5 プレースホルダー属性の詳細な紹介-password').show().focus(); $(this).remove(); }); $this.after($replacement).hide(); $this = $replacement; } $this.addClass('HTML5 プレースホルダー属性の詳細な紹介'); $this[0].value = $this.attr('HTML5 プレースホルダー属性の詳細な紹介'); }});
window.getComputedStyle()
メソッドを使用してそのスタイル属性を取得できます。このメソッドの 2 番目のパラメータは疑似要素です: 🎜try { $replacement = $this.clone().prop('type', 'text'); // 使用 .prop() 方法在 IE 8 下会报错} catch(e) { $replacement = $('<input>').attr({ 'type': 'text', 'class': this.className // 还可以赋予 id, name 等属性 });}
.style-1::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: green;}.style-2::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: red;}
class
属性来实现修改样式的目的:$('input').addClass('style-2').removeClass('style-1');
<input>
元素的 HTML5 プレースホルダー属性の詳細な紹介
属性,可以引入 Modernizr 库来判断:if (!Modernizr.input.HTML5 プレースホルダー属性の詳細な紹介) { // 做点什么事}
<input>
元素对象,并判断该元素对象是否具有 HTML5 プレースホルダー属性の詳細な紹介
属性:'HTML5 プレースホルダー属性の詳細な紹介' in document.createElement('input')
<textarea>
元素也是一样:'HTML5 プレースホルダー属性の詳細な紹介' in document.createElement('textarea')
({}).toString.call(window.operamini) === '[object OperaMini]'
if (!('HTML5 プレースホルダー属性の詳細な紹介' in document.createElement('input')) || ({}).toString.call(window.operamini) === '[object OperaMini]') { // 做点什么事}
value
值设置为 HTML5 プレースホルダー属性の詳細な紹介
的值来模拟显示 HTML5 プレースホルダー属性の詳細な紹介 的状态。再添加上事件处理程序,当文本输入框获取焦点时如果 value
的值为 HTML5 プレースホルダー属性の詳細な紹介 则清空文本输入框;当文本输入框失去焦点时如果 value
值为空则将 HTML5 プレースホルダー属性の詳細な紹介 的内容赋给它,同时当 HTML5 プレースホルダー属性の詳細な紹介 显示的时候应该给文本输入框添加一个 class="HTML5 プレースホルダー属性の詳細な紹介"
用来设置样式以区别是显示的 HTML5 プレースホルダー属性の詳細な紹介 和还是显示的普通 value:// 做点什么事$('input[HTML5 プレースホルダー属性の詳細な紹介]').on('focus', function() { var $this = $(this); if (this.value === $this.attr('HTML5 プレースホルダー属性の詳細な紹介') && $this.hasClass('HTML5 プレースホルダー属性の詳細な紹介')) { this.value = ''; $this.removeClass('HTML5 プレースホルダー属性の詳細な紹介'); }}).on('blur', function() { var $this = $(this); if (this.value === '') { $this.addClass('HTML5 プレースホルダー属性の詳細な紹介'); this.value = $this.attr('HTML5 プレースホルダー属性の詳細な紹介'); }});
value
值会显示为圆点之类的字符,呈现几个莫名其妙的圆点来作为 HTML5 プレースホルダー属性の詳細な紹介 提示恐怕不妥,因此需要特殊对待一下,将密码输入框拷贝一份出来然后修改其 type
属性为 'text' 来替代显示 HTML5 プレースホルダー属性の詳細な紹介,并把原本的密码输入框隐藏:$('input[HTML5 プレースホルダー属性の詳細な紹介]').on('blur', function() { var $this = $(this); var $replacement; if (this.value === '') { // 失去焦点时值为空则显示 HTML5 プレースホルダー属性の詳細な紹介 if (this.type === 'password') { $replacement = $this.clone().attr('type', 'text'); $replacement.data('HTML5 プレースホルダー属性の詳細な紹介-password', $this); // 替代显示的文本输入框获取焦点时将它删掉,并且重新显示原来的密码输入框 $replacement.on('focus', function() { $(this).data('HTML5 プレースホルダー属性の詳細な紹介-password').show().focus(); $(this).remove(); }); $this.after($replacement).hide(); $this = $replacement; } $this.addClass('HTML5 プレースホルダー属性の詳細な紹介'); $this[0].value = $this.attr('HTML5 プレースホルダー属性の詳細な紹介'); }});
try { $replacement = $this.clone().prop('type', 'text'); // 使用 .prop() 方法在 IE 8 下会报错} catch(e) { $replacement = $('<input>').attr({ 'type': 'text', 'class': this.className // 还可以赋予 id, name 等属性 });}
value
值设为空,提交之后再恢复成显示 HTML5 プレースホルダー属性の詳細な紹介 的状态:$(document).on('submit', 'form', function() { var $input = $('.HTML5 プレースホルダー属性の詳細な紹介', this); $input.each(function() { this.value = ''; }); setTimeout(function() { $input.each(function() { this.value = $(this).attr('HTML5 プレースホルダー属性の詳細な紹介'); }); }, 10);});
beforeunload
事件来处理:$(window).on('beforeunload', function() { $('.HTML5 プレースホルダー属性の詳細な紹介').each(function() { this.value = ''; });});
input::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介, textarea::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介 { color: #999;}input::-moz-HTML5 プレースホルダー属性の詳細な紹介, textarea::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: #999; opacity: 1;}input:-ms-input-HTML5 プレースホルダー属性の詳細な紹介, textarea:-ms-input-HTML5 プレースホルダー属性の詳細な紹介 { color: #999;}.HTML5 プレースホルダー属性の詳細な紹介 { color: #999;}input:focus::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介, textarea:focus::-webkit-input-HTML5 プレースホルダー属性の詳細な紹介 { color: transparent;}input:focus::-moz-HTML5 プレースホルダー属性の詳細な紹介, textarea:focus::-moz-HTML5 プレースホルダー属性の詳細な紹介 { color: transparent;}
以上がHTML5 プレースホルダー属性の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。