Maison > interface Web > tutoriel CSS > CSS est une langue fortement dactylographiée

CSS est une langue fortement dactylographiée

Jennifer Aniston
Libérer: 2025-03-25 09:37:11
original
603 Les gens l'ont consulté

CSS est une langue fortement dactylographiée

L'une des façons de classer un langage de programmation est de la force ou de la faiblesse. Ici, «tapé» signifie si les variables sont connues au moment de la compilation. Un exemple de cela serait un scénario où un entier (1) est ajouté à une chaîne contenant un entier ("1"):

 résultat = 1 "1";
Copier après la connexion

La chaîne contenant un entier aurait pu être générée involontairement à partir d'une suite de logique compliquée avec beaucoup de pièces mobiles. Il aurait également pu être généré intentionnellement à partir d'une seule source de vérité.

Malgré les connotations que les termes «faibles» et «forts» impliquent, un langage de programmation fortement typé n'est pas nécessairement meilleur qu'un langage faible. Il peut y avoir des scénarios où la flexibilité est plus nécessaire que la rigidité et vice-versa. Comme pour de nombreux aspects de la programmation, la réponse dépend de plusieurs contextes externes (c'est-à-dire que «cela dépend»).

L'autre morceau intéressant est qu'il n'y a pas de définition formelle de ce qui constitue un typage fort ou faible. Cela signifie que les perceptions de ce qui est considéré comme un langage fortement ou faiblement typé diffère d'une personne à l'autre et peut changer avec le temps.

Manuscrit

JavaScript est considéré comme un langage faiblement typé, et cette flexibilité a contribué à son adoption précoce sur le Web. Cependant, à mesure que le Web a mûri et industrialisé, les cas d'utilisation pour JavaScript sont devenus plus compliqués.

Des extensions comme TypeScript ont été créées pour aider à cela. Considérez-le comme un «plugin» pour JavaScript, qui greffe un type fort sur la langue. Cela aide les programmeurs à naviguer des configurations compliquées. Un exemple de cela pourrait être une application à page unique à forte intensité de données utilisée pour le commerce électronique.

TypeScript est actuellement très populaire dans l'industrie du développement Web, et de nombreux nouveaux projets utilisent par défaut l'utilisation de TypeScript lors de la première définition des choses.

Temps de compilation

Le temps de compilation est le moment où un langage de programmation est converti en code machine. C'est un précurseur à l'exécution, le moment où le code machine est effectué par l'ordinateur.

Comme pour beaucoup de choses sur le Web, le temps de compilation est un peu délicat. Une configuration qui utilise TypeScript aspirera les pièces de composant de code JavaScript et les compilera dans un seul fichier javascript pour que le navigateur puisse lire et exécuter.

Le moment où les composants se compilent, c'est quand ils sont tous combinés. TypeScript sert de type de surveillant et vous criera dessus si vous essayez de briser les conventions dactylographiées que vous avez configurées pour vous-même avant que la combinaison ne se produise.

Le fichier JavaScript à réglage cousu est ensuite ingéré par le navigateur, qui a son propre temps de compilation. Le temps de compilation du navigateur est très variable, selon:

  • L'appareil sur lequel se trouve le navigateur,
  • Quels autres fonctionnent le navigateur, et
  • Ce que font les autres programmes des autres programmes de l'appareil.

TypeScript n'est pas directement utilisé par le navigateur, mais sa présence est ressentie. JavaScript est fragile. TypeScript aide à cette fragilité en essayant d'éviter les erreurs en amont dans l'éditeur de code. Cela réduit les erreurs de chance dans la lecture JavaScript par le navigateur - des erreurs qui entraîneraient JavaScript à arrêter de fonctionner sur le site Web ou l'application Web qu'une personne utilise.

CSS

CSS est un langage de programmation déclaratif spécifique au domaine. Il est également fortement dactylographié. Pour la plupart, les valeurs de CSS restent déclarées comme écrites. Si une valeur n'est pas valide, le navigateur jette toute la propriété.

Types dans CSS

La liste des types dans CSS est approfondie. Ils sont:

Types textuels
  • Mots-clés à la recherche mondiale:
    • initial
    • hériter
    • décollé
    • revenir
  • Custom Identifies, qui sont spécifiquement utilisées pour des choses, comme fournir un nom de la région de la grille
  • Des cordes, telles que "bonjour"
  • URL, comme https://css-tricks.com/
  • Idents en pointillés (-), qui sont utilisés pour créer des propriétés personnalisées (plus à ce sujet dans un peu)
Types numériques
  • Entiers, qui sont des chiffres décimaux 0–9
  • Nombres réels, comme 3.14
  • Pourcentages, comme 25%
  • Dimensions, un nombre avec une unité qui y a été ajouté comme (100px ou 3s)
  • Ratios, comme 16/9
  • flex, une longueur variable pour le calcul de la grille CSS
Types de quantités
  • Longueurs:
    • Longueurs absolues, comme les pixels ou les centimètres
    • Longueurs relatives, comme les EM racine ou la hauteur de la fenêtre
    • Temps, comme 200 ms
  • Angles, comme 15deg
  • Temps, comme 250 ms
  • Fréquences, telles 16Hz
  • Résolution, comme 96dpi

Les dimensions et les longueurs peuvent sembler similaires, mais les dimensions peuvent contenir des pourcentages et des longueurs ne peuvent pas.

Types de couleurs
  • Mots-clés:
    • Couleurs nommées, comme Papayawhip
    • transparent
    • actuel
  • Couleurs RVB:
    • Notation hexidécimale, comme # FF8764
    • Notation RGB / RGBA, comme RGBA (105, 221, 174, 0,5)
  • Les couleurs HSL / HSLA, comme HSL (287, 76%, 50%)
  • Les couleurs du système, telles que ButtonText
Types d'images
  • Image, qui est une référence d'URL à un fichier image ou un gradient
  • Color-stop-list, une liste de deux arrêts de couleur ou plus, utilisés pour la notion de gradient
  • Color linéaire, une expression de couleur et de longueur utilisée pour indiquer un arrêt de couleur de gradient
  • Color linéaire, un pourcentage de longueur utilisé pour interpoler la couleur
  • fin de fin, qui utilise un mot-clé de cercle ou d'ellipse pour les gradients radiaux
Types de positionnement 2D
  • Mots-clés:
    • haut
    • droite
    • bas
    • gauche
    • centre
  • Un pourcentage de longueur, comme 25%

Programmation dans CSS

La majeure partie de la programmation dans CSS fait des sélecteurs, puis spécifie une suite de propriétés et leurs valeurs requises. Les collections de sélecteurs donnent au contenu une forme visuelle, tout comme la façon dont les collections de la logique JavaScript crée des fonctionnalités.

CSS a des fonctions. Il peut effectuer le calcul, la logique conditionnelle, les expressions algorithmiques, l'état et le comportement basé sur le mode. Il possède également des propriétés personnalisées, qui sont effectivement des variables CSS qui permettent de mettre à jour les valeurs dynamiquement. Heck, vous pouvez même résoudre FizzBuzz avec CSS.

Comme d'autres langages de programmation, il existe également une couche «méta», avec différentes pensées et techniques sur la façon d'organiser, de gérer et de maintenir des choses.

Lancer des erreurs

Contrairement à d'autres langages de programmation où le code existe en grande partie sous le capot, CSS est très visuel. Vous ne verrez pas d'avertissements ou d'erreurs dans la console si vous utilisez une valeur non valide pour une déclaration de propriété, mais vous obtiendrez des visuels qui ne mettent pas à jour comme vous l'aviez prévu.

La raison en est que CSS est résilient. Lorsque les visuels ne se mettent pas à jour en raison d'une déclaration mal construite, CSS privilégie, garantissant que le contenu peut être affiché à tout prix et rendra toutes les autres déclarations valides qu'elle peut peut-être. Ceci est conforme aux principes de conception de la langue, aux principes de la plate-forme et aux objectifs globaux de la mission du Web.

Preuve

Voyons à quel point le typage de CSS maintient les garde-corps en trois exemples: un avec une déclaration / valeur de valeur simple, une avec calcul et une avec redéfinition d'une propriété personnalisée.

Exemple 1: Déclaration de propriété / valeur simple

Pour cet exemple, le navigateur ne comprend pas la déclaration de «pomme de terre» de style frontalier de la bannière. Notez que les autres déclarations de propriété / valeur de sélecteur de classe. Ceci est un exemple de la résilience du CSS.

La déclaration de style bordure s'attend à l'un des types de style textuel suivant:

  • Mots-clés à émission mondiale, ou un
  • Retrait en pointillé pour une propriété personnalisée.

Si nous mettons à jour le style de bordure pour utiliser une valeur tapissée valide de pointillé, le navigateur rendra la bordure!

Exemple 2: calcul

La fonction CALC () dans CSS nous permet de prendre deux arguments et un opérateur pour retourner un résultat calculé. Si l'un des arguments n'utilise pas de type valide, le calcul ne fonctionnera pas.

Dans ce stylo, la propriété de taille de police du sélecteur P attend une valeur avec un type de dimension numérique (par exemple 1.5rem). Cependant, la fonction de calcul produit une valeur de type non valide pour la propriété de taille de police. En effet, le deuxième argument de la fonction calc () est une chaîne ("2rem"), et non un type de dimension numérique.

Pour cette raison, la taille de la police du paragraphe retombe au nœud parent le plus applicable suivant - la taille de la police de 1.5REM a déclaré sur l'élément corporel.

C'est un peu dans les mauvaises herbes, mais il vaut la peine de pointer: combiner deux propriétés personnalisées dans une fonction calc () peut provoquer des erreurs. Bien que les deux propriétés personnalisées puissent être valides par elles-mêmes, Calc () n'acceptera pas les types textuels en pointillés. Pensez à un scénario où nous pourrions essayer de multiplier les propriétés personnalisées qui contiennent des unités incompatibles, par exemple --big: 500px et --mall: 1em.

Exemple 3: propriété personnalisée redéfinie

Comme les variables JavaScript, les valeurs de propriété personnalisées peuvent être redéfinies. Cette flexibilité permet des choses comme la création de thèmes de couleur de mode foncé.

Dans le: Sélecteur de racines de ce codep, j'ai défini une propriété personnalisée de - Color-Cyan, avec une valeur de # 953FE3. Ensuite, dans la classe .Square, j'ai mis à jour la valeur de la propriété personnalisée - Color-Cyan pour être en haut. Bien que le haut soit une valeur valide et dactylographiée, ce n'est pas un type que les honneurs en arrière-plan.

Notez que la propriété personnalisée mise à jour est étendue à .Square et n'affecte pas d'autres usages, tels que la bordure droite de l'expression «ne jouez pas pour taper». Et si vous supprimez la propriété personnalisée redéfinie de .Square, vous verrez la couleur d'arrière-plan cyan se retourner.

Bien que cela soit un peu artificiel, il sert d'exemple de la façon dont la redéfinition des propriétés personnalisées peut s'éloigner de vous si vous ne faites pas attention.

Ce phénomène peut être trouvé dans des projets avec une mauvaise communication, des bases CSS plus grandes et des situations où les préprocesseurs CSS sont utilisés pour construire des propriétés personnalisées à grande échelle.

Outillage

Avec le don du recul, je pense que le manque d'avertissements de console pour CSS est un défaut et a contribué à beaucoup de perceptions négatives sur la langue.

En espérant qu'un développeur remarquera un changement visuel potentiellement minuscule est une demande trop importante et ne les rencontre pas où ils sont pour la plupart de leurs autres outils quotidiens. Il y a quelques initiatives dont je suis conscient qui essaient de résoudre ce problème.

Le premier est Stylelint, un linter spécialement conçu pour gérer les langages de prétraitement CSS et CSS. Stylelint peut s'intégrer aux éditeurs de code, aux coureurs de tâches, aux outils de ligne de commande et aux actions GitHub pour aider à garder votre CSS sous contrôle. Cela lui permet de rencontrer des développeurs où ils se trouvent déjà.

Le deuxième est l'excellente suite d'options d'inspection CSS de Firefox dans ses outils de développeur. En particulier, je voudrais attirer l'attention sur sa capacité à identifier le CSS inutilisé. Ceci est extrêmement utile pour identifier les sélecteurs qui peuvent avoir pris l'intention d'un décalage de type.

Emballage

CSS est fortement dactylographié depuis aussi longtemps qu'il a été un langage de programmation, et en tant que langage de programmation, il existe depuis longtemps. Cela a également beaucoup grandi ces derniers temps. Si vous ne vous êtes pas enregistré, il existe de nouvelles fonctionnalités incroyables disponibles.

À mesure que le JavaScript fortement typé devient plus populaire, j'espère qu'il aide les développeurs à devenir plus à l'aise avec l'entreprise, mais flexible, de CSS.

Merci à Miriam Suzanne pour ses commentaires.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal