Oui, selon les spécifications, il y a un moyen.
Bien que je convienne que la réponse de Graeme Blackwood devrait être acceptée, car elle résout pratiquement le problème, il convient de noter qu'un élément fixe peut être positionné par rapport à son conteneur.
J'ai remarqué par accident qu'en appliquant
-webkit-transform: translateZ(0);
au corps, il a créé un enfant fixe relatif à celui-ci (au lieu de la fenêtre d'affichage). Ainsi, mes éléments fixes left
y top
sont désormais relatives au conteneur.
J'ai donc fait quelques recherches, et j'ai découvert que la question avait déjà été traitée par Eric Meyer et même si cela ressemblait à un "tour", il s'avère que cela fait partie des spécifications :
Pour les éléments dont la disposition est régie par le modèle de boîte CSS, toute valeur autre qu'aucune pour la transformation entraîne la création à la fois d'un contexte d'empilement et d'un bloc contenant. contexte d'empilement et d'un bloc contenant. L'objet fait office de bloc contenant pour les descendants à position fixe.
http://www.w3.org/TR/css3-transforms/
Ainsi, si vous appliquez une transformation à un élément parent, il deviendra le bloc contenant.
Mais...
Le problème est que l'implémentation semble boguée/créative, parce que les éléments cessent également de se comporter comme fixés (même si cette partie ne semble pas faire partie de la spécification).
Le même comportement se retrouvera dans Safari, Chrome et Firefox, mais pas dans IE11 (où l'élément fixe restera toujours fixe).
Une autre chose intéressante (non documentée) est que lorsqu'un élément fixe est contenu à l'intérieur d'un élément transformé, alors que son élément fixe n'a pas été transformé, il n'est pas possible de le transformer. top
y left
seront désormais liées au conteneur, en respectant les règles de l'UE. box-sizing
son contexte de défilement s'étendra au-delà de la bordure de l'élément, comme si la valeur box-sizing était définie sur border-box
. Pour certains créatifs, cela pourrait devenir un jouet :)
TEST
0 votes
"Tether est une bibliothèque d'interface utilisateur de bas niveau qui peut être utilisée pour positionner tout élément sur une page à côté de tout autre élément." github.com/shipshapecode/tether + Démos/Docs à tether.io