<!DOCTYPE html>
<html>
<head>
<style>
body {
width:10cm;
max-width:100%;
margin:auto;
}
.line {
background-color:#77AAFF;
}
table {
width:100%;
background-color:#CCCCCC;
margin-left:0.25cm;
margin-right:0.25cm;
}
</style>
</head>
<body>
<div class="line">Div имеет длину 100%, чётко умещается между границами</div>
<table cellpadding="0">
<tr>
<td>Таблица немного сдвинута вправо, выходит за границу</td>
</tr>
</table>
</body>
</html>
Обернуть таблицу в div и задать ему необходимый margin:
<!DOCTYPE html>
<html>
<head>
<style>
body {
width:10cm;
max-width:100%;
margin:auto;
}
.line {
background-color:#77AAFF;
}
.wrapper {
margin-left:0.25cm;
margin-right:0.25cm;
}
table {
width:100%;
background-color:#CCCCCC;
}
</style>
</head>
<body>
<div class="line">Div имеет длину 100%, чётко умещается между границами</div>
<div class="wrapper">
<table cellpadding="0">
<tr>
<td>Теперь таблица тоже умещается между границами и имеет необходимые отступы</td>
</tr>
</table>
</div>
</body>
</html>
Использовать calc():
<!DOCTYPE html>
<html>
<head>
<style>
body {
width:10cm;
max-width:100%;
margin:auto;
}
.line {
background-color:#77AAFF;
}
table {
margin:auto;
width:calc(100% - 0.5cm);
background-color:#CCCCCC;
}
</style>
</head>
<body>
<div class="line">Div имеет длину 100%, чётко умещается между границами</div>
<table cellpadding="0">
<tr>
<td>Теперь таблица тоже умещается между границами и имеет необходимые отступы</td>
</tr>
</table>
</body>
</html>
Замени у таблицы width:100%; на max-width:100%;
Сборка персонального компьютера от Artline: умный выбор для современных пользователей