PHP中的ul列表无法正常工作

时间:2014-09-18 07:30:09

标签: php html css

我想获得一些关于我的代码中发生的事情的帮助。我尝试了很多变化,但无法使其发挥作用。

它是PHP代码中的ul-list。它在CSS中内联样式,其他一切都很好,但不知何故ul-list与if-elseif-else-statement(url,slug或id)之一对齐,我无法弄清楚为什么。 我已经尝试了很多变体,将</li></li></ul>放在if-else语句的末尾,但这两种情况都没有。

$parts = array();    
    foreach ($content AS $id => $val){      
        $position = "<li>";
        $position.="<h2><a href='post.php?id='" . $val->id . "'>" . $val->title . "</a></h2>";
        $position.="<h6>" . $val->published . "</h6>";
        $position.="<p>" . substr($val->data, 0, 100) . "...";          

        if ($val->url){ 
            $position .= "<a href='post.php?url={$val->url}'><span class='small red'>Läs mer</span></a>"; 
        } 
        elseif ($val->slug){ 
            $position .= "<a href='post.php?slug={$val->slug}'><span class='small red'>Läs mer</span></a>"; 
        } 
        else { 
            $position .= "<a href='post.php?id={$val->id}'><span class='small red'>Läs mer</span></a>"; 
        }
        $position .= "</p></li>"; 
        $parts[] = $position;
    }       
    $htmltext = "<ul class='latest-news'>" . implode('', $parts) . "</ul>";

可能是CSS的东西吗?

ul.latest-news {
padding: 0;
width: 100%;
list-style: none;
text-align: center;
float: none;
margin-top: 0px;
position: relative;
display: inline;
}

ul.latest-news li {
display: inline-block;
padding: 0 1em;
margin: 1.5em 0.6em;
max-width: 28%;
min-width: 250px;
height: 185px;
border: thin solid #C8C3C3;
border-radius: 21px;
}

![在此输入图片说明] [2]

Dump

2 个答案:

答案 0 :(得分:2)

$htmltext .= "</li>";

更改为:

$htmltext .= "</p></li>";

答案 1 :(得分:2)

您忘记关闭<p>代码,并在id= param 中打开单引号。你走了:

$parts = array();
foreach ($content AS $id => $val) {
    $position = "<li>";

    //don't mix string concatenation methods, it makes things harder to read
    $position.="<h2><a href='post.php?id='" . $val->id . "'>" . $val->title . "</a></h2>";

    $position.="<h6>" . $val->published . "</h6>";
    $position.="<p>" . substr($val->data, 0, 70) . "...";

    if ($val->url) {
        $position.="<a href='post.php?url={$val->url}'><span class='small red'>Läs mer</span></a>";
    } elseif ($val->slug) {
        $position.="<a href='post.php?slug={$val->slug}'><span class='small red'>Läs mer</span></a>";
    } else {
        $position.="<a href='post.php?id={$val->id}'><span class='small red'>Läs mer</span></a>";
    }
    $position .= "</p></li>"; //<p> closed
    $parts[] = $position;
}

$htmltext = "<ul class='latest-news'>" . implode('', $parts) . "</ul>";

检查html是否正确生成:

echo "<pre>";
    var_dump($htmltext);
echo "</pre>";
die();