我有这样的例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS - Selector :target</title>
<style type="text/css">
#a:target {
color:blue;
}
.ta-center { text-align: center; }
.wrap { padding: 5% 12%; }
</style>
</head>
<body>
<div class="wrap">
<h1 class="ta-center">CSS - Selector :target</h1>
<a href="#a">Sets texts in color</a> |
<a href="#">Reset</a>
<!-- first text -->
<p id="a">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua.</p>
<!-- second text -->
<p id="b">Numquam quas suscipit ipsam asperiores similique blanditiis est deleniti temporibus earum. Autem, nisi officiis atque! Libero ab error.</p>
</div>
<!-- third text -->
<p class="c">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.</p>
</body>
</html>
如何使用链接将颜色更改为第二个文本(p,ID为“b”),例如更改为红色?
我不想使用JS,只使用CSS属性,并且更愿意知道我是否可以专门为此使用“目标”,或者是不可能的,并且需要另一种方式。
好的,最终结果必须是:当我点击“设置彩色文字”链接时,第一个p 将为蓝色,第二个p 将为红色。 另外,第三个p 将是绿色的(对不起,额外的部分原本不在问题中,但我认为如果我不能处理任何兄弟元素那就更有趣了。)< / p>
答案 0 :(得分:1)
当我点击“设置彩色文本”链接时,第一个p将为蓝色, 第二个p将是红色的。另外,第三个p将是绿色
要完成这项工作,您需要将哈希id目标移动到能够“看到”所有其他目标的元素。
由于哈希id设置在1:st $publications = [
"media1" => "link",
"media2" => "link"
]
if (array_key_exists($_POST["publication"], $publications)) {
echo '<a href="' . $publications[$_POST["publication"]] . '">' . htmlspecialchars($_POST["publication"]) . '</a>';
}
上,因为它在p
之外,因此无法“看到”3:rd,我创建了一个额外的{在wrap
之前{1}}。 如果你需要更多像这样工作的链接,你需要以同样的方式添加另外一个元素
现在,通过使用general sibling selector div
和descendant combinator wrap
(空格),现在可以定位任何元素。
~
答案 1 :(得分:1)
如何使用链接将颜色更改为第二个文本,例如蓝色?我不想使用JS,只使用CSS属性,并且更愿意知道我是否可以专门为此使用“目标”
您的意思是,当点击引用#a
的链接时,您也希望更改第二段的颜色,但使用不同的颜色?
你可以使用通用兄弟选择器/组合器,~
来实现这一点,它可以让你在一个元素之后定位兄弟姐妹,或者相邻兄弟组合子/选择器,+
,对于直接的兄弟姐妹。
#b
是#a
的后续兄弟,因此,当#a
是当前目标时,您可以使用
#a:target ~ #b { /* or here specifically: #a:target + #b */
color:red;
}