css 树列表修正

标签 css file list tree

我设法创建了目录树列表,但遇到了问题。

问题:

  1. 子文件夹与子文件不在同一列。

  2. 子文件夹行位于列的最后一个位置。

preview

如何解决?

PHP:

  function ListFolder($path) {
        //using the opendir function
        $dir_handle = @opendir($path) or die("Unable to open $path");

        //Leave only the lastest folder name
        $dirname = end(explode("/", $path));

        echo '<ul>';

        //display the target folder.
        echo '<li><a href="'.$dirname.'" class="folder">'.$dirname.'</a>';
        echo '<ul>';
        while (false !== ($file = readdir($dir_handle))) {
            if ($file != "." && $file != "..") {
                if (is_dir($path . "/" . $file)) {
                    //Display a list of sub folders.
                    ListFolder($path . "/" . $file);
                } else {
                    //Display a list of files.
                    echo '<li><a href="'.$file.'">'.$file.'</a></li>';
                }
            }
        }
        echo "</ul>";
        echo "</li>";

        echo "</ul>";

        //closing the directory
        closedir($dir_handle);
    }

    ListFolder("./files");

这是行

CSS:

ul,
ul ul {
    list-style:none;
    margin:0;
    padding:0;
}

ul ul {
    margin-left:10px;
    background:transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAKAQMAAABPHKYJAAAAA1BMVEWIiIhYZW6zAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1ggGExMZBky19AAAAAtJREFUCNdjYMAEAAAUAAHlhrBKAAAAAElFTkSuQmCC') repeat-y 0 100%;
}

ul li {
    margin:0;
    padding:0 12px;
    font-size:14px;
    line-height:20px;
    color:#369;
    font-weight:bold;
}

ul ul li {
    background:transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAUAQMAAACK1e4oAAAABlBMVEUAAwCIiIgd2JB2AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YIBhQIJYVaFGwAAAARSURBVAjXY2hgQIf/GTDFGgDSkwqATqpCHAAAAABJRU5ErkJggg==') no-repeat 0 0;
}

ul ul li.last,
ul ul li:last-child {
    background:white url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAUAQMAAACK1e4oAAAABlBMVEUAAwCIiIgd2JB2AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YIBhQIIhs+gc8AAAAQSURBVAjXY2hgQIf/GbAAAKCTBYBUjWvCAAAAAElFTkSuQmCC') no-repeat 0 100%;
background-position:left top;
}

HTML:

<ul>
    <li><a href="test" class="folder">test</a>
        <ul>
            <li><a href="aaa.txt">aaa.txt</a></li>
            <li><a href="bbb.txt">bbb.txt</a></li>
            <ul>
                <li><a href="subfolder" class="folder">subfolder</a>
                    <ul>
                        <li><a href="1.txt">1.txt</a></li>
                        <li><a href="2.txt">2.txt</a></li>
                    </ul>
                </li>
            </ul>
            <li><a href="test.txt">test.txt</a></li>
        </ul>
    </li>
</ul>

最佳答案

background-position:left top; 添加到 list.css 文件的第 29 行。

Screenshot with CSS change

关于css 树列表修正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16877594/

相关文章:

css - Angular Material Snackbar 改变颜色

html - 修复 CSS 下拉菜单

java - RandomAccessFile - 返回空字符串

c++ - 如何很好地输出分隔字符串列表?

list - Haskell isMember 函数错误

Python 列表输出故障排除

javascript - 如果元素具有特定类,则不要应用 css 样式

html - Bootstrap Navbar 元素未正确对齐

python - Scrapy IO错误: [Errno 22] invalid mode ('wb' ) or filename

python - 有没有一种方法可以从一个文件中查找另一个文件中的单词,并将在另一个文件中找不到的单词输出到一个新文件中?