2017-02-10 6 views
0

Я внедряю SVG шириной 100% и автоматической высотой. Максимальная высота составляет 80% от области просмотра.Позиция SVG слева при встраивании через img

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Test</title> 
    <style> 
     html, body{ 
      width: 100%; 
      height: 100%; 
     } 
     img{ 
      width: 100%; 
      height: auto; 
      max-height: 80vh; 
     } 
    </style> 
</head> 
<body> 
    <img src="example.svg"> 
</body> 
</html> 

Если SVG не вписывается в 80% экрана просмотра, он будет обрезать указанную максимальную высоту. Проблема заключается в том, что это также CenterES в SVG:

centerd red area

Что мне нужно, чтобы сохранить вложение через <img> как это то, что я получаю от CMS и расположить SVG влево, как background-position: left top; бы делать. Как разместить содержимое <img> влево, даже если изображение обрезается?

+0

Белое пространство находится в вашем svg. Поэтому вам нужно использовать какое-то программное обеспечение, например иллюстратор или какой-либо онлайн-инструмент для удаления этого пробела. –

+0

Нет, я проверил файл с помощью Illustrator, а пробелы генерируются стилями CSS/HTML. Он не включен в SVG! – dude

+0

вы можете поделиться демонстрацией скрипки ..? –

ответ

1

Попробуйте добавить preserveAspectRatio="xMinYMin meet" укоренить SVG элемент файла SVG, как это.

<svg width="200px" height="200px" 
    viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" 
    preserveAspectRatio="xMinYMin meet"> 
    <rect width="100%" height="100%" fill="red"/> 
</svg> 
+0

Он работает, но делает изображение переполненным вертикально – dude

+0

Do вы хотите, чтобы preserveAspectRatio = "xMinYMin meet" или preserveAspectRatio = "none"? – defghi1977

+0

preserveAspectRatio = "xMinYMin meet" работает, обновите свой ответ, и я его приму – dude

0

Вы пробовали делать:

float:left; 
+0

Это не помогает, потому что изображение имеет ширину 100%, поэтому не имеет значения, есть ли float: left ;, display: block или display: inline-block – dude