quinta-feira, abril 22, 2010

Bordas usando apenas CSS

Li em algum artigo sobre como fazer bordas sem usar javascript ou imagem. Achei interessante e útil então vou deixar arquivado aqui. Vou ficar devendo o link, mas assim que achar posto aqui.

A técnica é simples, basta criar divs ou outro elemento com margens diferentes na parte superior e inferior do conteúdo. De forma que uma margem fique menor ou maior que a outra gradativamente.

O CSS fica assim:

/*ROUNDED BORDER DIV*/
#Borda h1, #Borda h2, #Borda p {margin:0 10px; letter-spacing:1px; padding:0;}
#Borda h1 {font-size:2.5em; color:#fff;}
#Borda h2 {font-size:2em;color:#06a; border:0;}
#Borda p {padding-bottom:0.5em;}
#Borda h2 {padding-top:0.5em;}
#Borda {background: transparent;}

.xtop, .xbottom {display:block; background:transparent; font-size:1px;}
.xb1, .xb2, .xb3, .xb4 {display:block; overflow:hidden;}
.xb1, .xb2, .xb3 {height:1px;}
.xb2, .xb3, .xb4 {background:#E5E5E5; border-left:1px solid #CCC; border-right:1px solid #CCC;}
.xb1 {margin:0 5px; background:#CCC;}
.xb2 {margin:0 3px; border-width:0 2px;}
.xb3 {margin:0 2px;}
.xb4 {height:2px; margin:0 1px;}

.Conteudo {display:block; background:#E5E5E5; border:0 solid #CCC; border-width:0 1px;}


E no HTML.

<div id="Borda">
    <b class="xtop">
        <b class="xb1"></b>
        <b class="xb2"></b>
        <b class="xb3"></b>
        <b class="xb4"></b>
    </b>
    <div class="Conteudo">
        CONTENT
    </div>
    <b class="xbottom">
        <b class="xb4"></b>
        <b class="xb3"></b>
        <b class="xb2"></b>
        <b class="xb1"></b>
    </b>
</div>