Evet, özelliklere göre, bir yolu var.
Ben Graeme Blackwood kabul cevap olması gerektiğini kabul ederken pratikte sorunu çözer, çünkü sabit bir unsur olduğunu belirtmek gerekir olabilir onun kaba nispeten yerleştirilmelidir.
Kazara fark ettiğimde, başvuru yaparken
-webkit-transform: translateZ(0);
vücuda, ona göre sabit bir çocuk yaptı (görünüm penceresi yerine). Yani benim sabit elementlerim left
ve top
özelliklerim artık konteynere göreceli.
Bu yüzden biraz araştırma yaptım ve sorunun zaten Eric Meyer tarafından ele alındığını buldum ve bir "hile" gibi görünse bile, bunun özelliklerin bir parçası olduğu ortaya çıktı:
Düzeni CSS kutusu modeli tarafından yönetilen öğeler için, dönüşüm için hiçbiri dışında herhangi bir değer hem yığınlama bağlamının hem de içeren bir bloğun oluşturulmasına neden olur. Nesne, sabit konumlu torunlar için bir blok görevi görür.
http://www.w3.org/TR/css3-transforms/
Dolayısıyla, bir üst öğeye herhangi bir dönüşüm uygularsanız, onu içeren blok haline gelir.
Fakat...
Sorun, uygulamanın hatalı / yaratıcı görünmesidir, çünkü öğeler de sabit olarak davranmayı bırakırlar (bu bit spesifikasyonun bir parçası gibi görünmese bile).
Aynı davranış Safari, Chrome ve Firefox'ta bulunur, ancak IE11'de (sabit öğenin hala sabit kalacağı yerde) bulunmaz.
Bir başka ilginç (belgesiz) şey, dönüştürülmüş bir elemanın içinde sabit bir eleman bulunduğunda, onun top
ve left
özelliklerinin artık konteynerle ilgili olacağı, box-sizing
özelliğe saygı duyduğu, kaydırma içeriğinin, sanki kutu gibi öğenin sınırının üzerine uzanacağıdır. -sizing olarak ayarlandı border-box
. Orada bazı yaratıcılar için, bu muhtemelen bir oyuncak haline gelebilir :)
ÖLÇEK