HTML <a>不起作用


HTML <a> not working

为简短的标题道歉。

当我通过 PHP 回显 <a> -tag 时,链接的行为类似于普通文本; 它不会更改鼠标指针,也不会转到任何给定的链接,但它确实遵循 CSS 规则进行a。这是我的代码:

<?php $string = "<content-box id='about'>
        <content-box-title>Welcome,</content-box-title><br/>
        <p>
            text
        </p>
        <p>
            text
        </p>
        <p>" //this string is all on one line in my code, 
             //but for question purposes I aligned them, so it's better readable
    echo substr($string, 0, 952) . '... </p><a href="about.php">More</a></content-box>';
 ?>

还有我的 CSS

a {
    color: #d60000;
    border-bottom: 1px dotted #000000;
    text-decoration: none;
}
a:active {
    color: #d60000;
}
container > content > content-box {
    width: 920px;
    padding: 40px;
    margin-bottom: 10px;
    background-color: #ffffff;
    box-shadow: 0px 1px 2px rgba(0,0,0,0.3);
}

以前确实有效,但突然间它不再有效了。谁能弄清楚发生了什么?

谢谢。

编辑:这个例子应该是另一个页面上内容的"预览"(这就是为什么我需要"更多"按钮)。我从另一个来源检索原始 HTML,然后缩短它。因此,</p></content-box>掉下来。

此外,<content-box>是一个自定义元素,但它只是正常的<div>(见评论)

编辑:

<content>
    <?php
        error_reporting(E_ALL & ~E_WARNING);
        $page = new DOMDocument();
        $page->loadHTMLFile('about.php');
        $elm = $page->getElementById('about');
        $faulty_string = $elm->ownerDocument->saveHTML($elm);
        $string = str_replace('ï', 'ï', $faulty_string);
        echo substr($string, 0, 206) . '... </p><a href="about.php">More</a></content-box>';
    ?>
</content>

#about about.php

<content-box id='about'>
        <content-box-title>Welcome,</content-box-title><br/>
        <p>
            text
        </p>
        <p>
            text
        </p>
        <p>
            text
        </p>
    </content-box>

CSS:和以前一样。

编辑:

<content-box id="about">
    <content-box-title>Welcome,</content-box-title>
    <br>
    <p> text </p>
    <p> text </p>
    <p> tex... </p>
    <a href="about.php">Lees verder</a>
</content-box>

这是来自 Firefox 的 DOM Explorer。

更好的方法是将content-box标签的文本存储在它自己的字符串中,然后使用substr来缩短它。

<?php
$text = '<p>Text</p><p>Text</p>';
$text = substr($text, 0, 952) . '... </p><a href="about.php">More</a>';
$content_box = "<content-box id='about'>
        <content-box-title>Welcome,</content-box-title><br/>
             ".$text.";
        </content-box>";
echo $content_box;
 ?>