Как убрать пробел между <svg>и <td>в HTML5? - PullRequest
6 голосов
/ 30 июня 2011

Я использую код ниже, чтобы встроить SVG в HTML5. Единственная проблема, которую я сейчас не могу решить, - это то, что между <svg> и <td> остается много места при просмотре HTML-файла в браузере. Может кто подскажет как убрать пробел?

Заранее спасибо!

Подробнее:

Извините, я забыл сказать, какой браузер я использую. Я обнаружил, что когда я использую IE9, между SVG и левой и правой панелью остается много места. Однако, когда я использую Chrome, между SVG и верхней и нижней панелью остается много места. Это довольно странно.

Я редактирую код ниже. я добавить svg {margin-top: 0px; край дно: 0px; Маржа-направо: 0px; Левое поле: 0px; фон цвет: желтый;}

в коде. Что я хочу сделать, это удалить желтое пространство. Теперь вопрос становится более конкретным.


<!DOCTYPE html><html>
<head>

<title>SarShips: scs</title>
<style type="text/css">

table 
{
border-collapse:collapse;
}
table, td, th
{
border:1px solid black;
}

table {margin-left:auto;margin-right:auto}
tr.odd {background-color:#E0E0F0}
tr.even {background-color:#F0F0FF}
th {font:22px sans-serif;background-color:#98AFC7;color:white;padding:6px}
td.e {font:bold 15px serif;text-align:right;padding:4px}
td.v {font:15px monospace;text-align:left;padding:4px}
td.i {padding:4px}
p {text-align:center}
      svg {margin-top:0px;
           margin-bottom:0px;
           margin-right:0px;
           margin-left:0px;background-color:yellow;}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>Parameters</th><th>Imagette</th><th>Profile</th><th>Remarks</th>
</tr>
</thead>
<tbody>
<tr>
<td>

</td><td class="i"></td>

<td class="i">
<svg width="100%" height="100%" viewBox="0 0 400 400" >
<g>
<rect width="400" height="400" style="stroke-width:1;          stroke:rgb(0,0,0)"></rect>
<circle cx="200" cy="200" r="200" stroke="green" stroke-width="2"></circle>
<circle cx="200" cy="200" r="160" stroke="green" stroke-width="2"></circle>
<circle cx="200" cy="200" r="120" stroke="green" stroke-width="2"></circle>
<circle cx="200" cy="200" r="80" stroke="green" stroke-width="2"></circle>
<circle cx="200" cy="200" r="40" stroke="green" stroke-width="2"></circle>
<path d="M250 150 L150 350 L350 350 Z" style="fill:rgb(0,0,255);stroke-width:1;          stroke:rgb(0,0,0)"></path>
<path d="M200,200 L200,0 A200 200 0 0 1 200 400 Z" style="fill:green;stroke:green;stroke-width:5;          fill-opacity:0.5;stroke-opacity:0.9"></path>
<path d="M150 250 S150 150 170 170 L220 150Z" style="fill:pink;stroke:blue;stroke-width:1;          fill-opacity:0.9;stroke-opacity:0.9"></path>
</g>
</svg>
</td><td></td>
</tr>

</tbody>
</table>
</body>
</html>

Ответы [ 4 ]

24 голосов
/ 01 июля 2011

SVG встроен и находится внутри ячейки таблицы, поэтому попробуйте добавить display:block к svg и width / height к <td>, чтобы SVG знал, из чего рассчитывается процент.

2 голосов
/ 01 июля 2011

меняю

svg {margin-top: 0px;
край дно: 0px;
Маржа-направо: 0px;
Левое поле: 0px; фон цвет: желтый;}

будет

svg {margin-top: 0px;
край дно: 0px;
Маржа направо: -150px;
Левое поле: 0px; фон цвет: желтый;}

Тогда желтое пространство исчезает в IE9. Это решение не работает в Chrome ...

1 голос
/ 10 сентября 2011

Это похоже на проблему с размером SVG по умолчанию для webkit 350px на 150px.

Это, пожалуй, моя любимая статья об этом: http://henkelmann.eu/2010/12/16/display_svg_image_same_size_in_decent_browsers

Итак, проблема в том, что вам нужно либо установить жесткий размер пикселя для svg, либо установить жесткий размерваш контейнер.Я не нашел способа разрешить динамическое масштабирование (если вы не делаете это в javascript, решение которого можно найти в комментариях здесь: Как мне масштабировать упрямый SVG, встроенный с тегом ? ).

1 голос
/ 30 июня 2011

Я предполагаю, что вы имеете в виду пространство под изображением SVG, потому что в противном случае вы просто хотите 4px Пространство ниже берется из пробела, который ячейка таблицы содержит в дополнение к вашему изображению. Вы можете легко «исправить» это, изменив высоту текста:

td.i {padding:4px;line-height:0px;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...