Portál AbcLinuxu, 12. května 2025 04:47
Řešení dotazu:
.křivej_nadpis { display: block; padding: 0; width: šířka obrázku; height: výška obrázku; background: barva top left no-repeat url(obrázek); }
<h2 class="křivej_nadpis">nadpis <div class="ramecek levy"></div> <div class="ramecek pravy"></div> <div class="ramecek horni"></div> <div class="ramecek spodni"></div> </h2>CSS:
.křivej_nadpis { display: block; padding: A B C D; position: relative; background: libovolné pozadí nadpisu; } .křivej_nadpis .ramecek { position: absolute; padding: 0px; margin: 0px; background; transparent top left; } .křivej_nadpis .ramecek.horni { /* žádná mezera před 3. tečkou */ top: 0px; left: 0px; width: 100%; height: A; background-image: url(horní okraj obrázku); z-index: dle potřeby a obrázků; } .křivej_nadpis .ramecek.pravy { top: 0px; right: 0px; width: B; height: 100%; background-image: url(pravý okraj obrázku); z-index: dle potřeby a obrázků; } .křivej_nadpis .ramecek.spodni { bottom: 0px; left: 0px; width: 100%; height: C; background-image: url(spodní okraj obrázku); z-index: dle potřeby a obrázků; } .křivej_nadpis .ramecek.levy { top: 0px; left: 0px; width: D; height: 100%; background-image: url(levý okraj obrázku); z-index: dle potřeby a obrázků; }V podstatě je to velmi jednoduché. Do nadpisu jsou přidané čtyři divy, které jsou prázdné a absolutně pozicované vrámci stylovaného nadpisu. Každý z těch čtyř divů překryje jednu hranu nadpisu a přilehlé rohy. Padding nadpisu se pak postará o to, aby obsah nebyl překrytý. Jediné co, tak to potřebuje jednobarevné okolní pozadí.
<h2 class="křivej_nadpis"> <div class="ramecek levy"> <div class="ramecek pravy"> <div class="ramecek horni"> <div class="ramecek spodni"> nadpis </div> </div> </div> </div> </h2>V CSS je pak jen potřeba nastavit vhodný padding a obrázek na pozadí.
.křivej_nadpis { padding: 0px; background: transparent; position: relative; /* aby margin sousedů nekecal do umístění obsahu */ } .křivej_nadpis .ramecek { display: block; padding: 0px; margin: 0px; background: transparent; } .křivej_nadpis .ramecek.horni { padding-top: A; background: transparent top center no-repeat url(horní okraj); } .křivej_nadpis .ramecek.pravy { padding-right: B; background: transparent center right no-repeat url(pravý okraj); } .křivej_nadpis .ramecek.spodni { padding-bottom: C; background: transparent bottom center no-repeat url(spodní okraj); } .křivej_nadpis .ramecek.levy { padding-left: D; background: transparent center left no-repeat url(levý okraj); }Je to bezproblémová technika a lze vykouzlit i skutečně průhledné okraje. Na druhou stranu je trošku těžší umístit jednotlivá pozadí do jednoho obrázku, aby se ušetřily HTTP requesty.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.