- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在设置一个 IRC 记录器,当用户单击聊天日志中行的日期链接时,我在尝试突出显示聊天日志行时遇到了一些困难。整个代码在 php/html/css/jquery 中并连接到 mysql 数据库。
但是,我的问题是,当 jquery 代码将所选行移动到页面顶部时,我不太确定如何突出显示在页面上单击的链接行。
下面的代码在这里实时运行:http://openkore.info/irc-log/#msg2862
请注意,当您转到锚定列表时,它会突出显示消息行,而不是当用户单击同一页面上的其他链接而 jquery 移动消息时。
// content *******************************************
echo '<div id="container-wrap">';
echo '<div id="container">';
echo '<div id="content">';
echo '<ol id="log">';
if($sql) while($row = mysql_fetch_array($res, MYSQL_ASSOC)){
echo '<li id="msg'.$row['id'].'" class="'.$row['type'].'">';
echo '<div class="anchor" id="msg'.$row['id'].'"><a href="#msg'.$row['id'].'" class="time" title="'.$row['d'].'">';
// give screenreaders a hint early enough which line includes a real message
if($row['type'] == 'public') echo '<span class="a11y">message at </span>';
echo '<time datetime="'.$row['d'].'T'.$row['t'].'">'.$row['t'].'</time>';
echo '</a></div>';
echo '<dl>';
if($row['type'] == 'public'){
echo '<dt style="color:#'.substr(md5($row['user']),0,6).'" class="user">'.htmlspecialchars($row['user']).'</dt>';
}else{
echo '<dt class="server">'.$row['type'].'</dt>';
}
$msg = htmlspecialchars( $row['msg']);
$msg = preg_replace_callback('/((https?|ftp):\/\/[\w-?&;#~=\.\/\@%:]+[\w\/])/ui',
'format_link',$msg);
echo '<dd>';
if(substr($msg,0,3) == '/me'){
$msg = '<strong>'.htmlspecialchars($row['user']).substr($msg,3).'</strong>';
}
echo $msg;
echo '</dd>';
echo '</dl>';
echo '</li>';
}
echo '</ol>';
echo '</div>';
<!-- JQuery Plugin -->
<script type="text/javascript" src="js/jquery.min.js"></script>
<!-- JQuery Scrolling to Selected Line Plugin -->
<script>
$(document).ready(function() {
// Click event for any anchor tag that's href starts with #
$('a[href^="#"]').click(function(event) {
// The id of the section we want to go to.
var id = $(this).attr("href");
// An offset to push the content down from the top.
var offset = 75;
// Our scroll target : the top position of the
// section that has the id referenced by our href.
var target = $(id).offset().top - offset;
// The magic...smooth scrollin' goodness.
$('html, body').animate({scrollTop:target}, 500);
//prevent the page from jumping down to our section.
event.preventDefault();
});
});
</script>
这是它附带的 CSS:
@media screen {
/* basic styles
********************************************************************/
html {
overflow-x: auto;
overflow-y: scroll;
margin: 0;
}
html,
body {
background: url(bg.png) repeat;
color: #333;
padding: 0;
}
body {
margin: 1em 2em;
font: normal 100%/1.4 Frutiger, Calibri, "Myriad Pro", Myriad, "Nimbus Sans L", Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif; /* §fsize §font */
-webkit-text-size-adjust: 100%;
}
#header-wrap {
position: fixed;
top: 0;
left: 0;
width: 100%;
border-style:solid;
border-width:1px;
z-index:333;
}
#header-container {
height: 70px;
background-color:#282828;
opacity: 1.0;
}
#header {
width: 940px;
margin: 0 auto;
position: relative;
}
#container-wrap {
left: -20;
width: 100%;
z-index: 1;
}
#container {
width: 940px;
margin: 0 auto;
overflow: auto;
padding: 70px 0 40px;
}
#content {
float: left;
width: 625px;
}
#sidebar {
position: fixed;
width: 275px;
float: right;
margin-left: 650px;
}
#footer-wrap {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
border-style:solid;
border-width:1px;
z-index: 1;
}
#footer-container {
height: 20px;
background-color:#282828;
opacity: 1.0;
}
#footer-content {
color: #FFAC1C;
width: 940px;
margin: 0 auto;
position: relative;
top:-10px;
}
a.footer {
background-color:282828;
}
a.footer:link,
a.footer:visited {
text-decoration: none;
}
a.footer:link {
color: #FFAC1C;
}
a.footer:visited {
color: #FFAC1C;
}
a.footer:link:hover,
a.footer:visited:hover,
a.footer:link:focus,
a.footer:visited:focus,
a.footer:link:active,
a.footer:visited:active {
background-color:#282828;
text-decoration: underline;
outline: none;
}
a.footer:link:active,
a.footer:visited:active {
color: #FFAC1C;
}
a.nav:hover,
a.nav:visited:active,
a.nav:link:hover{
text-decoration: underline;
outline: none;
background-color:#B2FF99;
}
a.nav:link:active{
background-color:red;
}
/*
.anchor{
display: block;
height: 70px; <!--same height as header-->
margin-top: -70px; <!--same height as header-->
visibility: hidden;
}
*/
/*____________ headings ____________*/
h1,
h2,
h3 {
font: helvetica;
font-weight: bold;
line-height: 1.2;
color: #E4E4E4;
background-color: inherit;
padding: 0;
clear: both;
}
h1 {
font-size: 2.25em;
margin: 0;
}
h2 {
font-size: 1.5em;
margin: 0 0 0.666em;
color: #000;
}
h2.subtitle {
font-size: 1.1em;
margin: 0 0 0.666em;
color: #FFAC1C;
}
h3 {
font-size: 1.125em;
margin: 0 0 0.888em;
color: #000;
}
/*____________ basic margins and paddings ____________*/
p,
ul,
ol {
margin: 0 0 1.4em 0; /* bottom margin = line-height */
padding: 0;
}
div,
dl {
margin: 0;
padding: 0;
}
/*____________ lists ____________*/
li,
dd,
dt {
padding: 0;
margin: 0;
list-style: none;
}
dt {
font-weight: bold;
}
li li {
font-size: 100%;
}
/*____________ links ____________*/
a {
background-color: inherit;
}
a:link,
a:visited {
text-decoration: none;
}
a:link {
color: #000;
}
a:visited {
color: #333;
}
a:link:hover,
a:visited:hover,
a:link:focus,
a:visited:focus,
a:link:active,
a:visited:active {
text-decoration: underline;
outline: none;
}
a:link:active,
a:visited:active {
color: #000;
}
/*____________ forms ____________*/
form {
display: inline;
margin: 0;
padding: 0;
}
label {
vertical-align: middle;
cursor: pointer;
}
input {
font: inherit;
color: inherit;
line-height: normal;
margin: 0;
vertical-align: middle;
padding: .1em;
}
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/*____________ misc ____________*/
abbr {
cursor: help;
border-bottom: 1px dotted;
font-style: normal;
}
/* hide something in an accessible way */
.a11y {
position: absolute;
left: -99999px;
top: -99999px;
font-size: 0;
overflow: hidden;
display: inline;
}
/* irclogger-specific styles
********************************************************************/
a.skip {
position: absolute;
top: 0;
right: 2em;
}
footer {
# border-top: 1px solid #ccc;
text-align: right;
padding: .7em 2em .1em;
margin: 0 -2em;
display: block;
}
/*____________ navigation below ____________*/
ul {
overflow: hidden;
}
ul li {
float: left;
}
ul.archive {
margin-bottom: .9em;
}
ul.archive li a {
display: inline-block;
padding: .3em .5em;
border: 1px solid #ccc;
margin: 0 .4em .7em 0;
border-radius: 3px;
}
ul.archive li.today {
clear: left;
}
p.hint {
margin: -.7em 0 .7em;
}
ul.filters li {
margin-right: 1.5em;
}
ul.filters label,
ul.filters input,
ul.filters small {
display: block;
}
/*____________ the log ____________*/
#log {
margin: 0 -2em 1.4em;
# border: solid #ccc;
border-width: 1px 0;
padding: 1em 2em;
}
#log li {
opacity: .5;
}
#log li.public {
opacity: 1;
}
#log a.time {
color: #333;
}
} /* /@media */
/*____________ for screen and print ____________*/
#log li {
clear: left;
padding-left: 11em;
}
#log a.time {
float: left;
margin-left: -11em;
}
#log dt {
font-weight: normal;
margin-left: -6em;
float: left;
width: 6em;
overflow: hidden;
text-overflow: ellipsis;
}
#log dd {
padding-left: .2em;
}
#log .public dt {
font-weight: bold;
}
/* highlight targeted line */
li:target {
background-color: #ff9;
}
/*____________ for smaller screens ____________*/
@media only screen and (max-width: 50em) {
body {
margin: 1em .5em .2em;
}
a.skip {
right: .5em;
}
#log {
margin-left: -.5em;
margin-right: -.5em;
border: solid #ccc;
border-width: 1px 0;
padding-left: .5em;
padding-right: .5em;
}
#log li {
padding-left: 0;
}
#log a.time {
min-width: 4.5em;
margin-left: 0;
}
#log dt {
margin-left: 0;
width: auto;
float: none;
}
#log dd {
margin: -.2em 0 .2em 4.5em;
padding-left: 0;
}
footer {
margin-left: -.5em;
margin-right: -.5em;
padding-left: .5em;
padding-right: .5em;
}
h1 {
font-size: 1.5em;
}
h2 {
font-size: 1.125em;
margin: 0 0 0.888em;
}
h3 {
font-size: 1em;
margin: 0 0 1.0em;
}
} /* /@media */
/*____________ print ____________*/
@media print {
a.skip,
.a11y,
#nav {
display: none;
}
footer {
# border-top: 1px solid;
}
#log {
list-style: none;
margin-left: 0;
padding-left: 0;
}
#log li {
display: none;
margin-left: 0;
}
#log li.public {
display: block;
}
#log a.time {
color: inherit;
text-decoration: none;
}
} /* /@media */
最佳答案
考虑给每个评论一个唯一的 ID,例如 <div id="message1001">...</div>
然后,使用散列标签 <a href="#message1001">...</a>
使您的链接指向正确的 ID
然后您可以设置一个简单的 css 规则来设置任何链接到使用伪选择器 :target 的样式。
a:target {
//style code
}
div 在页面上的移动位置无关紧要。
希望对您有所帮助。
关于jquery - 如何在用户单击链接后突出显示列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14192506/
如标题所示,ans_list是一个答案列表,ans_index是一个数字(答案在词汇表中的索引,但与atm无关) 这里生成的 tree.anslist 是什么? (例如,仅针对第一个),忽略迭代。 f
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我目前将用户的输入存储在逗号分隔的列表中,如下所示: Userid | Options 1 | 1,2,5 用户在一个数组形式中勾选一组选项,然后用逗号连接起来 1,2,5 然后 MySQ
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将具有一个元素的东西拿走。 这与 How do I “flatte
我想知道如何完全展平列表和包含它们的东西。除其他外,我想出了一个解决方案,它可以将具有多个元素的东西滑倒并将它们放回原处,或者在滑倒后将带有一个元素的东西拿走。 这与 How do I “flatte
这个问题已经有答案了: Convert nested list to 2d array (3 个回答) 已关闭 7 年前。 java中有没有快捷方式可以转换 List> 到 String[][] ?
我在排序时遇到问题 List> 。我创建了一个自定义比较器,在其中编写了对数据进行排序的代码。 public class CustomComparator implements Comparator
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Java Generics: Cannot cast List to List? 我只是想知道为什么下面的java代
试图想出一个 LINQy 方法来做到这一点,但我什么也没想到。 我有一个对象列表<>,其中包含一个属性,该属性是逗号分隔的字母代码列表: lst[0].codes = "AA,BB,DD" lst[1
假设我有这些任务: points = [] point = (1, 2) 我怎么会这样做: points += point 它工作得很好,并且给了我点 = [1, 2]。但是,如果我这样做: poin
如何在 scala 中将 List[Task[List[Header]]] 类型转换为 Task[List[Header]]。 我有一个方法返回 Task[List[Header]] 并多次调用 do
如何在 Java 中查找二维列表的元素? 我有一个参数为 List> 的函数我想知道如何找到这个列表的行和列。 最佳答案 如果你喜欢 List> obj 然后你就可以像这样访问 obj.get(cur
分配 List到 List工作正常。 分配 List>到 List>不编译。 代码 public class Main { public static void main(String[] a
我正在用 Java 编写一个方法,该方法必须接收并迭代 Serializable 的 List。 有什么区别: public void myMethod(List list) { } 和 public
我看到很多人想用 mvvm 更新网格/列表/树的一部分,但他们不想刷新整个列表。 对于所有遇到此问题的人,我做了以下示例。 希望这对你有用。 最佳答案 这是一个简单的例子。整个代码中最重要的是: Bi
我正在为现有的 C++ 库编写包装器,该库使用列表,其中 T 是自定义结构。我被建议使用 vector 而不是列表,但我试图避免修改库。 为了更好地理解这个场景,我做了一个简单的应用程序,使用一个列表
List list List list 这两种声明有什么区别吗? 谢谢, 最佳答案 是的。 List可以包含所有派生自 Base 的不同事物的混合物. List包含同质项(从某种意义上说,它们必须全部
有人可以尽可能详细地解释以下类型之间的区别吗? List List List 让我更具体一点。我什么时候想使用 // 1 public void CanYouGiveMeAnAnswer(List l
我有一个元组列表,每个元组都是一对列表。所以我的数据看起来像: mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', '
也许是一个时髦的标题,但我遇到了以下问题: 给定一个类型为 (a * b) list 的列表,我想创建一个类型为 (a * b list) list 的新列表。一个例子: 给定列表 let testL
我是一名优秀的程序员,十分优秀!