Подтвердить что ты не робот

Существует 4px разрыв ниже холстов/видео/аудио элементов в HTML5

При использовании HTML5, если вы поместите элемент canvas/video/audio/svg в div, под этими элементами будет пробел 4px. Я тестировал код ниже почти во всех браузерах, поддерживающих HTML5, к сожалению, у них все те же проблемы.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bug</title>
</head>
<body>
<div style="border: 1px solid blue">
<canvas width="200" height="100" style="border: 1px solid yellow"></canvas>
</div>
</body>
</html>
4b9b3361

Ответ 1

Это потому, что они являются встроенными элементами с изменяемым размером height (большинство элементов inline не изменяются в явном виде). Если вы установите значение display: block;, пробел исчезнет. Вы также можете установить vertical-align: top; для достижения того же результата.

Демо: http://jsfiddle.net/ThinkingStiff/F2LAK/

HTML:

<div class="container">
    <canvas width="200" height="100"></canvas>
</div>
<div class="container">
    <canvas id="block" width="200" height="100"></canvas>
</div>

CSS

.container {
    border: 1px solid blue;
}

canvas {
    border: 1px solid red;
}

#block {
    display: block;
}

Вывод:

enter image description here

Ответ 2

Margin -5px работает в Firefox.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bug</title>
</head>
<body>
<div style="border: 1px solid blue">
<canvas width="200" height="100" style="border: 1px solid yellow; margin-bottom:-5px"></canvas>
</div>
</body>
</html>