Maison >interface Web >tutoriel CSS >Faire des calendriers avec l'accessibilité et l'internationalisation à l'esprit
Cet article détaille la création d'un composant de calendrier accessible et internationalisé à l'aide de Vanilla JavaScript et CSS. Il évite les bibliothèques externes, en se concentrant sur le HTML sémantique, la compatibilité des lecteurs d'écran et en tirant parti des API JavaScript modernes pour la gestion et la localisation de la date / temps.
Le tutoriel met l'accent sur les meilleures pratiques pour construire des composants de calendrier, mettant en évidence les aspects souvent négligés des fuseaux horaires, des formats de date et de la localisation. Il aborde l'hésitation commune du développeur envers l'objet natif Date()
, présentant comment les API JavaScript modernes simplifient la manipulation et la mise en forme de la date.
Le cœur du tutoriel tourne autour d'un élément personnalisé, kal-El
, conçu pour rendre un calendrier d'un seul mois. L'internationalisation est réalisée en utilisant les API Intl.Locale
, Intl.DateTimeFormat
et Intl.NumberFormat
, s'adaptant dynamiquement aux paramètres régionaux de l'utilisateur en fonction de l'attribut lang
de l'élément racine. Le secours à en-US
est mis en œuvre pour des situations où les informations sur les paramètres régionaux ne sont pas disponibles. Le HTML sémantique, y compris les balises <time></time>
pour la compatibilité des lecteurs d'écran, est utilisé partout.
La fonction kal-El
utilise un objet de configuration fusionnant les paramètres fournis par l'utilisateur avec des valeurs par défaut, déterminant le mois et l'année affichés. Il tire parti de l'objet Intl.Locale
API weekInfo
pour obtenir des informations spécifiques aux paramètres régionaux sur le premier jour de la semaine et des jours de week-end, simplifiant l'internationalisation.
Le processus de rendu utilise des littéraux de modèle pour une génération de balisage efficace. Les noms en semaine sont manipulés à l'aide de Intl.DateTimeFormat
, offrant des versions longues et courtes pour une conception réactive. Les numéros de date sont rendus avec des balises <time></time>
y compris les attributs datetime
pour l'accessibilité. Des attributs de données supplémentaires (data-weekend
, data-today
, data-weeknumber
) sont inclus à des fins de style.
CSS est utilisée pour la mise en page, avec des variables CSS fournissant des options de personnalisation. Le style est appliqué pour mettre en évidence la date en cours et différencier les jours de week-end. Le :is()
pseudo-classe améliore l'efficacité CSS. Le tutoriel montre également comment ajuster dynamiquement le placement de la colonne de grille en fonction du premier jour de la semaine.
Enfin, le tutoriel étend la fonctionnalité pour rendre un calendrier entier de l'année en utilisant un élément de wrapper jor-El
, créant une grille de calendriers mensuels. Une section de bonus présente un style de "calendrier des confettis" visuellement attrayant réalisé uniquement grâce aux modifications CSS. L'ensemble du projet utilise uniquement la vanille JavaScript et le CSS, mettant l'accent sur une approche propre et efficace pour construire une composante calendaire robuste.
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!