Styling email link / href= "mailto:" with CSS

graças ao StackOverflow eu finalmente encontrei uma maneira de estilo meu link de E-mail, mas eu me pergunto por que ele não funciona sem a solução que eu encontrei aqui.

Uma vez que o link faz parte do espaço com a classe atribuída "about", que tem o tamanho da letra e o estilo definidos, o link de E-mail não deveria aparecer em 11px e sans serif?

e enquanto

a[href^="mailto:"]

{ 
  font-family: sans-serif;
  color: black;
  font-size: 11px;
}

funciona muito bem, assim que eu tentar mudá-lo para

.about a[href^="mailto:"]

{ 
  font-family: sans-serif;
  color: black;
  font-size: 11px;
}
Não funciona como era suposto.

Faça as marcas não ouvem a formatação de espaços ou o ninho de classes?

    <!DOCTYPE html>
<html>
<head>
<style type="text/css">

html {
    height:100%;
}

body {
    height: 100%;
    margin-left: 20px;
    margin-top:0px;
}

.bottom-left {

    position: absolute;
    font:sans-serif;
    bottom: 15px;
    left: 15px;
}


.bold {
    font-family: serif;
}


.about {
    font-size: 11px;
    font-family: sans-serif;
}


/*a[href^="mailto:"]

{ 
  font-family: sans-serif;
  color: black;
  font-size: 11px;
}*/



.address {
font-size: 11px;
border-bottom: 1px grey dotted;
}




</style>

<title>TEMP</title>

</head>
<body>


<div class="bottom-left">
        <span class="about">
            <span class="bold">XYZ</span> is a project space .&nbsp;&nbsp;&#124;&nbsp;
            <span="address">Website Information</span> &mdash; <a href="mailto:[email protected]">[email protected]</a>
        </span>
</div>



</body>
</html>
Author: Roland, 2012-05-17

2 answers

Na verdade, você comentou o seu link de E-mail css: - Então agora escreva o css como este método está funcionando bem......
a[href^="mailto:"]
{ 
  font-family: sans-serif;
  color: red;
  font-size: 11px;
}

Veja a demonstração:- http://jsbin.com/ijofoq/edit#html,ao vivo

Actualizado

Agora está a funcionar bem...edite o seu HTML e adicione no seu HTML
<div class="bottom-left">
    <div class="about">
        <span class="bold">XYZ</span> is a project space .&nbsp;&nbsp;&#124;&nbsp;
        <span="address">Website Information</span> &mdash; <a href="mailto:[email protected]">[email protected]</a>
    </div>

Basicamente você tem que remover a marca span de . cerca de classe.

Vê isto. :- http://jsbin.com/ijofoq/2/edit

 22
Author: Shailender Arora, 2012-05-17 09:28:20
Acho que .about tem precedência sobre a. cf. Regra CSS Especificidade .

Basicamente, um conjunto de regras css atribui uma prioridade como um número de versão como este:

{#id}.{#class}.{#element}.{order}

Com

  • {#id}: Número de selectores de id
  • {#Classe}: número de classes, pseudo-classes, atributos
  • {#elemento}: contagem de elementos, pseudo-elementos
  • {ordem}: o índice desta regra em todos os ficheiros
Então, temos o seguinte: ordem:
  1. 0.2.1.* .about a[href^="mailto:"] (0 id, 1 classe + 1 attr, 1 elemento)
  2. 0.1.1.a span.about (0 id, 1 classe, 1 elemento)
  3. 0.1.1.b a[href^="mailto:"] (0 id, 1 attr, 1 elemento)
  4. 0.1.0.* .about (0 id, 1 classe, 0 elemento)

span.about e a[href^="mailto:"] têm a mesma especificidade (1 classe ou atributo, e 1 elemento), por isso a ordem é importante, as últimas vitórias.

Se você remove o span então a regra é menos específica e frouxa.

(também, distinguir entre regras directamente aplicadas a um elemento, e outras herdadas de elementos-mãe...)

 2
Author: The Felis Leo, 2017-02-23 13:33:57