Неверное отображение элемента<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;
}
Другие вопросы по тегам