Dans un de mes autres questions, la solution à la fixation d'un problème de rendu en utilisant la valeur rgba(255, 255, 255, 255)
au lieu de transparent.
Nous avons testé à l'aide de rgba(0, 0, 0, 0)
et ce encore corrigé le problème, en ce sens qu'il est la définition de l' transparent
qui provoque l'erreur. Cependant, en regardant le W3C Spécification CSS3 (et MDN référence) transparent
révèle que rgba(0, 0, 0, 0)
et transparent
doit être égale:
transparent
Entièrement transparent. Ce mot clé peut être considéré comme un un raccourci pour le noir transparent, rgba(0,0,0,0), qui est sa calculé de la valeur.
Donc, ce qui donne? Pourquoi deux, apparemment, des valeurs identiques produisent des résultats différents? J'ai regardé dans la mise en forme de LED, et chercha des questions similaires (en vain). Chaque question/réponse qui parle de la conversion de l' transparent
de rgba(0,0,0,0)
a toujours les mots "doit" ou "selon". (Par exemple ici). Quelle est la réelle différence, et pourquoi faut-il changer la sortie tant?
Pour être en mesure de présenter cela comme un bug, nous avons besoin de reproduire le problème avec un minimum de code. Donc, transféré de mon autre question, voici une comparaison de l'utilisation de transparent
vs rgba(0,0,0,0)
, et ce qui se passe lorsque nous utilisons à la fois.
Transparent
@keyframes spin{
0% {transform:rotateZ(0deg);}
50% {transform:rotateZ(360deg);border-radius:60%;}
100%{transform:rotateZ(720deg);}
}
#spinme{
display:inline-block;
position:relative;
left:0;
top:0;
margin:0.2rem;
width:0.8rem;
height:0.8rem;
border:0.2rem solid black;
border-radius:0%;
outline: 1px solid transparent;
transform:rotateZ(0deg);
animation: spin infinite 4s;
}
<div id="spinme"></div>
RGBA(0,0,0,0)
@keyframes spin{
0% {transform:rotateZ(0deg);}
50% {transform:rotateZ(360deg);border-radius:60%;}
100%{transform:rotateZ(720deg);}
}
#spinme{
display:inline-block;
position:relative;
left:0;
top:0;
margin:0.2rem;
width:0.8rem;
height:0.8rem;
border:0.2rem solid black;
border-radius:0%;
outline: 1px solid rgba(0,0,0,0);
transform:rotateZ(0deg);
animation: spin infinite 4s;
}
<div id="spinme"></div>
Les deux
Comme l'a souligné @andyb, il y a un comportement étrange lors de l'utilisation à la fois sur des éléments distincts. Que vous pouvez attendre qu'un jeu, cependant ils ont tous deux faire. Comme l'a démontré:
@keyframes spin{
0% {transform:rotateZ(0deg);}
50% {transform:rotateZ(360deg);border-radius:60%;}
100%{transform:rotateZ(720deg);}
}
#spinme{
display:inline-block;
position:relative;
left:0;
top:0;
margin:0.2rem;
width:0.8rem;
height:0.8rem;
border:0.2rem solid black;
border-radius:0%;
outline: 1px solid rgba(0,0,0,0);
transform:rotateZ(0deg);
animation: spin infinite 4s;
}
#spinme:nth-of-type(2){
outline: 1px solid transparent;
}
<div id="spinme"></div>
<div id="spinme"></div>