Last Comment. Cell padding is the space between the cell edges and the cell content. This is the reason why; From MDN, to use padding in tables, you need to have border-collapse: separate; so as to allow for the use of border-spacing because border-spacing is a factor in the calculation of distance between the outer table edge and the edge of the outer cells (see quotes from MDN below). The following snippet should do want you want too: See the updated version of the fiddle: http://jsfiddle.net/feeela/fPuQ6/3/. [Solved] Padding does not work in iE? | 9to5Answer Stack Overflow for Teams is moving to its own domain! The padding on the table is working fine ? Also check if the width of h2 is being set somewhere.. Hit the F12 in your browser and inspect the element to see the styles for it.. e.g. .section::before { height: 1em; display: table-row; content: ''; } This way we basically add a new (empty) row which we can use to add some space at the beginning of our <tbody> elements. but the second tr with the third tr have. Retrieve the position (X,Y) of an HTML element. You can also set border-spacing: 0px; to cancel out the addition of border-spacing to the padding. How can I set the default value for an HTML