28198 sujets

CSS et mise en forme, CSS3

Bonjour tout le monde,

Je souhaiterai réalisé pour mon site web des titres de ce type (pièce jointe). Problème, impossible de trouver une solution pour appliquer le pattern qui est décalé en fond. Je pensais appliquer un background ou une shadow-box mais rien ne fonctionne. Est-ce possible à réaliser en CSS ? Je préfèrerai éviter d'utiliser des images pour avoir des titres dans ma page.

Merci d'avance !

upload/1739460803-87006-titre.jpg
Je reviens sur les titres,

Tout fonctionne bien avec le codepen, j'ai remplacé le gradient en fond par une image. upload/1739522046-87006-capturedancran2025-02-1409315.png

Par contre lorsque j'utilise le code dans mon site voici ce que j'obtiens. upload/1739522115-87006-capturedancran2025-02-1409301.png

L'image avec le pattern est bien en arrière plan mais le cadre se décale... je ne trouve hélas pas la solution, mes connaissances étant limitées en CSS.
Modérateur
Bonjour,

Sur la deuxième image, il manque soit un padding ou la structure en deux element n'est pas respectée.
L'exemple utilise cette structure:
<hn>
   <b> Texte du titre </b>
</hn>


- le parent reçoit le fond, est découpé sur deux coin et dégage une zone sur le bas et la gauche avec un padding.
- l'enfant reçoit un fond blanc , une bordure et un display:block .

En utilisant une classe, on peut simplifier pour la réutiliser plusieurs fois en respectant une structure composée de deux éléments.

<h2 class="titreBleu">
  <b>un titre</b>
</h2>

et
.titreBleu {
  padding: 0 0.5em 0.5em 0;
  color: #0008c2;
  background: url(pattern.ext);
  clip-path: polygon(
    calc(100% - 0.51em) 0,
    calc(100% - 0.51em) 0.51em,
    100% 0.51em,
    100% 100%,
    0.51em 100%,
    0.51em calc(100% - 0.51em),
    0 calc(100% - 0.51em),
    0 0
  );
}
.titreBleu b {
  display: block;
  background: white;
  border: solid 10px;
  padding: 0.25em 0.5em;
}


Cordialement