如何在2列中添加li元素

时间:2017-07-31 04:06:41

标签: javascript php jquery html css

requirement

美好的一天,我只是想问一下,如果我能够实现我到目前为止附加的图片,我会在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元素添加计数器?

1 个答案:

答案 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属性告诉容器它的元素不应该溢出容器,而是当填充容器高度的整个空间时,它应该创建一个直接位于第一个容器旁边的新列,从而导致您在上一个链接中看到的关于解决问题的图片。

这是否更清楚?