Bon! Confiance aux experts!
Je vais en rester où j'en suis sur ce point.
J'aurais sans doute dû en rester au display:table; mais je suis perdu dans le fait que d'un côté un display:table accepte le padding
(ce qui est cohérent avec le HTML à l'ancienne et ses "cellpadding") et le fait que display:inline-table ne l'accepte pas. De même avec margin:auto; qui marche très bien avec table mais pas avec inline-table pour autant que je comprenne.
Il y a sans doute de très bonnes raisons pour qu'il en soit ainsi, mais je ne me sens pas de me plonger dans ces arcanes compte tenu de la quantité de travail qui me reste à faire et du peu de temps dont je dispose.
Ce point n'est qu'un des multiples points que je dois traiter dans le redesign de ce site, le principal étant de développer un outillage qui permette à l'auteur de générer simplement ses pages sans avoir à se plonger dans les arcanes des langages web (HTML, CSS, JS et PHP). Jusqu'à présent c'est un collage assez peu cohérent où abondent les <table> imbriquées, parfois sans aucune raison apparente, et les
<br><br><span clas="...">...</span><br><br>
, le tout dans des cellules de <table>.... Rendre cela responsive est infaisable en pratique, la complexité de ces structures bourgeonnantes et surtout leur caractère aléatoire rend le traitement du DOM par programme hautement difficile. Chaque fois que je crois avoir trouvé un moyen d'analyser ces structures pour les remettre d'équerre, je trouve de nouvelles situation qui mettent mon programme en échec.
J'ai donc décidé d'une part de "maquiller" les anciennes pages avant de les reprendre individuellement à la main
(il y en a environ 800) et d'autre part de préparer un outillage aussi simple et utilisable que possible pour générer des pages de "bonne qualité".
Je fais cet outillage sous forme de snippets qui génèrent du code HTML et/ou des appels de scripts JS. Il dispose d'un "vocabulaire" de classes CSS qui lui permettent de dire ce qu'il veut comme présentation, par exemple class="center framed blue" va produire un objet centré dans la page, encadré et dont le contenu est en bleu. J'espère que cela va permettre à l'auteur de produire ses documents de nature scientifique et artistique -- domaines où il est hautement compétent -- sans avoir à se coltiner les problèmes techniques.
En ce qui concerne les figures centrées, l'appel au script est
<script>diapo('nom-de-l-image', 'center', 'commentaire')</script>
et c'est le script qui fait tout ce qu'il faut pour générer le HTML qui va bien en appelant les bonnes classes CSS,
Pour l'instant le code généré est
<div class="centerText">
<figure class="diapo center width60">
<img src="photo/nom-de-l-image.jpg" alt="">
<figcaption>commentaire</figcaption>
</figure>
</div>
où la classe width60 correspond à max-width:60%; et centerText à text-align:center; dans la feuille CSS.
J'espérais pouvoir définir en CSS .diapo.center pour ne pas avoir besoin de la <div>, mais je laisse tomber, du moins pour le moment.
Modifié par PapyJP (25 Jul 2016 - 10:00)