Неверное отображение элемента<hr> между JsFiddle и Chrome
У меня проблема в том, что я пытаюсь сделать прямую линию между левой / правой границей. Но поведение неожиданно. Вот ссылка JsFiddle, показывающая строку, отображающую ПОЧТИ правильно. Проблема в том, что линия должна выровняться против правой границы, но теперь оставить небольшое пространство. Однако, если вы откроете этот файл в Chrome, вы увидите, что линия выходит за правую границу и бесконечно продолжается вправо. Чем это вызвано?
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table.vf {
border-collapse: collapse;
width: 800px;
table-layout: fixed;
}
td.vf {
display: table-cell;
width: 40px;
overflow: auto;
padding: 0px;
margin: 0px;
text-align: center;
vertical-align: center;
}
td.edges {
border-right: 1px solid blue;
border-left: 1px solid blue;
}
td span {
background-color: #fff;
color: #000;
}
hr {
border: none;
color: blue;
background-color: blue;
height: 1px;
position: absolute;
display: block;
width: 100%;
z-index: -1;
}
hr {
margin:10px 0;
}
</style>
</head>
<body>
<table class="vf">
<tr>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
<td class="vf"></td>
</tr>
<tr>
<td colspan="2" class="vf"></td>
<td colspan="10" class="vf edges">
<hr/><span><a href="#">TEST</a></span>
</td>
</tr>
</table>
</body>
</html>
1 ответ
Это происходит потому, что у вас ширина таблицы 800px, а у вас абсолютный hr и ширина 100%, поэтому он не будет слушать td внутри. Добавьте положение относительно тд, как показано ниже;
td.vf {
display: table-cell;
margin: 0;
overflow: auto;
padding: 0;
position: relative; //// Added style
text-align: center;
width: 40px;
}