为简短的标题道歉。
当我通过 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;
?>