Uma pseudoclasse é usada para definir um estado especial de um elemento.
Por exemplo, pode ser usado para:
Estilizar um elemento quando um usuário passa o mouse sobre ele
Estilize links visitados e não visitados de maneira diferente
Estilize um elemento quando ele receber foco
Mouse Over Me
A sintaxe das pseudoclasses:
selector:pseudo-class {
property: value;
}
Os links podem ser exibidos de diferentes maneiras:
/* unvisited link */
a:link {
color: #FF0000;
}
/* visited
link */
a:visited {
color: #00FF00;
}
/* mouse over link */
a:hover {
color: #FF00FF;
}
/* selected link */
a:active {
color: #0000FF;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
/* unvisited link */
a:link {
color: red;
}
/* visited link */
a:visited {
color: green;
}
/* mouse over link */
a:hover {
color: hotpink;
}
/* selected link */
a:active {
color: blue;
}
</style>
</head>
<body>
<h2>Styling a link depending on state</h2>
<p><b><a href="default.asp" target="_blank">This is a link</a></b></p>
<p><b>Note:</b> a:hover MUST come after a:link and a:visited in the CSS definition in order to be effective.</p>
<p><b>Note:</b> a:active MUST come after a:hover in the CSS definition in order to be effective.</p>
</body>
</html>
Observação: a:hover
DEVE vir depois de a:link
e a:visited
na definição CSS para ser eficaz! a:active
DEVE vir depois a:hover
na definição CSS para ser eficaz! Nomes de pseudoclasses não diferenciam maiúsculas de minúsculas.
Pseudoclasses podem ser combinadas com classes HTML:
Quando você passa o mouse sobre o link do exemplo, ele muda de cor:
a.highlight:hover {
color: #ff0000;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
a.highlight:hover {
color: #ff0000;
font-size: 22px;
}
</style>
</head>
<body>
<h2>Pseudo-classes and HTML Classes</h2>
<p>When you hover over the first link below, it will change color and font size:</p>
<p><a class="highlight" href="css_syntax.asp">CSS Syntax</a></p>
<p><a href="default.asp">CSS Tutorial</a></p>
</body>
</html>
Um exemplo de uso da pseudoclasse :hover
em um elemento <div>:
div:hover {
background-color: blue;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: green;
color: white;
padding: 25px;
text-align: center;
}
div:hover {
background-color: blue;
}
</style>
</head>
<body>
<p>Mouse over the div element below to change its background color:</p>
<div>Mouse Over Me</div>
</body>
</html>
Passe o mouse sobre um elemento <div> para mostrar um elemento <p> (como uma dica de ferramenta):
Tada! Aqui estou!
p {
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p {
display: block;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
p {
display: none;
background-color: yellow;
padding: 20px;
}
div:hover p {
display: block;
}
</style>
</head>
<body>
<div>Hover over this div element to show the p element
<p>Tada! Here I am!</p>
</div>
</body>
</html>
A pseudoclasse :first-child
corresponde a um elemento especificado que é o primeiro filho de outro elemento.
No exemplo a seguir, o seletor corresponde a qualquer elemento <p> que seja o primeiro filho de qualquer elemento:
p:first-child
{
color: blue;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
p:first-child {
color: blue;
}
</style>
</head>
<body>
<p>This is some text.</p>
<p>This is some text.</p>
<div>
<p>This is some text.</p>
<p>This is some text.</p>
</div>
</body>
</html>
No exemplo a seguir, o seletor corresponde ao primeiro elemento <i> em todos os elementos <p>:
p i:first-child
{
color: blue;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
p i:first-child {
color: blue;
}
</style>
</head>
<body>
<p>I am a <i>strong</i> person. I am a <i>strong</i> person.</p>
<p>I am a <i>strong</i> person. I am a <i>strong</i> person.</p>
</body>
</html>
No exemplo a seguir, o seletor corresponde a todos os elementos <i> nos elementos <p> que são o primeiro filho de outro elemento:
p:first-child i
{
color: blue;
}
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
p:first-child i {
color: blue;
}
</style>
</head>
<body>
<p>I am a <i>strong</i> person. I am a <i>strong</i> person.</p>
<p>I am a <i>strong</i> person. I am a <i>strong</i> person.</p>
<div>
<p>I am a <i>strong</i> person. I am a <i>strong</i> person.</p>
<p>I am a <i>strong</i> person. I am a <i>strong</i> person.</p>
</div>
</body>
</html>
A pseudoclasse :lang
permite definir regras especiais para diferentes idiomas.
No exemplo abaixo, :lang
define as aspas para elementos com lang="no":
<html>
<head>
<style>
q:lang(no) {
quotes: "~" "~";
}
</style>
</head>
<body>
<p>Some text <q lang="no">A quote in a paragraph</q>
Some text.</p>
</body>
</html>
Experimente você mesmo →
<!DOCTYPE html>
<html>
<head>
<style>
q:lang(no) {
quotes: "~" "~";
}
</style>
</head>
<body>
<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>
<p>In this example, :lang defines the quotation marks for q elements with lang="no":</p>
</body>
</html>
Adicione estilos diferentes aos hiperlinks
<!DOCTYPE html>
<html>
<head>
<style>
a.one:link {color:#ff0000;}
a.one:visited {color:#0000ff;}
a.one:hover {color:#ffcc00;}
a.two:link {color:#ff0000;}
a.two:visited {color:#0000ff;}
a.two:hover {font-size:150%;}
a.three:link {color:#ff0000;}
a.three:visited {color:#0000ff;}
a.three:hover {background:#66ff66;}
a.four:link {color:#ff0000;}
a.four:visited {color:#0000ff;}
a.four:hover {font-family:monospace;}
a.five:link {color:#ff0000;text-decoration:none;}
a.five:visited {color:#0000ff;text-decoration:none;}
a.five:hover {text-decoration:underline;}
</style>
</head>
<body>
<h2>Styling Links</h2>
<p>Mouse over the links and watch them change layout:</p>
<p><b><a class="one" href="default.asp" target="_blank">This link changes color</a></b></p>
<p><b><a class="two" href="default.asp" target="_blank">This link changes font-size</a></b></p>
<p><b><a class="three" href="default.asp" target="_blank">This link changes background-color</a></b></p>
<p><b><a class="four" href="default.asp" target="_blank">This link changes font-family</a></b></p>
<p><b><a class="five" href="default.asp" target="_blank">This link changes text-decoration</a></b></p>
</body>
</html>
Uso de: foco
<!DOCTYPE html>
<html>
<head>
<style>
input:focus {
background-color: yellow;
}
</style>
</head>
<body>
<form action="/action_page.php" method="get">
First name: <input type="text" name="fname"><br><br>
Last name: <input type="text" name="lname"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
Exemplo:
a:active
Descrição de exemplo:
Seleciona o link ativo
Exemplo:
input:checked
Descrição de exemplo:
Seleciona todos os elementos <input> verificados
Exemplo:
input:disabled
Descrição de exemplo:
Seleciona todos os elementos <input> desabilitados
Exemplo:
p:empty
Descrição de exemplo:
Seleciona todo elemento <p> que não possui filhos
Exemplo:
input:enabled
Descrição de exemplo:
Seleciona todos os elementos <input> habilitados
Exemplo:
p:first-child
Descrição de exemplo:
Seleciona todos os elementos <p> que são o primeiro filho de seu pai
Exemplo:
p:first-of-type
Descrição de exemplo:
Seleciona cada elemento <p> que é o primeiro elemento <p> de seu pai
Exemplo:
input:focus
Descrição de exemplo:
Seleciona o elemento <input> que está em foco
Exemplo:
a:hover
Descrição de exemplo:
Seleciona links ao passar o mouse
Exemplo:
input:in-range
Descrição de exemplo:
Seleciona elementos <input> com um valor dentro de um intervalo especificado
Exemplo:
input:invalid
Descrição de exemplo:
Seleciona todos os elementos <input> com um valor inválido
Exemplo:
p:lang(it)
Descrição de exemplo:
Seleciona cada elemento <p> com um valor de atributo lang começando com "it"
Exemplo:
p:last-child
Descrição de exemplo:
Seleciona todos os elementos <p> que são o último filho de seu pai
Exemplo:
p:last-of-type
Descrição de exemplo:
Seleciona cada elemento <p> que é o último elemento <p> de seu pai
Exemplo:
a:link
Descrição de exemplo:
Seleciona todos os links não visitados
Exemplo:
:not(p)
Descrição de exemplo:
Seleciona todos os elementos que não são um elemento <p>
Exemplo:
p:nth-child(2)
Descrição de exemplo:
Seleciona cada elemento <p> que é o segundo filho de seu pai
Exemplo:
p:nth-last-child(2)
Descrição de exemplo:
Seleciona cada elemento <p> que é o segundo filho de seu pai, contando a partir do último filho
Exemplo:
p:nth-last-of-type(2)
Descrição de exemplo:
Seleciona cada elemento <p> que é o segundo elemento <p> de seu pai, contando a partir do último filho
Exemplo:
p:nth-of-type(2)
Descrição de exemplo:
Seleciona cada elemento <p> que é o segundo elemento <p> de seu pai
Exemplo:
p:only-of-type
Descrição de exemplo:
Seleciona todo elemento <p> que é o único elemento <p> de seu pai
Exemplo:
p:only-child
Descrição de exemplo:
Seleciona todo elemento <p> que é filho único de seu pai
Exemplo:
input:optional
Descrição de exemplo:
Seleciona elementos <input> sem nenhum atributo "obrigatório"
Exemplo:
input:out-of-range
Descrição de exemplo:
Seleciona elementos <input> com um valor fora de um intervalo especificado
Exemplo:
input:read-only
Descrição de exemplo:
Seleciona elementos <input> com um atributo "readonly" especificado
Exemplo:
input:read-write
Descrição de exemplo:
Seleciona elementos <input> sem atributo "somente leitura"
Exemplo:
input:required
Descrição de exemplo:
Seleciona elementos <input> com um atributo "obrigatório" especificado
Exemplo:
root
Descrição de exemplo:
Seleciona o elemento raiz do documento
Exemplo:
#news:target
Descrição de exemplo:
Seleciona o elemento #news ativo atual (clicado em uma URL que contém esse nome de âncora)
Exemplo:
input:valid
Descrição de exemplo:
Seleciona todos os elementos <input> com um valor válido
Exemplo:
a:visited
Descrição de exemplo:
Seleciona todos os links visitados
Exemplo:
p::after
Descrição de exemplo:
Insira conteúdo após cada elemento <p>
Exemplo:
p::before
Descrição de exemplo:
Insira conteúdo antes de cada elemento <p>
Exemplo:
p::first-letter
Descrição de exemplo:
Seleciona a primeira letra de cada elemento <p>
Exemplo:
p::first-line
Descrição de exemplo:
Seleciona a primeira linha de cada elemento <p>
Exemplo:
::marker
Descrição de exemplo:
Seleciona os marcadores dos itens da lista
Exemplo:
p::selection
Descrição de exemplo:
Seleciona a parte de um elemento que é selecionado por um usuário