28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Tout est dans le titre : quelle technique utiliseriez-vous pour donner une impression d'épaisseur à un élément en rotation 3D ? Pas un élément cubique composé 6 côtés, juste une épaisseur.

Un exemple concret : CodePen, Mosaic

Pour un élément en 2D c'est simple : je lui ajoute un border-bottom et le tour est joué (technique utilisée dans la démo pour l'instant). Pour un élément tournant dans tous les sens c'est une autre histoire car évidement cette technique n'est plus valable (un élément trompe l'œil en 2D avec de la vraie 3D... ça l'fait pas !). J'ai pensé à chercher du côté de box-shadow, peut-être lié avec un pseudo-élément... Mais je ne suis pas sûr que mon intuition soit intéressante. Avant d'aller plus loin dans ce sens je pose la question ici, sait-on jamais...
Modifié par Olivier C (07 Apr 2016 - 10:53)
Bonjour,

Créer de la fausse 3D de manière statique avec box-shadow, OK, mais le gérer dynamiquement en 3 dimensions en fullCSS, je ne pense pas que ce soit possible (ou alors très difficilement).
Autant gérer ça directement avec des vrais mini-cubes 6 faces (par contre pour ce qui est des performances, je ne sais pas, à voir...)
Merci SolidSnake,

À moins que quelqu'un d'autre n'ait une idée je vais combiner le code du cube full css que je viens de réaliser avec celui de la mosaïque.

Ça va pas être de la tarte, mais c'est marrant à faire...
Modifié par Olivier C (07 Apr 2016 - 11:25)
Bon,

J'ai loupé un truc pour le positionnement correct du background-image sur les items, mais pour l'instant ça donne ça : Mosaic cubes

Et c'est sans doute la meilleure solution. Sujet résolu.
SolidSnake a écrit :
Au niveau des performances chez moi, c'est une catastrophe Smiley sweatdrop

Oui bien sûr, mais ce n'est pas un code pour la production, c'était juste pour progresser en CSS3 et Stylus. En réduisant le nombre d'items ça va déjà beaucoup mieux...