sexta-feira, novembro 20, 2009

web2py - rounded corners - chrome, safari e firefox

in your view write
-----------------------------------------------
<div class="box">
test
</div>

in static/base.css add
-----------------------------------------------
.box {
-moz-border-radius: 5px;/*for firefox3*/
-webkit-border-radius: 5px;/*for safari and chrome*/
background-color: rgb(249,249,249);
background-image: url("../default/border_radius?
r=4&color=249,249,249&bg=235,232,230");/*for opera*/
}

in controllers/default.py add
-----------------------------------------------
def border_radius():
import re
try:
radius = request.vars['r']
except KeyError:
radius = 5
try:
color = request.vars['color']
if re.match('\d{3},\d{3},\d{3}',color):
color = 'rgb(%s)'%color
except KeyError:
color = 'rgb(249,249,249)'
try:
bg = request.vars['bg']
if re.match('\d{3},\d{3},\d{3}',bg):
bg = 'rgb(%s)'%bg
except KeyError:
bg = 'rgb(235,232,230)'
import gluon.contenttype
response.headers['Content-Type']= gluon.contenttype.contenttype
('.svg')+';charset=utf-8'
return '''<?xml version="1.0" ?> <svg xmlns="http://www.w3.org/
2000/svg
"> <rect fill="%s" x="0" y="0" width="100%%" height="100%%" />
<rect fill="%s" x="0" y="0" width="100%%" height="100%%" rx="%spx" />
</svg>'''%(bg,color,radius)
-----------------------------------------------
you'r done

for WebKit (Safari, Chrome) and Gecko (Firefox) the experimental css3
property is used to create the rounded corners and for Opera an SVG
image with rounded corners is generated and used as background

happily stolen from http://home.e-tjenesten.org/~ato/2009/08/border-radius-opera

Why? Because I did not want to create complicated tables/complicated
css and java scrip rounded corners always made my site very slow and i
dont give a .. for IE.

Hint: you can also do something like
background-image: url("../default/border_radius?
r=50&color=red&bg=blue");
--
Atenciosamente

--
=========================
Alexandre Andrade
Hipercenter.com

Nenhum comentário: