La disposition réactive est un mécanisme qui permet de réaliser un design web réactif. Les utilisateurs peuvent ainsi créer des pages Web dont la disposition et les dimensions dépendent des appareils utilisés.
Ce mécanisme est comparable aux mécanismes de Web mobile, qui utilisent le design web adaptatif (principalement pour l’interface utilisateur classique).
AEM effectue une mise en page réactive de vos pages en combinant plusieurs mécanismes :
Composant Conteneur de mises en page
Ce composant fournit un système de paragraphes/grille qui permet d’ajouter et de positionner des composants dans une grille réactive. Il peut être utilisé comme système de paragraphes (parsys) par défaut pour votre page et mis à la disposition des créateurs dans l’explorateur de composants.
Le composant Conteneur de dispositions par défaut est défini sous :
/libs/wcm/foundation/components/responsivegrid
Vous pouvez définir des conteneurs de mise en page :
En tant que composant que l’utilisateur peut ajouter à une page.
comme système de paragraphes par défaut de la page.
les deux.
Le conteneur de dispositions peut être utilisé de manière standard pour la page, tout en permettant à l’utilisateur d’y ajouter d’autres conteneurs de mises en page, par exemple, pour contrôler les colonnes.
Mode Disposition
Une fois que le conteneur de disposition est positionné sur la page, vous pouvez utiliser la
Disposition pour positionner le contenu dans la grille réactive.
Émulateur
Vous pouvez ainsi créer et modifier des sites web réactifs qui réorganisent la mise en page en fonction de la taille de l’appareil ou de la fenêtre en redimensionnant les composants de manière interactive. L’utilisateur peut alors voir comment le contenu est rendu à l’aide de l’émulateur.
Bien que la variable Conteneur de mises en page est disponible dans l’IU classique. Sa fonctionnalité complète n’est disponible que dans l’IU tactile.
Grâce à ces mécanismes de grille réactive, vous pouvez :
Dans une installation prête à l’emploi, une mise en page responsive a été configurée pour le site de référence We.Retail. Vous devez encore activer le composant Conteneur de dispositions pour d’autres pages.
Ces tâches vous permettent d’afficher l’émulateur en responsive design sur votre site.
Pour permettre à l’émulateur de prendre en charge vos pages, vous devez enregistrer vos composants Page. Voir Enregistrement des composants de page pour la simulation.
Pour spécifier les groupes d’appareils qui apparaissent dans la liste Périphériques de l’émulateur, voir Spécification des groupes d’appareils.
Pour inclure l’émulateur, liez votre site aux groupes d’appareils. Consultez Ajout de la liste des périphériques (pour l’interface utilisateur classique et l’interface utilisateur optimisée pour les écrans tactiles).
Ces procédures sont utilisées pour activer le mode Disposition sur votre site.
Les points d’arrêt :
sont utilisés en responsive design ;
Peut être défini :
Définissez un titre et une largeur :
sont visibles en tant que marqueurs dans la partie supérieure de l’éditeur de page lorsque vous utilisez l’émulateur ;
Sont hérités de la hiérarchie de noeuds parents et peuvent être remplacés à volonté.
Il existe un point d’arrêt par défaut (prêt à l’emploi) qui couvre tout ce qui se trouve au-dessus du dernier configuré point d’arrêt.
Ils peuvent être définis à l’aide de CRXDE Lite ou de code XML.
Si vous configurez un nouveau projet :
Si vous migrez un projet existant (avec du contenu existant), vous devez :
ajouter des points d’arrêt aux modèles ;
ajouter les mêmes points d’arrêt aux pages existantes.
Comme l’héritage est en cours d’opération, vous pouvez le limiter à la page racine de votre contenu.
À l’aide de CRXDE Lite (ou d’un équivalent), accédez à :
jcr:content
de votre pageSous jcr:content
, créez le nœud :
cq:responsive
nt:unstructured
En dessous, créez le nœud :
breakpoints
nt:unstructured
Sous le nœud Points d’arrêt, vous pouvez créer un nombre illimité de points d’arrêt. Chaque définition est un noeud unique avec les propriétés suivantes :
<descriptive name>
nt:unstructured
String
* <descriptive title seen in Emulator>
*Decimal
* <value of breakpoint>
*Les points d’arrêt se trouvent à l’intérieur de la section <jcr:content>
du fichier .context.html
sous le dossier de modèles (ou de contenu) approprié.
Exemple de définition :
<cq:responsive jcr:primaryType="nt:unstructured">
<breakpoints jcr:primaryType="nt:unstructured">
<phone jcr:primaryType="nt:unstructured" title="{String}Phone" width="{Decimal}768"/>
<tablet jcr:primaryType="nt:unstructured" title="{String}Tablet" width="{Decimal}1200"/>
</breakpoints>
</cq:responsive>
Cela n’est nécessaire que si le composant de page n’est pas basé sur le composant de page de base.
Copiez le nœud cq:infoProviders
ci-dessous dans votre composant Page parent :
/libs/foundation/components/page/cq:infoProviders/responsive
Ces procédures sont nécessaires afin de redimensionner des composants en mode Disposition.
Pour définir le système de paragraphes principal de votre page comme conteneur de mises en page, définissez le système de paragraphes (parsys) comme suit :
wcm/foundation/components/responsivegrid
Dans :
Les deux exemples ci-dessous illustrent la définition :
HTL :
<sly data-sly-resource="${'par' @ resourceType='wcm/foundation/components/responsivegrid'}/>
JSP :
<cq:include path="par" resourceType="wcm/foundation/components/responsivegrid" />
AEM utilise LESS pour générer des parties de la feuille de style CSS nécessaire, qui doivent être incluses pour vos projets.
Vous devez également créer une bibliothèque cliente pour fournir des appels de configuration et de fonction supplémentaires. L’extrait LESS suivant est un exemple du minimum à ajouter à votre projet :
@import (once) "/libs/wcm/foundation/clientlibs/grid/grid_base.less";
/* maximum amount of grid cells to be provided */
@max_col: 12;
/* default breakpoint */
.aem-Grid {
.generate-grid(default, @max_col);
}
/* phone breakpoint */
@media (max-width: 768px) {
.aem-Grid {
.generate-grid(phone, @max_col);
}
}
/* tablet breakpoint */
@media (min-width: 769px) and (max-width: 1200px) {
.aem-Grid {
.generate-grid(tablet, @max_col);
}
}
La définition de la grille de base se trouve sous :
/libs/wcm/foundation/clientlibs/grid/grid_base.less
Les composants contenus dans un conteneur réactif sont redimensionnés (ainsi que leurs éléments DOM de HTML respectifs) en fonction de la taille de la grille réactive. Par conséquent, dans ces circonstances, il est recommandé d’éviter (ou de mettre à jour) les définitions d’éléments DOM à largeur fixe (contenus).
Par exemple :
Avant :
width=100px
Après :
max-width=100px
Tout redimensionnement d’un composant dans la grille déclenche les écouteurs suivants selon les besoins :
beforeedit
beforechildedit
afteredit
afterchildedit
Pour redimensionner et mettre à jour correctement le contenu d’une image adaptative incluse dans une grille responsive, vous devez ajouter un ensemble afterEdit
au programme d’écoute REFRESH_PAGE
dans le fichier EditConfig
de chaque composant contenu.
Par exemple :
<cq:listeners jcr:primaryType="cq:EditListenersConfig" afteredit="REFRESH_PAGE" />
Le mécanisme d’image adaptative est disponible par le biais d’un script qui contrôle la sélection de l’image appropriée pour la taille actuelle de la fenêtre. Il est activé une fois que le modèle DOM est prêt ou lors de la réception d’un événement dédié. Actuellement, la page doit être actualisée pour refléter correctement le résultat de l’action de l’utilisateur.
Pour que les bibliothèques clientes de feuilles de style personnalisées fonctionnent correctement tant dans un environnement de création que dans un environnement de publication, elles doivent être chargées dans l’en-tête.
Ces tâches permettent aux auteurs de faire glisser des instances de Conteneur de mises en page sur la page.
Pour permettre aux créateurs d’ajouter d’autres grilles responsive dans des pages de contenu, vous devez activer le composant Conteneur de mises en page pour la page. Vous pouvez effectuer cette opération à l’aide de l’une des fonctions suivantes :
Environnement de création
Utilisation Mode de conception pour activer le Conteneur de calques pour une page.
Définition du composant
Lors de la définition du composant, utilisez allowedComponent
ou une inclusion statique.
Vous pouvez configurer le nombre de colonnes disponibles pour chaque instance spécifique du conteneur de mises en page :
Environnement de création
Vous pouvez configurer le nombre de colonnes disponibles pour chaque instance spécifique du conteneur de mises en page.
À cet effet, utilisez le mode Conception, puis ouvrez la boîte de dialogue de conception pour le conteneur nécessaire. Vous pouvez spécifier le nombre de colonnes disponibles pour le positionnement et le redimensionnement. La valeur par défaut est 12.
XML
Les définitions de la grille réactive sont spécifiées dans :
etc/design/<*your-project-name*>/.content.xml
Les paramètres suivants peuvent être définis :
Nombre de colonnes disponibles :
columns="{String}8"
Composants qui peuvent être ajoutés au composant actif :
components="[/libs/wcm/foundation/components/responsivegrid, ...