7

次のように、中かっこ付きのデータプレースホルダーを許可するCMSを使用しています。

Name: {First_Name} <br> 
Email: {Email} <br> 
Phone: {Phone} <br> 

ただし、電話フィールドが空白の場合は電話回線を非表示にできないなど、条件付き出力を実行する方法はありません。

CMSは、JavaScriptまたはサーバー側のコードを許可しません。私はこのトリックを思いついた:

Name: {First_Name} <br> 
Email: {Email} <br>
<div style="display:none{Phone}">Phone: {Phone} <br></div> 

その人が電話番号を持っていない場合、divはdisplay:noneになりますが、持っている場合、divは表示に意味のない値になり、div全体が表示されます。

IE8、IE9、FF14、Chromeで動作します

私がこれをすべきではない理由は何ですか?

4

1 に答える 1

7

いいえ、それはまったく問題ありません。CSSでブラウザが理解できない値はエラーになりません。単にその値を無視し、そのプロパティのデフォルト設定で要素を表示します。

[For]不正な値。ユーザーエージェントは、不正な値の宣言を無視する必要があります。例えば:

img { float: left }       /* correct CSS 2.1 */
img { float: left here }  /* "here" is not a value of 'float' */
img { background: "red" } /* keywords cannot be quoted */
img { border-width: 3 }   /* a unit must be specified for length values */

CSS 2.1パーサーは、スタイルシートが次のようになったかのように、最初のルールを尊重し、残りを無視します。

img { float: left }
img { }
img { }
img { }

引用:http ://www.w3.org/TR/CSS21/syndata.html#parsing-errors

于 2012-08-01T18:36:14.410 に答える