导航栏没有通过php echo正确显示

时间:2015-04-09 19:57:48

标签: php html css web

我坐在这里遇到问题,这对我来说是个未知数。

当我使用普通的HTML-Code时,一切正常。当我使用php-echo时,我的导航栏看起来并不正常。

该栏应该看起来像这样(这里有普通的HTML代码):

http://i.gyazo.com/1e5c02f7e20dff5ec55800f259ff2c8f.png

并且使用php-echo看起来像这样:

http://i.gyazo.com/693dd2a2ac7a333905e2aa90cc8cc147.png

以及使用HTML编写的代码:

<div class="naviBar">
        <ul id="mainNavi">

            <li><a href='index.php'>index</a></li>
            <li><a href='index.php'>index</a></li>
            <li><a href='index.php'>index</a></li>

        </ul>
    </div>

此处使用PHP-ECHO:

<div class="naviBar">
        <ul id="mainNavi">
            <?php
            echo "<li><a href='index.php'>index</a></li>";
            echo "<li><a href='index.php'>index</a></li>";
            echo "<li><a href='index.php'>index</a></li>";
           ?>
        </ul>
</div>

所以差不多一个小时后我发现了#34;错误&#34;并找到了解决方案:

而不仅仅是回声,我使用&#34; \ n&#34;在这一行的最后,像这样:

   echo "<li><a href='index.php'>index</a></li>\n";  

为什么它在这里工作而不是正常的回声?这是我第一次遇到这个问题......这里有什么问题?

我希望这段代码剪辑现在已足够,如果它不是我会添加更多代码。

谢谢!

2 个答案:

答案 0 :(得分:2)

首先,您必须了解无序列表的运行方式。语句的语法结构将每个<li>项放在同一行上。此外,当然您必须使用换行符\n<br>换行元素。否则PHP(以及HTML)就不能区分一行开始和结束的位置,它们只是运行行。这就是PHP的美妙之处,它提供了它的连接超级大国。

要解决您的困境并更正输出,以便在第一个屏幕截图中对<li>元素进行分区,请尝试在echo语句中包含<ul>标记。

答案 1 :(得分:-2)

因为你所有的回声&#34;正在同一个标​​签内进行评估。就HTML而言,这些标签内发生的任何事情都没有行返回。

你可以做到这一点(但你的方式更好):

<?php echo "<li><a href='index.php'>index</a></li>"; ?>
<?php echo "<li><a href='index.php'>index</a></li>"; ?>
<?php echo "<li><a href='index.php'>index</a></li>"; ?>