.link-overlay { // Force link to fill box. // Link must be first in container. // Container must have positioning other than static. position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: 0; // Raise all other links above overlay link. ~ a, ~ * a { position: relative; z-index: 1; } } // That's it, From here on out are just page styles. .module { position: relative; // important, needs positioning. width: 20em; margin: 1em auto; background: white; padding: 1em; box-shadow: 5px 5px rgba(#000, .5); } h2 { margin: 0; } body { background: #0B5C81; font-family: sans-serif; }