给搜索项赋予黄色背景色
问题描述:
下面的函数以粗体显示搜索项$find
。它工作得很好。不过,我想这样做的目的是,不要将$find
用粗体表示,而是用黄色背景表示,如CSS属性background-color:#FFFF00;
。我怎么能这样做?给搜索项赋予黄色背景色
由于提前,
约翰
功能:
function highlight($text, $words) {
preg_match_all('~\w+~', $words, $m);
if(!$m)
return $text;
$re = '~\\b(' . implode('|', $m[0]) . ')\\b~i';
return preg_replace($re, '<b>$0</b>', $text);
}
的PHP/HTML:
echo '<td class="sitename1search"><a href="http://www...com>'.highlight($row["title"], $find)).'</a></td>';
的CSS:
.sitename1search { width: 800px;
font-family: Arial, Helvetica, sans-serif;
font-weight: normal;
font-size: 12px;
overflow:hidden !important;
color: #000000;
padding-bottom: 0px;
}
.sitename1search a{ width: 350px;
font-family: Arial, Helvetica, sans-serif;
font-weight: normal;
font-size: 12px;
overflow:hidden !important;
color: #004284;
padding-bottom: 0px;
}
答
更换
return preg_replace($re, '<b>$0</b>', $text);
随着
return preg_replace($re, '<span style="background-color:#FFFF00;">$0</span>', $text);
答
在PHP只需添加class
属性:
,并添加到您的CSS文件:
.found-term {
background-color:#FFFF00;
font-weight: bold;
}
它比PHP中的style
更好 - 只是因为逻辑和设计的冲突主要是坏主意。
+1。这一点稍微好一点,因为它保持HTML和CSS分离(这总是最佳实践)。 – Jonah 2010-08-25 18:16:35
+1:我只是更新你的答案,所以你的b班的“创业期”与css“found-term”相匹配。另外,跨度在这里可能更符合语义。 – sdolan 2010-08-25 18:23:22
@sdolan:感谢您的注意!我更新了代码。 – 2010-08-25 18:25:49