
Idéal pour répartir des blocs sur plusieurs colonnes "responsives"
{up flexauto=x_ordi | tablet=x_tablet | mobile=x_mobile }contenu{/up flexauto}syntaxe 2 :
{up flexauto=x_ordi-x_tablet-x_mobile }contenu{/up flexauto}x=1 à 12 est le nombre de colonnes sur grand écran et tablette. 4 sur mobile.
- flexauto = 3: nombre de colonnes sur grand écran ou ordi-tablet-mobile
- tablet = 2: nombre de colonnes sur moyen écran
- mobile = 1: nombre de colonnes sur petit écran
- mobile-l: nombre de colonnes sur petit écran en landscape
- large: nombre de colonnes sur écran large
- xlarge: nombre de colonnes sur écran xlarge
- xxlarge: nombre de colonnes sur écran xxlarge
Style bloc principal
- id: identifiant
- class: class ou style pour le bloc principal
- style: class ou style pour le bloc principal
Style des blocs secondaires
- bloc-tag = 1: uniquement si {===} 0=pas de bloc
- class-*: class pour tous les blocs colonnes. sinon voir class-1 à class-12
- style-*: style ou class2style pour tous les blocs colonnes. sinon voir style-1 à style-12
- bloc-style: style ou class2style ajoutés au bloc enfant
Nom des classes identificatrices
- class-col = up-col-: nom des classes pour les colonnes
- class-row = up-row-: nom des classes pour les lignes
Style ajouté dans le head de la page
- css-head (base-css): style ou class2style ajouté dans le HEAD de la page
Divers
- no-content-html = en=no content;fr=aucun contenu: message si aucun contenu
- Version 1.8
- ajout options bloc-style & css-head.
- ajout possibilité de séparateurs
- Version 2.1
- saisie compacte du nombre de colonnes en responsive :
flexauto=3-2-1est équivalent àflexauto=3 | tablet=2 | mobile=1
- saisie compacte du nombre de colonnes en responsive :
- Version 5.1
- reprise complète du script pour uniformisation des méthodes avec flexauto
- ajout option bloc-tag
- ajout des options style- et class-
- Version 5.1.2
- ajout des options class-col et class-row pour définir le début du nom des classes pour identiifier les cellules
Attention : la valeur par défaut passe de col- / row- à up-col- / up-row-
- ajout des options class-col et class-row pour définir le début du nom des classes pour identiifier les cellules
- Version 5.2
- prise en charge des class2style
Pour obtenir la grille ci-dessous, ce simple code convient :
{up flexauto}
<p>bloc n°1</p>
<div>bloc n°2</div>
<h4>bloc n°3</h4>
<p>bloc n°4</p>
<p>bloc n°5</p>
<p>bloc n°6</p>
{/up flexauto}
bloc n°3
Vous remarquerez la tolérance pour définir les blocs enfants. N'importe quel type de bloc convient tant qu'il est de premier niveau
Par défaut, le nombre de colonnes est de 3 sur grand écran, 2 sur moyen et 1 sur petit.
L'exemple ci-dessous montre comment modifier ce comportement. Il ajoute aussi une marge entre les cellules avec la classe fg-gap. Toutes les classes de UP-Flexgrid sont utilisables
{up flexauto=6 | tablet=3 | mobile=2 | class=fg-gap}
bloc n°3
{up addcsshead=
.fg-row > *:nth-child(odd) [background-color:violet]
.fg-row > *:nth-child(even) [background-color:tan]
.fg-row > * [padding:5px;margin-bottom:0;border:#666 dotted 2px;text-align:center]
}
notez que UP admet et comprend des arguments sur plusieurs lignes. Pratique pour se relire!
Faciliter la mise en page
Pour créer des blocs de contenus, vous pouvez les séparer par des shortcodes séparateurs comme dans l'exemple ci-dessous.

Léopard

Ecureuil

Perroquets

Macaques

Lion majestueux

Muguet
Le code
Une copie d'une partie du shorcode en mode wysiwyg dans l'éditeur :

ainsi que la totalité du shortcode en mode code :
<p>{up flexauto=3 | tablet=2 | mobile=1 | class=fg-gap | style=text-align:center | css-head=#id img[width:100%;ombreMax;border:1px orange solid]}</p>
<p><img src="/images/photos/Leopard-africain-mini.jpg" alt="" /></p>
<p>Léopard</p>
<p>{====}</p>
<p><img src="/images/photos/Ecureuil-rouge-eurasien-mini.jpg" alt="" /></p>
<p>Ecureuil</p>
<p>{====}</p>
<p><img src="/images/photos/Perroquets-rouges-en-Equateur-mini.jpg" alt="" /></p>
<p>Perroquets</p>
<p>{====}</p>
<p><img src="/images/photos/black-crested-macaque-mini.jpg" alt="" /></p>
<p>Macaques</p>
<p>{====}</p>
<p><img src="/images/photos/un-lion-majestueux-mini.jpg" alt="" /></p>
<p>Lion majestueux</p>
<p>{====}</p>
<p><img src="/images/photos/brins-de-muguet-mini.jpg" alt="" /></p>
<p>Muguet</p>
<p>{/up flexauto}</p>
Les options du shortcode :
flexauto=3, tablet=2, mobile=1 définissent le nombre de colonne selon la largeur de l'écran
class=fg-gap : une classe pour ajouter un espace entre les colonnes
style=text-align:center :pour centrer le contenu des cellules
css-head=#id img[width:100%;ombreMax;border:1px orange solid] : force les images à 100% de la largeur des colonnes. #id limite la portée de cette règle à cette action.
v5.2 : la nouvelle fonctionnalité class2style permet d'utiliser des classes simples (ombreMax) au milieu de styles. Ne pas oublier les points-virgules pour les séparer.
Mise en forme version 5.1
Elles permettent une présentation plus souple et plus agréable que les tableaux avec le grand avantage d'être responsive.
J'ai revu complétement ces 2 actions pour la version 5.1 de UP, en uniformisant leurs options concernant la mise en forme.
Quoi de mieux que d'utiliser ces nouvelles fonctionnalités pour vous les montrer et démontrer.
Les options concernées sont listées dans le tableau ci-dessous.
Pour rappel, une option se terminant par -, permet de donner une règle qui concerne tous les éléments. Si on remplace l'étoile par un nombre de 1 à 12, on cible un groupe d'éléments. Dans notre cas, il s'agit des colonnes. Il aurait été préférable que je les nomme col-class-* et col-style-*. Mais il est trop tard, la compatibilité ascendante l'interdit
L'exemple utilise flexbox, mais flexauto fonctionnne exactement de la même façon.
class
style
classe(s) ou style(s) ajouté en inline dans la balise DIV du bloc principal
bloc-style
style UNIQUEMENT ajoutés à tous les blocs enfants par une règle CSS dans le head. #id>*[style]
style-*
style-* est identique à bloc-style
style-X ajoute une règle CSS dans le head. #id .col-X[style]
Nouvelle option 5.1 pour flexauto
class-*
class-* est ajouté à la balise de tous les blocs
class-X ajoute la règle dans la balise de tous les blocs enfants
Nouvelle option 5.1 pour flexauto
bloc-tag
par défaut, un bloc DIV encadre les contenus séparés par {===}
bloc-tag=0 n'ajoute pas de bloc, les attributs sont ajoutés à la balise enfant
Nouvelle option 5.1 pour flexauto et flexbox
class-col & class-row
le nom des classes pour les colonnes et les lignes.
Par défaut, ils sont définis à up-col- et up-row-
Les explications
{up flexbox=2-10 | mobile=12
| class=fg-gap m-child-raz-1 bd-gris
| style=font-size:1rem
| bloc-style=border:1px grey solid; padding:10px
| class-*=ombreMax
| class-1=bg-rouge t-blanc
| class-2=bd-rouge
| css-head=#id .up-col-1.up-row-odd[background:var(--bleuClair) !important]
#id .up-col-2.up-row-odd[border:2px solid var(--bleuClair) !important]
}flexbox : pas de changement, c'est la largeur des 2 colonnes. 12 pour toute la largeur sur mobile.
class : les classes s'appliquent au bloc parent qui entoure tous les blocs enfants avec une bordure grise (bd-gris). le classes fg-gap et m-child-raz-1 agissent sur les marges. Voir la feuille de style de UP.
style : pour la démo, je précise la taille des caractères
bloc-style : par défaut, tous les blocs enfants ont une bordure rouge et un padding
class-*: j'ajoute une ombre à tous les blocs enfants (toutes les colonnes)
class-1 : la première colonne aura un texte blanc sur fond rouge
class-2 : la deuxième colonne est entourée de rouge
css-head : cette option universelle va nous permettre de styler en toute liberté !
Un peu de technique pour comprendre les règles de l'option css-head
Il aurait été possible de faire plus simple, amis on perdait le charme de la démo !
Tous les blocs enfants ont 3 classes pour permettre de les styler :
up-col-X: le numéro de sa colonne de 1 à Nup-row-X: le numéro de sa ligne de 1 à Nup-row-evenourow-oddselon que la ligne est paire ou impair
Ces classes nous permettent de cibler :
- une colonne par
#id .up-col-X - une ligne par
#id .up-row-X - un bloc par ses coordonnées
#id .up-row-X.up-col-XNotez bien l'absence d'espace entre les 2 classes pour indiquer qu'elles sont dans la même balise. L'espace avec #id indique qu'elles sont ses enfants. C'est beau le CSS ! - un bloc d'une colonne sur une ligne paire ou impaire. C'est le cas dans notre exemple avec
#id .up-col-1.row-oddpour les blocs de la colonne 1 qui sont sur une ligne paire.
Attention à la priorité des sélecteurs CSS
Par définition, pour simplifier, une règle CSS dans une balise HTML a un poids (ou priorité) plus important qu'une règle dans un fichier CSS ou dans le head de la page.
C'est pour cela que l'on ajoute l'attribut !important afin de le rendre prioritaire
En résumé, toutes les options sont dans le head de la page pour toutes les options (bloc-style, style- et css-head). class-* est obligatoirement dans la balise des blocs enfants.
Je ne parle pas des options class et style qui ne rentre pas en conflit avec leurs enfants
Si la facilité d'utilisation des classes n'était pas si grande, l'idéal serait de ne pas utiliser l'option class-* pour éviter les bagarres entre enfants.
L'option bloc-tag
Cette option fait son apparition dans la version 5.1 de UP.
Sa fonction est utile lorsque le contenu des blocs enfants provient d'autres actions UP situées entre des shortcodes séparateurs pour plus de lisibilité.
Les shortcodes séparateur encadrent leur contenu par une balise DIV qui peut gêner l'application de certaines règles CSS flexbox ou grid.
Je ne vais pas rentrer plus dans les explications, si vous êtes confronté à un souci CSS, pensez à ajouter une option bloc-tag=0 pour ne pas ajouter ce bloc superflu !
Une autre solution est de ne pas utiliser de shortcodes séparateurs, mais je trouve cela moins clair. A vous de choisir.
Dans les 2 cas, les classes class-* seront ajoutées à la balise des enfants directs.
{up flexbox=2-10
| class=fg-gap m-child-raz-1 bd-gris
| style=font-size:1rem
| bloc-style=border:1px grey solid; padding:10px
| class-*=ombreMax
| class-1=bg-rouge t-blanc
| class-2=bd-rouge
| css-head=#id .col-1.row-odd[background:var(--bleuClair) !important]
#id .col-2.row-odd[border:2px solid var(--bleuClair) !important]
}
upactionslist (1) readmore (1) csv2def (1) div (1) addcsshead (1) flexAuto (1) FLEXAUTO (1) flexauto (1) span (2) jcontent-in_content (1) jcontent-info (1) tabslide (1) toc (1)
