因此,我们使用 css 内容来定位真正“样式”特定的文本已成为相当普遍的做法。例如
.label:after { content: ":"; }
然而,有人向我指出,这种事情在某些文化中有所不同。哦哦。
有没有人有一个很好的模式来处理这种事情,因为 CSS 文件通常不通过 asp.net 处理器,因此无法访问资源文件。
因此,我们使用 css 内容来定位真正“样式”特定的文本已成为相当普遍的做法。例如
.label:after { content: ":"; }
然而,有人向我指出,这种事情在某些文化中有所不同。哦哦。
有没有人有一个很好的模式来处理这种事情,因为 CSS 文件通常不通过 asp.net 处理器,因此无法访问资源文件。
I really like this question so I thought about it a bit. Would this be a good approach for you?
<label data-after=":">Name</label>
Then, in your CSS you can do:
label:after {
content: attr(data-after);
}
Here's a quick demo of it: http://jsbin.com/iYEKOH/1/edit?html,css,output
It should be pretty easy to polyfill for browsers that don't support it using Modernizr. I think it would add a no-generatedcontent
class.
Another though... How about this approach?
html label:after { content: '' }
html[lang=en] label:after { content: ':' }
这种方法怎么样?它会让你根据lang
属性进行切换。
html label:after { content: '' }
html[lang=en] label:after { content: ':' }
如果我在 PHP 中执行此操作(脚本语言并不重要,只会影响实现细节),我将设置 CSS 文件,其中包含依赖于本地化的所有规则。
例如,local-en.css
,local-fr.css
等等。
在我的站点模板中,我会检查我的本地化标志,然后加载或链接到适当的 CSS 文件,同时考虑文件的顺序,以确保所有 CSS 规则正确级联。