美好的一天,我只是想问一下,如果我能够实现我到目前为止附加的图片,我会在PHP上自动执行此操作。
function bootstrap_menu($array, $parent_id = 0, $parents = array())
{
if($parent_id == 0) {
foreach ($array as $element) {
if (($element['parent_id'] != 0) && !in_array($element['parent_id'],$parents)) {
$parents[] = $element['parent_id'];
}
}
}
$menu_html = '';
foreach($array as $element) {
if($element['parent_id'] == $parent_id) {
if(in_array($element['id'], $parents)) {
$menu_html .= '<li class="has-dropdown">';
$menu_html .= '<a href="'.$element['url'].'" class="dropdown-toggle" role="button" aria-expanded="false">'.$element['title'].'</a>';
} else {
$menu_html .= '<li>';
$menu_html .= '<a href="' . $element['url'] . '">' . $element['title'] . '</a>';
}
if(in_array($element['id'], $parents)) {
$menu_html .= '<ul class="dropdown" style="display: none;">';
$menu_html .= $this->bootstrap_menu($array, $element['id'], $parents);
$menu_html .= '</ul>';
}
$menu_html .= '</li>';
}
}
return $menu_html;
}
我怎样才能成为可能的家伙。我是否需要为li元素添加计数器?
答案 0 :(得分:0)
这里的问题实际上是与CSS相关的问题,而不是PHP问题。如果您使用的是支持flexbox的浏览器,则此问题就变得微不足道了。
这是一个很好的例子,一般来说是flexbox的资源,that solves your issue
编辑:让我再试一次!这里的问题根本不是来自你的PHP。你的PHP正如你想要的那样工作!问题是,为了让您的图像以您想要的方式显示,您需要使用CSS对其进行样式化,以使其符合您希望的外观我提供的链接讨论了一些CSS属性,这些属性可以简化这项工作。具体属性是
display: flex
flex-direction: column
flex-wrap: wrap
您对CSS及其属性了解多少?包含图像的菜单应该会收到这些属性。通过将显示设置为flex,它会告诉浏览器如果您熟悉CSS box-model,该元素将具有哪种“框”。
将方向设置为列将导致每个元素直接堆叠在一起,就像元素显示设置为阻止时所期望的那样,就像这些元素之一
<div>
<p>
wrap属性告诉容器它的元素不应该溢出容器,而是当填充容器高度的整个空间时,它应该创建一个直接位于第一个容器旁边的新列,从而导致您在上一个链接中看到的关于解决问题的图片。
这是否更清楚?