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 以无意义的 display 值结尾,并且整个 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 回答