Okay, ich habs herausbekommen... das display:inline-table hat gestört.
So lautet die funktionierende CSS:
* {
margin: 0px;
padding: 0px;
}
html,body {
height: 100%;
}
#tiles {
width: 100%;
height: 100%;
list-style: none;
}
#tiles li {
width: 33.33%;
height: 50%;
float: left;
overflow: hidden;
position: relative;
top: 0px;
left: 0px;
}
#tiles a {
display:block;
width: 100%;
height: 100%;
text-align: center;
text-decoration: none;
color: inherit;
border: 5px solid black;
background: #8B2404;
padding:33.33% 0% 33.33% 0%; /* vertical alignment */
}
#tiles a:focus,
#tiles a:hover,
#tiles a:active {
border: 1px solid black;
background: #ffffff;
}
#tiles li ul {
width:100%;
height:100%;
position: absolute;
top: 0px;
left: 0px;
background-color: #000000;
display: none;
}
#tiles li:focus ul,
#tiles li:hover ul,
#tiles li:active ul {
display: block;
}
#tiles li ul li {
width: 50%;
}