Angesichts einer grundlegenden HTML-Vorlage und CSS-Stil, ich sehe zwei verschiedene Elemente reagieren völlig anders.-webkit-Aussehen zwingt Übergänge?
setTimeout(function() {
document.body.id = 'animate';
}, 100);
#animate input[type="checkbox"]{
width: 100px;
height: 100px;
transition: 2s all;
-moz-appearance: none;
}
#animate div{
width: 100px;
height: 100px;
background:blue;
transition: 2s all;
}
<input type="checkbox"/>
<div></div>
Wenn Sie dies in einem Browser öffnen, sehen Sie, dass auf Last, die div bereits seine 100px Höhe/Breite hat, noch das Kontrollkästchen wächst von 0px auf 100px Höhe/Breite über 2s.
Warum verhält sich der input
anders als die div
? Liegt es daran, dass die Eingabe standardmäßig -webkit-appearance
ist, was gibt es einen Übergang zwischen?
Definitiv scheint es so. Obwohl ich keine 'width' oder' height' Deklarationen für 'input [type = checkbox]' in [Webkits User Agent Stylesheet, außer in iOS] finden kann (http://trac.webkit.org/browser /trunk/Source/WebCore/css/html.css#L787). Ich könnte falsch liegen. – darrylyeo
@darrylyeo Ich konnte auch keines finden und als ich sie im Element Inspector ausschaltete, fielen sie auf 0 zurück. Das machte mich noch verwirrter. – DasBeasto
Interessanterweise gibt es keinen Pfeil, der Sie zur Quelle führt, wenn Sie auf der Registerkarte "Berechnet" der Chrome-Entwicklertools auf die Einträge "Breite" und "Höhe" klicken. – darrylyeo