Существует 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>
Ответы
Ответ 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>