


Bridaries de rupture: construire un puzzle de tangram avec (S) CSS
Jun 13, 2025 am 11:33 AMPendant des années, je pensais que les jeux de glisser-déposer - en particulier ceux impliquant la rotation, la logique spatiale et la résolution de puzzle - étaient le domaine exclusif de JavaScript. Jusqu'à un jour, j'ai demandé à ai:
?Est-il possible de construire un jeu de puzzle Tangram entièrement interactif en utilisant uniquement CSS??
La réponse: "Non - pas vraiment. Vous aurez besoin de JavaScript." C'était toute la motivation dont j'avais besoin pour prouver le contraire.
Mais d'abord, posons la question évidente: pourquoi quelqu'un ferait-il cela?
Bien…
- Pour savoir jusqu'où CSS peut être poussé dans la création d'UIS interactives.
- Pour améliorer mes compétences CSS.
- Et c'est amusant!
Assez juste?
Maintenant, voici la vérité sans surprise: CSS n'est pas exactement con?u pour cela. Ce n'est pas une langue logique, et soyons honnêtes, ce n'est pas particulièrement dynamique non plus. (Bien s?r, nous avons des variables CSS et des fonctions intégrées pratiques maintenant, Hourra!)
En JavaScript, nous pensons naturellement en termes de fonctions, de boucles, de conditions, d'objets, de comparaisons. Nous écrivons la logique, abstraits des choses en méthodes et finissons finalement un paquet que le navigateur comprend. Et une fois qu'il est expédié? Nous regardons rarement ce dernier paquet JavaScript - nous nous concentrons simplement sur le maintien du maigre.
Maintenant, demandez-vous: n'est-ce pas exactement ce que Sass fait pour CSS?
Pourquoi devrions-nous écrire à la main des lignes infinies de CSS répétitives lorsque nous pouvons utiliser des mixins et des fonctions pour le générer - proprement, efficacement et sans se soucier du nombre de lignes qu'il faut, tant que la sortie est optimisée?
Ainsi, nous le mettons à l'épreuve et il s'avère que SASS peut remplacer JavaScript, du moins en ce qui concerne la logique de bas niveau et le comportement du puzzle. Avec rien d'autre que des cartes, des mixins, des fonctions et beaucoup de mathématiques, nous avons réussi à donner vie à notre puzzle Tangram, aucun javascript requis.
Laissez commencer les jeux (CSS uniquement)! ??
Le jeu
Le jeu se compose de sept pièces: le jeu de tangram classique. Naturellement, ces pièces peuvent être disposées en un carré parfait (et de nombreuses autres formes aussi). Mais nous avons besoin d'un peu plus que des pièces statiques.
Voici donc ce que je construis:
- Un objectif de puzzle, qui est la forme cible que le joueur doit recréer.
- Un bouton de démarrage qui mélange toutes les pièces dans une zone de mise en scène.
- Chaque pièce est cliquable et interactive.
- Le puzzle devrait informer l'utilisateur quand il se trompe d'une pièce et célébrer également quand il termine le puzzle.
La structure HTML
J'ai commencé par configurer la structure HTML, qui n'est pas une petite tache, compte tenu du nombre d'éléments impliqués.
- Chaque forme a re?u sept boutons radio. J'ai choisi des radios plut?t que des cases à cocher pour profiter de leur exclusivité intégrée. Un seul peut être sélectionné dans le même groupe. Cela a rendu beaucoup plus facile de suivre la forme et l'état actuellement actifs.
- Le bouton Démarrer? également une entrée radio. Une case à cocher aurait également pu fonctionner, mais pour la cohérence, je suis resté avec des radios à tous les niveaux.
- La carte du puzzle elle-même est juste un vieux vieux, simple et efficace.
- Pour la rotation, nous avons ajouté huit boutons radio, chacun représentant un incrément de 45 degrés: 45 °, 90 °, 135 °, jusqu'à 360 °. Ceux-ci simulent entièrement des contr?les de rotation dans CSS.
- Chaque position d'ombre potentielle a également obtenu son propre bouton radio. (Oui, c'est beaucoup, je sais.)
- Et pour tout envelopper, j'ai inclus un bouton de réinitialisation classique à l'intérieur d'un
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

CSS bloque le rendu de la page car les navigateurs affichent le CSS en ligne et le CSS externe comme des ressources clés par défaut, en particulier avec les feuilles de styles importées, les grandes quantités de CSS en ligne et les styles de requête multimédia non optimisés. 1. Extraire CSS critique et l'intégrez-la dans HTML; 2. Retard Chargement CSS non critique via JavaScript; 3. Utilisez des attributs multimédias pour optimiser le chargement tel que les styles d'impression; 4. Comprimer et fusionner CSS pour réduire les demandes. Il est recommandé d'utiliser des outils pour extraire les CS de clé, combiner le chargement asynchrone rel = "précharge" et utiliser le chargement retardé des médias raisonnablement pour éviter une division excessive et un contr?le de script complexe.

Dans le tutoriel suivant, je vais vous montrer comment créer des animations Lottie sur Figma. Nous utiliserons deux designs colorés pour expliquer comment vous pouvez animer sur Figma, puis je vais vous montrer comment passer de Figma aux animations Lottie. Tout ce dont vous avez besoin est une figue libre

Nous le mettons à l'épreuve et il s'avère que SASS peut remplacer JavaScript, du moins en ce qui concerne la logique de bas niveau et le comportement du puzzle. Avec rien d'autre que des cartes, des mixins, des fonctions et beaucoup de mathématiques, nous avons réussi à donner vie à notre puzzle Tangram, non J

TheBestApproachForCSSDependSonTheproject'sspecificneeds.ForLargerProjects, externalcsisBetterDueTomaintainiabilityAndReUsability; ForsmallerProjectsorSingle-pageApplications, internecssigh

NON, CSSDOOSNOTHAVETOBEINLOWLOWERCASE.CI, USING USINGERCASERASERISROMEND pour: 1) Cohérence et réadaptation, 2) évitant les technologies de perception liées à la pertinence, 3) Potentiel PerformanceBenefits, and4) Amélioration de la collaboration.

CSSismostlyCase-insensible, buturlsandfontfamilyNamesaSaSase-sensible.1) Propriéties andvaluesLikEcolor: Red; arenotcase-sensible.2) UrlSMustMatchTheServer'scase, par exemple, / images / Logo.png.3) FontFamilyNamesliNe'apensans's'mUstBeexact.

AutoPrefixer est un outil qui ajoute automatiquement les préfixes des fournisseurs aux attributs CSS en fonction de la portée du navigateur cible. 1. Il résout le problème de maintenir manuellement les préfixes avec des erreurs; 2. Travaillez le formulaire de plug-in PostCSS, analyse CSS, analysez les attributs qui doivent être préfixés et générer du code en fonction de la configuration; 3. Les étapes d'utilisation incluent l'installation de plug-ins, la définition de la liste de navigateurs et leur permettant dans le processus de construction; 4. Les notes ne comprennent pas manuellement les préfixes, le maintien des mises à jour de la configuration, les préfixes pas tous des attributs, et il est recommandé de les utiliser avec le préprocesseur.

CSSCOUNTERSCANAUTOMAMATIQUE UNEUXESECTIONS ET LISTS.1) USECOUNTER-RESEDTOINITINALIALIALISE, COMPTENDREMENTTOINCREAD, andCounter () Orcounters () toDisplayValues.2) combinewithjavascriptfordynamiccontentoenSureAcurateupdates.
