首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VisualForce条件html标记

VisualForce条件html标记
EN

Stack Overflow用户
提问于 2012-04-28 09:16:38
回答 3查看 4.9K关注 0票数 2

我正在尝试将不同的样式应用于列表中的第一个元素。

我当前正在尝试使用计数器仅在cnt==0时应用具有classli,但我不能在OutputText标记中包含< >括号。有没有办法使用条件转义括号或将class插入到<li>标记中?

我知道这可以在事后使用JavaScript完成,但我宁愿避免这样做。

代码语言:javascript
复制
<apex:variable var="cnt" value="{!0}" /> 
<apex:repeat value="{!items}" var="item" >
    <!-- only render the class if it is the first element -->
    <apex:OutputText value="<li class="activeLI">" rendered="{!cnt==0}" />
    <apex:OutputText value="<li>" rendered="{!cnt!=0}" />        

        <img src="{!$Resource[item.Image__c]}" width="85" height="90"/>
    </li>
    <apex:variable var="cnt" value="{!cnt+1}"/>
</apex:repeat>  
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-30 00:16:59

Visualforce是严格的,每个元素都必须有一个开始和结束标记,或者必须是自动关闭的。编译时,Visualforce会报错,因为它只会看到结束的"li“标记,而不会看到条件开始的"li”标记,一种解决方案是将类名作为变量,如下所示:

代码语言:javascript
复制
<apex:variable var="cnt" value="{!0}" />
<apex:variable var="class" value=""/>
<apex:repeat value="{!items}" var="item" >
  <apex:variable var="class" value="activeLI" rendered="{!cnt==0}"/>
  <apex:variable var="class" value="" rendered="{!cnt!=0}"/>
    <li class="{!class}">
      ...
    </li>
  <apex:variable var="cnt" value="{!cnt+1}"/> 
</apex:repeat>
票数 4
EN

Stack Overflow用户

发布于 2012-05-03 00:36:48

你是否考虑过使用CSS选择器?这里有一个关于如何样式化列表的第一个元素的例子。

代码语言:javascript
复制
<style>
ul.myList > li:first-child {color : red}
</style>

<ul class="myList">
  <li>this is red</li>
  <li>this has default formatting</li>
</ul>
票数 1
EN

Stack Overflow用户

发布于 2012-04-29 23:42:06

你有没有考虑过使用<apex:dataList>?我认为它可能会实现你想要做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10359725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档