Table des matières
Common Use Cases
Best Practices
Example: Smooth scroll with fallback
Maison interface Web tutoriel CSS Comment utiliser les préfèses réduites en mouvement?

Comment utiliser les préfèses réduites en mouvement?

Aug 05, 2025 pm 05:11 PM
css Accessibilité

使用 prefers-reduced-motion 可检测用户是否在系统设置中启用了减少动画,从而提升可访问性;1. 将动画或过渡样式包裹在 @media (prefers-reduced-motion: reduce) 查询中;2. 在该媒体查询内禁用或简化动画,如设置 animation: none 或 transition: none;3. 对于 scroll-behavior 等属性也应提供 auto 回退;4. 在 macOS、Windows、iOS 和 Android 设备上测试该功能是否生效;5. 始终尊重用户的减少动画偏好,将其视为必要需求而非可选优化,从而确保所有用户都能舒适地使用网站。

How to use prefers-reduced-motion?

prefers-reduced-motion is a CSS media feature that lets you detect whether a user has requested less motion in animations and transitions. This is especially helpful for accessibility, as some users may experience discomfort (like dizziness or nausea) from excessive animations.

How to use prefers-reduced-motion?

You can use it to disable or simplify animations for those who prefer reduced motion.

How to Use prefers-reduced-motion

Wrap your motion-heavy styles in a @media query that checks the user’s preference:

How to use prefers-reduced-motion?
@media (prefers-reduced-motion: reduce) {
  /* Reduce or remove animations */
  .fade-in,
  .slide-up,
  .bounce {
    animation: none;
    transition: none;
  }
}

This tells the browser: if the user has enabled "reduce motion" in their OS settings, skip these animations.

Common Use Cases

You’ll want to apply this to any element that uses:

How to use prefers-reduced-motion?
  • CSS transitions (e.g., hover effects)
  • Keyframe animations
  • Auto-playing carousels or spinners

For example, instead of a slow fade:

.fade-in {
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

.fade-in.visible {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .fade-in {
    transition: none;
  }
}

Now, the fade-in happens instantly if the user prefers reduced motion.

Best Practices

  • Always default to reduced motion being respected — it’s a user preference, not an enhancement.
  • Use prefers-reduced-motion: reduce (not no-preference, which is the default but less commonly needed).
  • Test on real devices:
    • On macOS: System Settings > Accessibility > Display > Reduce motion
    • On Windows: Settings > Ease of Access > Display > Show animations in Windows
    • On iOS: Settings > Accessibility > Motion > Reduce Motion
    • Android varies by version, usually under Accessibility > Remove animations

Example: Smooth scroll with fallback

.scroll-container {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  .scroll-container {
    scroll-behavior: auto; /* Instant scroll */
  }
}

This prevents disorienting smooth scrolling when the user wants it disabled.


Basically, just wrap any animation or transition in a @media (prefers-reduced-motion: reduce) block and turn it off. It’s a small change that makes your site more accessible and respectful of user needs.

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1528
276
Quelles sont les applications de trading de devises virtuel Quelles sont les applications de trading de devises virtuel Aug 08, 2025 pm 06:42 PM

1. Binance est connue pour son énorme volume de transactions et ses paires de trading riches. Il fournit des modèles de trading diversifiés et des écosystèmes parfaits. Il garantit également la sécurité des actifs des utilisateurs via les fonds SAFU et les technologies de sécurité multiples et attache une grande importance aux opérations conformes; 2. OKX OUYI fournit un large éventail de services de trading d'actifs numériques et de modèles de comptes de trading unifiés, déploie activement le domaine Web3 et améliore la sécurité et l'expérience des transactions grâce à un contrôle des risques strict et à l'éducation des utilisateurs; 3. Gate.io Sesame ouvre la porte et a une bonne vitesse de devise et une monnaie riche, fournit des outils de trading diversifiés et des services à valeur ajoutée, adopte plusieurs mécanismes de vérification de sécurité et adhère à la transparence des réserves d'actifs pour améliorer la confiance des utilisateurs; 4. Huobi fournit des services d'actifs numériques à guichet unique avec une accumulation profonde de l'industrie, avec une forte profondeur de transaction et

Comment utiliser les unités VW et VH dans CSS Comment utiliser les unités VW et VH dans CSS Aug 07, 2025 pm 11:44 PM

Les unités VW et VH obtiennent une conception réactive en associant des tailles d'élément avec la largeur et la hauteur de la fenêtre; 1VW est égal à 1% de la largeur de la fenêtre et 1VH est égal à 1% de la hauteur de la fenêtre; couramment utilisé dans la zone pleine écran, les polices réactives et l'espacement élastique; 1. Utilisez 100VH ou mieux 100dvh dans la zone en plein écran pour éviter l'influence de la barre d'adresse du navigateur mobile; 2. 3. Espacement élastique comme la largeur: 80vw, marge: 5Vhauto, rembourrage: 2VH3VW, peut rendre la disposition adaptable; Faites attention à la compatibilité des appareils mobiles, à l'accessibilité et aux conflits de contenu de largeur fixe, et il est recommandé de donner la priorité à l'utilisation d'abord de DVH;

Comment utiliser la propriété Filtre dans CSS Comment utiliser la propriété Filtre dans CSS Aug 11, 2025 pm 05:29 PM

ThecsssfilterPropertyAllowsVisualEffectslikeBlur, Brightness et GrayscaletobeAppliedDirectlyToHtMlelements.1) usethesyntaxfilter: filter-function (valeur) toapplyeffects.2) combinemultipleFilterSwithSpacesparation, e.g., Blur (2px) Brightness (70%).

Comment utiliser efficacement les sélecteurs CSS Comment utiliser efficacement les sélecteurs CSS Aug 11, 2025 am 11:12 AM

Lorsque vous utilisez des sélecteurs CSS, les sélecteurs à faible spécifiquement spécifique doivent être utilisés en premier pour éviter les limitations excessives; 1. Comprendre le niveau de spécificité et les utiliser raisonnablement dans l'ordre de type, de classe et d'ID; 2. Utilisez des noms de classe polyvalents pour améliorer la réutilisabilité et la maintenabilité; 3. Utilisez des attributs et des sélecteurs de classe pseudo pour éviter les problèmes de performances; 4. Gardez le sélecteur court et clair; 5. Utiliser BEM et d'autres spécifications de dénomination pour améliorer la clarté structurelle; 6. Évitez les abus de sélecteurs de balises et: nième-enfant, et donnez la priorité à l'utilisation de classes d'outils ou de CSS modulaires pour s'assurer que le style est contrôlable pendant longtemps.

Comment créer une ligne verticale avec CSS Comment créer une ligne verticale avec CSS Aug 11, 2025 pm 12:49 PM

Utilisez une div avec bordure pour créer rapidement des lignes verticales et définissez des styles et des hauteurs en fixant la bordure-gauche et la hauteur; 2. Utiliser :: avant ou :: après des pseudo-éléments pour ajouter des lignes verticales sans étiquettes HTML supplémentaires, adaptées à la séparation décorative; 3. Dans la disposition de Flexbox, en réglant la largeur et la couleur d'arrière-plan de la classe de diviseur, les séparateurs verticaux adaptatifs entre les conteneurs élastiques peuvent être obtenus; 4. Dans CSSGrid, insérez les lignes verticales sous forme de colonnes indépendantes (telles que les colonnes auto-idgeth) en disposition de la grille, qui convient à la conception réactive; La méthode la plus appropriée doit être sélectionnée en fonction de la mise en page spécifique pour s'assurer que la structure est simple et facile à entretenir.

Comment utiliser CSS clamp () pour une typographie réactive? Comment utiliser CSS clamp () pour une typographie réactive? Aug 06, 2025 pm 04:51 PM

CLAMP () incSSenablesFluid, ResponsiveTypographyBysettingAvaluebetweenaminimum, Preferred, andmaximumSize; 1.Serclamp (min, préféré, max) todéfinescalablefontsize; 2.setminandMaxinremForAccessibility; 3.UsevwintrefredValuewitharEMOffsetforsMoothscaleding; 4

Comment empêcher une rupture de ligne en CSS Comment empêcher une rupture de ligne en CSS Aug 08, 2025 pm 05:14 PM

Utiliser White Space: NowRaptOPROPRETTEXTSFROMBRINKINGETOMULTIPLELINES, garantissant un contenustaysonasingLeline; 2.ApplyThisPropertyToInline, en ligne en ligne, Orflexitems, WhereFlex-Wrap: NowRappReventsItemWrappingandWhite-Space: NowRappReventsInterNalTextWrapping; 3.Forspe

Comment changer le style de liste dans CSS Comment changer le style de liste dans CSS Aug 17, 2025 am 10:04 AM

Pour modifier le style de liste CSS, utilisez d'abord le type de style liste pour modifier la balle ou le style de numérotation. 1. Utilisez du type de style liste pour régler la balle de UL à disque, cercle ou carré, et le nombre d'OL est décimal, inférieur alpha, haut-alpha, inférieur-romain ou haut-romain. 2. Supprimez complètement la balise avec la liste: aucun. 3. Utilisez la liste-image: URL ('Bullet.png') pour la remplacer par une image personnalisée. 4. Utilisez la position de style liste: dans

See all articles