我有一个生成嵌套导航菜单的函数:
function recursive_foreach($array, $display) {
$out = '<ul>';
foreach ($array as $key => $value) {
...
$out .= '<li class="'. $is_active . $is_parent . '"><a href="' . $url . '">' . $value['name'] . '</a>'; }
if (is_array($value['has_children'])) {
$out .= recursive_foreach( ...
}
$out .= "</li>";
}
$out .= '</ul>';
return $out;
}
我想将css类添加到第一个“ul”元素中。我知道如何确定foreach循环中的第一个元素,但是如何在它之外得到它呢?
答案 0 :(得分:2)
答案 1 :(得分:2)
最佳传递适当的参数:
function recursive_foreach($array, $display, $first = true) {
...
recursive_foreach($foo, $bar, false);
...
}
答案 2 :(得分:2)
您可以使用:first-child
CSS Selector。 :)
所以,你的CSS应该是这样的:
ul li:first-child { /* CSS Code */ }
与以下内容兼容:
因为您可以使用它来使用Pure CSS来定位它,所以您无需更改标记! :)
答案 3 :(得分:1)
通常第一个$key
为零,因此您可以检查该条件:
$first = $key === 0;
如果您的第一个密钥不同,请使用第一个密钥:
$first = $key === $firstKey;
如果您的第一个密钥更改,请先获取它:
list($firstKey) = array_keys($array);
希望这有用。
在CSS本身中,您也可以使用:first-child
pseudo-classCSS2。因此无需添加课程for various browsersBrowser Support。
答案 4 :(得分:1)
:first-child很不错,但并不完全兼容。