Opencart类别模块中每个UL的不同风格

时间:2012-11-19 13:57:48

标签: css categories opencart

我的Opencart中有以下类别结构

<ul>
<li class="bu">
    <a href="http://brandoutlet.lv/index.php?route=product/category&amp;path=205" class="active">PARENT 1</a>
        <ul>
            <li>
                <a href="/index.php?route=product/category&amp;path=205_66"> CHILD 1</a>
                <ul>
                    <li><a href="index.php?route=product/category&amp;path=205_66_230"> - GRANDCHILD 1</a></li>
                    <li><a href="/index.php?route=product/category&amp;path=205_66_229"> - GRANDCHILD 2</a></li>
                    <li><a href="/index.php?route=product/category&amp;path=205_66_228"> - GRANDCHILD 3</a></li>
                </ul>
            </li>
            <li>
                <a href="/index.php?route=product/category&amp;path=205_67" class="active"> CHILD 2</a>
                <ul>
                    <li><a href="/index.php?route=product/category&amp;path=205_67_231"> - GRANDCHILD 1</a></li>
                    <li><a href="/index.php?route=product/category&amp;path=205_67_217"> - GRANDCHILD 2</a></li>
                    <li><a href="/index.php?route=product/category&amp;path=205_67_216"> - GRANDCHILD 3</a></li>
                    <li><a href="/index.php?route=product/category&amp;path=205_67_215"> - GRANDCHILD 4</a></li>
                </ul>
            </li>
        </ul>
</li>
<li class="bu">
    <a href="/index.php?route=product/category&amp;path=206"> PARENT 2</a>
//....ETC

如何给父母,儿童和孙子赋予不同的造型(颜色,重量,装饰)?

我试图让它与JS一起搜索UL并根据位置应用类,但结果是混乱和不正确的。

有什么想法吗?谢谢!

视图文件:

<ul>
    <?php foreach ($categories as $category) { ?>
    <?php if($category['children']) { ?>
        <li class="bu">
        <?php } else { ?>
        <li class="onit" >
        <?php } ?>
      <?php if ($category['category_id'] == $category_id) { ?>
      <a href="<?php echo $category['href']; ?>" class="active" ><?php echo $category['name']; ?></a>
      <?php } else { ?>
      <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
      <?php } ?>
      <?php if ($category['children']) { ?>
      <ul>
        <?php foreach ($category['children'] as $child) { ?>
        <li class="onit" >
          <?php if ($child['category_id'] == $child_id) { ?>
          <a href="<?php echo $child['href']; ?>" class="active">  <?php echo $child['name']; ?></a>
          <?php } else { ?>
          <a href="<?php echo $child['href']; ?>">  <?php echo $child['name']; ?></a>
          <?php } ?>
        </li>
        <?php } ?>
      </ul>
      <?php } ?>
    </li>
    <?php } ?>
  </ul>

2 个答案:

答案 0 :(得分:0)

您可以搜索并修改生成此表单的php文件。比完成一些css类的代码。


回答编辑过的问题:
如果您观察href,您可以看到路径部分在同一代中具有相同数量的变量:

  • 父级:路径= 205
  • 孩子:路径= 205_66
  • 孙子:路径= 205_66_230

您可以获得文本的这一部分,并根据变量编号进行格式化。所以条件看起来像这样:

if(count(explode("_",strstr($child['href'],"path=")))==1)
   //Do the formating for parent.
  • 使用strstr()path=部分之前删除。如果path=之前没有'_'字符,则可以省略此项。
  • 使用explode(),您可以将字符串拆分为带有“_”字符的数组。
  • count()计算数组的元素。

与父母比较1,与孩子比较2,与孙子比较3 无论如何,我认为通过重写代码应该有更好的方法来实现这个目标。

答案 1 :(得分:0)

我想你可以这样做:

ul li {
 color:red;
}

ul li > ul li {
 color:blue;
}

ul li > ul li > ul li {
 color:green;
}