css print

This commit is contained in:
2025-12-16 12:13:43 +01:00
parent d05acf87b3
commit 1c8c8aa73f
12 changed files with 33460 additions and 726 deletions
+89 -427
View File
@@ -264,456 +264,118 @@ svg.ext {
margin: auto;
}
}
/* -----------------------/*
* Feuille de style Print "Bretzel" adaptée
* Made par Alsacréations + tweaks EQL
/* ---------------------- */
/*
* Ressources et documentations :
* 1- https://www.docuseal.co/blog/css-print-page-style
* 2- https://www.alsacreations.com/astuce/lire/1160-Une-feuille-de-styles-de-base-pour-le-media-print.html
*/
/* Colors used for EQL */
/* 1) VRAIE feuille d'impression */
@media print {
/* Dimension et marges de page */
@page {
size: A4 portrait;
margin: 1.5cm 1.5cm;
@bottom-center {
content: "Page " counter(page) " / " counter(pages);
}
}
/* Reset général */
* {
all: unset;
display: revert;
box-sizing: border-box;
}
img {
max-width: 100%;
}
ul {
list-style-type: none;
}
input,
textarea,
select {
all: revert;
}
/* Styles globaux (12pt = 16px) */
body,
p,
span {
width: auto;
margin: 0;
font-family: "Marianne", serif !important;
font-size: 12pt;
line-height: 1.5;
color: #000000 !important;
background-color: #ffffff !important;
}
.back-cover {
break-before: page;
display: flex;
flex-direction: column;
justify-content: center;
}
.back-cover .region h2 {
margin-top: 0;
color: rgb(9, 57, 139);
font-size: 1.2rem;
}
.back-cover .view-id-partenaires .view-content img {
width: 5rem;
height: auto;
}
.back-cover .view-id-partenaires .view-content a[href^=http]:after {
display: none;
}
.back-cover .view-id-partenaires .views-row-wrapper {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
/* Espacements typographiques (15pt = 20px) */
p,
blockquote,
label,
ul,
ol {
margin-block: 0 15pt;
}
p:last-child {
margin-bottom: 0;
}
/* Titrages */
h1 {
margin-block: 0 24pt;
font-weight: 700;
font-size: 18pt;
line-height: 1.1;
}
h2 {
margin-block: 0 18pt;
font-weight: 700;
font-size: 16pt;
line-height: 1.1;
}
h3 {
margin-block: 0 15pt;
font-weight: 700;
font-size: 14pt;
}
h4 {
margin-block: 0 12pt;
font-weight: 700;
font-size: 12pt;
}
/* Classes dédiées print / no-print */
.print {
display: revert;
}
.no-print {
display: none;
}
/* Veuves / orphelines */
p,
blockquote {
orphans: 3;
widows: 3;
}
/* Pas de saut de page au sein de ces éléments */
blockquote,
ul,
ol,
figure,
table,
.paragraph,
footer,
.top_top,
.top_bottom {
page-break-inside: avoid;
}
/* Pas de saut de page après ces éléments */
h1,
h2,
h3,
h4,
caption,
.field--name-field-titre {
page-break-after: avoid;
}
/* Pas de saut de page après ces éléments */
h1 {
page-break-before: right;
}
/* Styles des liens */
a,
a:link,
a:visited {
background: transparent !important;
color: unset;
font-weight: 700;
text-decoration: underline !important;
}
/* Afficher l'URL des liens externes */
a[href^=http]:after,
a[href^=https]:after {
content: " (" attr(href) ")";
}
/* Masquer vidéos, header, nav… */
video,
object,
iframe,
nav {
display: none !important;
width: 0 !important;
height: 0 !important;
overflow: hidden !important;
}
/* Style page projet */
.page-node-type-projet .layout__region--top {
width: 100% !important;
padding-top: 0rem !important;
}
.page-node-type-projet .layout__region--top .top_top {
flex-direction: column !important;
}
.page-node-type-projet .layout__region--top .top_top .block-entity-fieldnodefield-photo {
width: 100% !important;
}
.page-node-type-projet .layout__region--top .top_top .slick-dots,
.page-node-type-projet .layout__region--top .top_top .slick-arrow {
display: none !important;
}
.page-node-type-projet .layout__region--top .top_top .top_right {
width: 100% !important;
}
.page-node-type-projet .layout__region--top .top_bottom {
width: 100% !important;
}
.page-node-type-projet .layout__region--first {
display: none;
}
.page-node-type-projet .layout__region--second {
flex: 0 0 100% !important;
margin-left: 10%;
margin-right: 10%;
width: 100% !important;
}
/* 1) Le header du site ne simprime jamais */
.layout-container header[role=banner] {
display: none !important;
}
/* 2) Couverture (print only) */
.cover.print-only {
display: flex !important;
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 2cm 1.5cm;
text-align: center;
page-break-after: always;
break-after: page;
background: #fff !important;
color: #000 !important;
}
/* Reprend tes règles “logo + titre” mais sur la cover */
.cover.print-only .region-header-top-left img {
max-height: 3cm;
height: auto;
width: auto;
}
.cover.print-only .region-header-top-rigth #block-eql-identitedusite {
font-size: 1.4rem;
text-transform: uppercase;
}
/* Optionnel : pas dURL affichée sur la cover */
.cover.print-only a[href^=http]:after {
display: none;
/* -------------------------
Paged.js : format + compteur
-------------------------- */
@page {
size: A4 portrait;
margin: 1.5cm;
@bottom-center {
content: "Page " counter(page) " / " counter(pages);
font-size: 9pt;
}
}
/* 2) MODE DEBUG : voir la version print en écran via body.debug-print */
@media screen {
body.debug-print {
/* Reset général */
/* Pas de numéro sur cover / back-cover */
.cover {
page: cover;
}
.back-cover {
page: backcover;
}
@page cover {
@bottom-center {
content: none;
}
body.debug-print * {
all: unset;
display: revert;
box-sizing: border-box;
}
@page backcover {
@bottom-center {
content: none;
}
body.debug-print img {
max-width: 100%;
}
/* -------------------------
PRINT (Ctrl+P)
-------------------------- */
@media print {
/* Cache lUI du site */
header[role=banner],
footer[role=contentinfo],
nav,
.slick-arrow,
.slick-dots,
.layout__region--first {
display: none !important;
}
body.debug-print ul {
list-style-type: none;
.layout__region--top {
flex: 0 1 100% !important;
}
body.debug-print input,
body.debug-print textarea,
body.debug-print select {
all: revert;
.layout__region--top .block-entity-fieldnodefield-photo,
.layout__region--top .top_right {
width: 100% !important;
}
body.debug-print {
/* Styles globaux (12pt = 16px) */
.top_top {
flex-direction: column !important;
}
body.debug-print body,
body.debug-print p,
body.debug-print span {
width: auto;
margin: 0;
font-family: "Marianne", serif !important;
font-size: 12pt;
line-height: 1.5;
color: #000000 !important;
background-color: #ffffff !important;
.layout__region--second {
flex: 0 1 100% !important;
margin: auto;
margin-left: 3rem;
}
body.debug-print .back-cover {
break-before: page;
display: flex;
flex-direction: column;
/* Cover */
.cover.print-only {
display: flex !important;
min-height: 100vh;
align-items: center;
justify-content: center;
text-align: center;
break-after: page;
}
body.debug-print .back-cover .region h2 {
margin-top: 0;
color: rgb(9, 57, 139);
font-size: 1.2rem;
/* Back cover */
.back-cover.print-only {
break-before: page;
}
body.debug-print .back-cover .view-id-partenaires .view-content img {
width: 5rem;
height: auto;
}
body.debug-print .back-cover .view-id-partenaires .view-content a[href^=http]:after {
display: none;
}
body.debug-print .back-cover .view-id-partenaires .views-row-wrapper {
.back-cover.print-only .views-row-wrapper {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
body.debug-print {
/* Espacements typographiques (15pt = 20px) */
/* Optionnel : éviter lURL après liens sur la cover */
.cover.print-only a[href^=http]::after,
.cover.print-only a[href^=https]::after {
content: "" !important;
}
body.debug-print p,
body.debug-print blockquote,
body.debug-print label,
body.debug-print ul,
body.debug-print ol {
margin-block: 0 15pt;
}
body.debug-print p:last-child {
margin-bottom: 0;
}
body.debug-print {
/* Titrages */
}
body.debug-print h1 {
margin-block: 0 24pt;
font-weight: 700;
font-size: 18pt;
line-height: 1.1;
}
body.debug-print h2 {
margin-block: 0 18pt;
font-weight: 700;
font-size: 16pt;
line-height: 1.1;
}
body.debug-print h3 {
margin-block: 0 15pt;
font-weight: 700;
font-size: 14pt;
}
body.debug-print h4 {
margin-block: 0 12pt;
font-weight: 700;
font-size: 12pt;
}
body.debug-print {
/* Classes dédiées print / no-print */
}
body.debug-print .print {
display: revert;
}
body.debug-print .no-print {
display: none;
}
body.debug-print {
/* Veuves / orphelines */
}
body.debug-print p,
body.debug-print blockquote {
orphans: 3;
widows: 3;
}
body.debug-print {
/* Pas de saut de page au sein de ces éléments */
}
body.debug-print blockquote,
body.debug-print ul,
body.debug-print ol,
body.debug-print figure,
body.debug-print table,
body.debug-print .paragraph,
body.debug-print footer,
body.debug-print .top_top,
body.debug-print .top_bottom {
page-break-inside: avoid;
}
body.debug-print {
/* Pas de saut de page après ces éléments */
}
body.debug-print h1,
body.debug-print h2,
body.debug-print h3,
body.debug-print h4,
body.debug-print caption,
body.debug-print .field--name-field-titre {
page-break-after: avoid;
}
body.debug-print {
/* Pas de saut de page après ces éléments */
}
body.debug-print h1 {
page-break-before: right;
}
body.debug-print {
/* Styles des liens */
}
body.debug-print a,
body.debug-print a:link,
body.debug-print a:visited {
background: transparent !important;
color: unset;
font-weight: 700;
text-decoration: underline !important;
}
body.debug-print {
/* Afficher l'URL des liens externes */
}
body.debug-print a[href^=http]:after,
body.debug-print a[href^=https]:after {
content: " (" attr(href) ")";
}
body.debug-print {
/* Masquer vidéos, header, nav… */
}
body.debug-print video,
body.debug-print object,
body.debug-print iframe,
body.debug-print nav {
display: none !important;
width: 0 !important;
height: 0 !important;
overflow: hidden !important;
}
body.debug-print {
/* Style page projet */
}
body.debug-print .page-node-type-projet .layout__region--top {
width: 100% !important;
padding-top: 0rem !important;
}
body.debug-print .page-node-type-projet .layout__region--top .top_top {
flex-direction: column !important;
}
body.debug-print .page-node-type-projet .layout__region--top .top_top .block-entity-fieldnodefield-photo {
width: 100% !important;
}
body.debug-print .page-node-type-projet .layout__region--top .top_top .slick-dots,
body.debug-print .page-node-type-projet .layout__region--top .top_top .slick-arrow {
}
/* -------------------------
SCREEN preview (Paged.js)
-------------------------- */
@media screen {
/* En écran normal : cacher print-only */
body:not(.use-paged) .print-only {
display: none !important;
}
body.debug-print .page-node-type-projet .layout__region--top .top_top .top_right {
width: 100% !important;
/* Fond et affichage pages */
body.use-paged {
background: #ddd;
}
body.debug-print .page-node-type-projet .layout__region--top .top_bottom {
width: 100% !important;
body.use-paged .pagedjs_pages {
width: 100%;
padding: 2rem 0;
}
body.debug-print .page-node-type-projet .layout__region--first {
display: none;
}
body.debug-print .page-node-type-projet .layout__region--second {
flex: 0 0 100% !important;
margin-left: 10%;
margin-right: 10%;
width: 100% !important;
}
.cover.print-only {
display: none;
}
body.debug-print .print-page {
width: 210mm;
height: 297mm;
margin: 2rem auto;
body.use-paged .pagedjs_page {
margin: 1rem auto;
background: #fff;
box-shadow: 0 0 0 1px red;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
}
/* cacher les éléments print-only à l'écran */
.print-only {
display: none;
body.use-paged .pagedjs_pagebox {
width: 210mm;
min-height: 297mm;
margin: 0 auto;
background: #fff;
}
/* Paged.js met le contenu dans .pagedjs_page_content : on évite les surprises */
body.use-paged .pagedjs_page_content {
display: block;
}
}
/*pages*/