Perhaps a bit delayed, but how about giving this one a try:
CSS
.CustomRow {
text-align: center;
}
.CustomKey {
display: inline-block;
border: 1px solid #dcdcdc;
padding: 10px;
margin-bottom: 5px;
-moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow: inset 0px 1px 0px 0px #ffffff;
box-shadow: inset 0px 1px 0px 0px #ffffff;
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
background: -moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
cursor: pointer;
display: inline-block;
color: #777777;
font-family: arial;
font-size: 15px;
font-weight: bold;
font-style: normal;
height: 50px;
line-height: 50px;
width: 75px;
text-decoration: none;
text-align: center;
text-shadow: 1px 1px 0px #ffffff;
}
.CustomKey:hover {
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
background: -moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
background-color: #dfdfdf;
}
.CustomKey:active {
position: relative;
top: 1px;
}
.CustomRow .active {
background-color: #0c57a8;
-moz-box-shadow: inset 0px 1px 0px 0px #9fc5f2;
-webkit-box-shadow: inset 0px 1px 0px 0px #9fc5f2;
box-shadow: inset 0px 1px 0px 0px #9fc5f2;
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #0c57a8), color-stop(1, #043078) );
background: -moz-linear-gradient( center top, #0c57a8 5%, #043078 100% );
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0c57a8', endColorstr='#043078');
border: 1px solid #2358a1;
display: inline-block;
text-shadow: 1px 1px 0px #07294a;
color: #ffffff;
}
.CustomRow .active:hover {
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #043078), color-stop(1, #0c57a8) );
background: -moz-linear-gradient( center top, #043078 5%, #0c57a8 100% );
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#043078', endColorstr='#0c57a8');
background-color: #043078;
}
HTML
<!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">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Custom Keyboard</title>
<link href="style.customkeyboard.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="custom-keyboard">
<div class="CustomRow">
<span class="CustomKey">Q</span>
<span class="CustomKey">W</span>
<span class="CustomKey>E</span>
<span class="CustomKey">R</span>
<span class="CustomKey">T</span>
<span class="CustomKey">Y</span>
<span class="CustomKey">U</span>
<span class="CustomKey">I</span>
<span class="CustomKey">O</span>
<span class="CustomKey">P</span>
</div>
<div class="CustomRow">
<span class="CustomKey active">A</span>
<span class="CustomKey">S</span>
<span class="CustomKey">D</span>
<span class="CustomKey">F</span>
<span class="CustomKey">G</span>
<span class="CustomKey">H</span>
<span class="CustomKey">J</span>
<span class="CustomKey">K</span>
<span class="CustomKey">L</span>
</div>
<div class="CustomRow">
<span class="CustomKey">Z</span>
<span class="CustomKey">X</span>
<span class="CustomKey">C</span>
<span class="CustomKey">V</span>
<span class="CustomKey">B</span>
<span class="CustomKey">N</span>
<span class="CustomKey">M</span>
</div>
</div>
</body>
I have updated the class names for better integration into larger projects, as generic names like '.key' may cause conflicts.
Check out my custom fiddle link:
http://jsfiddle.net/ferencik/EpnL3/