Я пытаюсь создать несколько графических режимов растяжения для элемента изображения в документе SVG. Следует отметить, что решение должно работать без JavaScript и CSS, и у меня нет никаких предварительных знаний о размерах изображения (просто о пространстве, где должно быть размещено изображение).Центрированное выравнивание элемента изображения в документе SVG
Для униформы, равномерного заполнения и заполнения, это действительно не проблема. Образцы ниже размещение изображения на площадь 400x100 пикселей:
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500">
<!-- GraphicStretchMode: UniformToFill -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" x="10" y="10" width="400" height="100">
<image xlink:href="https://thereforeigeek.files.wordpress.com/2013/07/nessy.jpg" height="100%" width="100%" preserveAspectRatio="xMidYMid slice"/>
<rect x="0" y="0" width="400" height="100" fill="transparent" stroke="#630" stroke-width="5px"/>
</svg>
<!-- GraphicStretchMode: Fill -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" x="10" y="130" width="400" height="100">
<image xlink:href="https://thereforeigeek.files.wordpress.com/2013/07/nessy.jpg" height="100%" width="100%" preserveAspectRatio="none"/>
<rect x="0" y="0" width="400" height="100" fill="transparent" stroke="#630" stroke-width="5px"/>
</svg>
<!-- GraphicStretchMode: Uniform -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" x="10" y="250" width="400" height="100">
<image xlink:href="https://thereforeigeek.files.wordpress.com/2013/07/nessy.jpg" height="100%" width="100%" preserveAspectRatio="xMidYMid meet"/>
<rect x="0" y="0" width="400" height="100" fill="transparent" stroke="#630" stroke-width="5px"/>
</svg>
</svg>
Тем не менее, я не получаю режим простирания None сделаны (немасштабированный, нерастянутым в оригинальном размере, но в центре!) , (И это было то, что я изначально считал самым простым)
Любые подсказки или идеи?
мне было известно, что 100% в моих трех режимах выше, относятся к размеру родительского элемента SVG - это было с целью достижения режима протяжения. ;-) Было просто интересно, нет ли способа получить режим растяжения без центрирования. Оставляя ширину и высоту изображения на изображении, действительно разрешает незамасленный (растянуть режим нет) pic, НО он не центрирован, а всегда в левом верхнем углу. Поэтому я спросил себя, могут ли некоторые преобразования или viewbox помочь. –
Я обновил свой ответ немного подробнее. –
Спасибо, Пол, похоже, единственное решение, чтобы сосредоточить его. К сожалению, у меня нет никаких шансов в отношении требования «без предварительных знаний о размерах изображения». :( –