Portál AbcLinuxu, 10. listopadu 2025 05:59
Ř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.