Actually, your div.toc
is properly positioned. The problem is with your <iframe>
.
Remember your box model... width and height is calculated independently from the margin and padding...
So, by having width: 100%;
on your iframe.toc
plus a margin-left: 0.5em
, you are basically telling the browser the following:
Use the full width of the parent element and offset it 0.5em
to the left.
Total effective width: 100% + 0.5em
What you really want to say is the following:
Substract 0.5em
from the full width of the parent element to use as padding on the left and use this as width.
Total effective width: 100% - 0.5em (desired)
The solution is therefore simple... Remove the margin-left
from iframe.toc
and put a padding-left: 0.5em
on div.toc
.
div.toc {
background-color: #f0f0f0;
position: fixed;
top: 5em;
right: 0;
width: 21em;
height: 38em;
padding-left: .5em;
border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-top: 1px solid #ccc;
z-index: 1;
}
iframe.toc {
background-color: #f0f0f0;
border: 0;
width: 100%;
height: 30em;
border-bottom: 1px solid #ccc;
}