XSLT 根据位置应用属性
我正在将 XSLT 用于基于 960 grid css 框架的网站。
我有跨越页面的 div 列,如果它是一行中的第一个 div,则应该首先应用一个类,如果它是中间一个,则没有类,如果它是行中的第三个,则应该有一个类最后应用。
我真的很摸不着头脑,因为解决这个问题的最佳方法是感谢任何帮助。
下面是我想要最终得到的结构,div 内的数字代表位置。
<div class="container_12">
<div id="main-content" class="alpha grid_12" style="margin-bottom: 20px;">
<div class="grid_4 alpha">
1
</div>
<div class="grid_4 ">
2
</div>
<div class="grid_4 omega">
3
</div>
<div class="grid_4 alpha">
4
</div>
</div>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此转换:
应用于以下 XML 文档时:
产生所需的正确结果:
说明:
身份规则“按原样”复制每个节点,除非被覆盖。
模板会覆盖
div[@id='main-content']/div
类型元素的身份规则
表达式
1 + (position() mod 3)
将位置映射到集合 {2, 3, 1}。上述表达式用作全局指定
classes>
元素提取要添加到div
元素的新 CSS 类This transformation:
when applied on the following XML document:
produces the wanted, correct result:
Explanation:
The identity rule copies every node "as-is", unless overridden.
A template overrides the identity rule for elements of the kind
div[@id='main-content']/div
The expression
1 + (position() mod 3)
maps the position into the set {2, 3, 1}.The above expression is used as an index into the children of the globally specified
<my:classes>
element to extract the new CSS class to be added to thediv
element