De acuerdo, lo he hecho así pero ahora no me aparece el botón, este es el código entero para que puedas probarlo en el navegador (solo lo he aplicado en el Nombre, cuándo lo tenga solucionado lo aplicaré al correo y a la información adicional, este es el código completo tal y como está ahora :
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Vipefy invisible </title>
<head>
<script type="text/javascript">
function muestra(nombre){
document.getElementById(nombre).style='block';
}
</script>
<style>
</style>
</head>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" name="perfil" onload="mostrarcampos()";>
<input type="button" onclick="muestra('nombre')" id="nombre" value="Nombre" style="display:none;">
<input type="button" value="Correo electronico" id="mail" onclick="document.perfil.hidden.value='showmail'" /><br>
<input type="button" value="Informacion adicional" id="opcional" onclick="document.perfil.hidden.value='showadicional'" />
<input type="hidden" value="" name="hidden" id="hidden" />
</form>
<div id="nameformdiv" style="display.none;">
<p>Nombre </p>
<p><input type="text" id="nameformdiv.name" class="input" /></p>
<p>Apellidos </p>
<p><input type="text" id="nameformdiv.surname" class="input" /></p>
</div>
<div id="mailformdiv" style="display.none;">
<p>Correo Electronico</p>
<p><input type="text" id="mailformdiv.correo" class="input" /></p>
</div>
<div id="opcionalformdiv" style="display.none;">
<p>Ciudad de residencia</p>
<p><input type="text" id="opcionalformdiv.ciudad" class="input" /></p>
</div>
</body>
</html>