为什么有时伪 class 是 a:active 而有时是 a.active?
Why does sometimes the pseudo class is a:active and sometimes a.active?
我看到在某些模板中 a:active 伪 class 被写成 a.active(用点而不是冒号...它是 class 吗?为什么有人会伪造一个 class 吗?...这真的是一个好习惯吗?如果这个问题对你来说太简单了,我很抱歉,只是我读过的文献没有给出具体的答案我知道的问题...谢谢,
a.active
不是伪class。它只是应用于元素的 class active
。当某些元素处于活动状态时,有人可能会添加 class,并且它不必与 :active
pseudoclass.
类似
Active 是一个很常见的术语,它可能代表任何意思。它与处于 'active' 状态的 link 完全没有关系。
在某些情况下它们是相关的,但有人可能会添加一个 class,因为伪 class 不适合这个目的。
例如,当一个元素被悬停时,人们可能想显示一些东西(比如提示),但当它被取消悬停时不立即隐藏它。因此,要做到这一点,可以在元素悬停时添加一个 class,并设置一个计时器在元素未悬停时将其删除,这样会有一个小的延迟。
你在文献中找不到这个的原因是因为它们本质上是不相关的。
根据要求,我添加了一个小片段,展示了伪class 的简单性和添加您自己的 classes 的灵活性。
$(function(){
// NONJS: Set a class from Javascript, so you can add different styling based on having JS or not.
$('body').removeClass('nonjs').addClass('js');
// The actual hover code for delayed hovering.
$('.text.delayed').hover(
// When hovered, add the class.
function (){ $(this).addClass('hovered'); },
// When unhovered, remove the class after a little time.
function (){
var element = this;
setTimeout(function(){
$(element).removeClass('hovered');
}, 2000);
}
);
});
.text {
position: relative;
}
.hint {
display: none;
position: absolute;
background-color: yellow;
top: 10px;
left: 10px;
}
/* Simple hints are just shown on hover, hidden when unhovered. */
.simple:hover .hint,
/* delayed hints are shown as long as they have the hovered class. */
.js .delayed.hovered .hint,
/* NONJS: Fallback for non-javascript situation, make delayed hint behave like simple hint using pure CSS. */
.nonjs .delayed:hover .hint
{
display: inline-block;
}
<body class='nonjs'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="text simple">Simple. Hover for more information
<div class="hint">This is a simple hint which disappears immediately when unhovered.</div>
</div>
<div class="text delayed">Delayed. Hover for more information
<div class="hint">This is a delayed hint which will remain visible for 2 seconds and is then hidden using Javascript.</div>
</div>
</body>
我看到在某些模板中 a:active 伪 class 被写成 a.active(用点而不是冒号...它是 class 吗?为什么有人会伪造一个 class 吗?...这真的是一个好习惯吗?如果这个问题对你来说太简单了,我很抱歉,只是我读过的文献没有给出具体的答案我知道的问题...谢谢,
a.active
不是伪class。它只是应用于元素的 class active
。当某些元素处于活动状态时,有人可能会添加 class,并且它不必与 :active
pseudoclass.
Active 是一个很常见的术语,它可能代表任何意思。它与处于 'active' 状态的 link 完全没有关系。
在某些情况下它们是相关的,但有人可能会添加一个 class,因为伪 class 不适合这个目的。
例如,当一个元素被悬停时,人们可能想显示一些东西(比如提示),但当它被取消悬停时不立即隐藏它。因此,要做到这一点,可以在元素悬停时添加一个 class,并设置一个计时器在元素未悬停时将其删除,这样会有一个小的延迟。
你在文献中找不到这个的原因是因为它们本质上是不相关的。
根据要求,我添加了一个小片段,展示了伪class 的简单性和添加您自己的 classes 的灵活性。
$(function(){
// NONJS: Set a class from Javascript, so you can add different styling based on having JS or not.
$('body').removeClass('nonjs').addClass('js');
// The actual hover code for delayed hovering.
$('.text.delayed').hover(
// When hovered, add the class.
function (){ $(this).addClass('hovered'); },
// When unhovered, remove the class after a little time.
function (){
var element = this;
setTimeout(function(){
$(element).removeClass('hovered');
}, 2000);
}
);
});
.text {
position: relative;
}
.hint {
display: none;
position: absolute;
background-color: yellow;
top: 10px;
left: 10px;
}
/* Simple hints are just shown on hover, hidden when unhovered. */
.simple:hover .hint,
/* delayed hints are shown as long as they have the hovered class. */
.js .delayed.hovered .hint,
/* NONJS: Fallback for non-javascript situation, make delayed hint behave like simple hint using pure CSS. */
.nonjs .delayed:hover .hint
{
display: inline-block;
}
<body class='nonjs'>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="text simple">Simple. Hover for more information
<div class="hint">This is a simple hint which disappears immediately when unhovered.</div>
</div>
<div class="text delayed">Delayed. Hover for more information
<div class="hint">This is a delayed hint which will remain visible for 2 seconds and is then hidden using Javascript.</div>
</div>
</body>