Css svg width auto

How to make an svg scale with its parent container ?

SVG is the abbreviation for Scalable Vector Graphics. It is an Extensible Markup Language (XML) based vector image format for two-dimensional graphics. It supports interactivity and animation. This means that every attribute and every element present in the SVG file can be animated. SVG image behaviors are defined in XML text files. They can be searched, indexed, scripted, compressed, and can be created or edited using any text editor, as well as using drawing software such as Inkscape. Almost every modern web browser support SVG.

The reason why it is tricky to scale SVG is that it does not scale like the other image formats. SVG images have a clearly defined aspect ratio: the ratio of width to the height which makes it difficult to scale with the changing parent container. Other images scale easily because the browser determines the height, width, and aspect ratio of the image, and it adjusts everything accordingly. So giving these properties to SVG should be the first step to our requirement. Although setting height and width barely sets an aspect ratio but what we aim for is scaling which is beyond the aspect ratio. A viewbox can serve our purpose rightly. The viewBox is an attribute of the element which takes four parameters x, y, width, and height. x and y signify the origin of the SVG coordinate system and width and height signify the number of pixels or coordinates that should be scaled to fill the width and height respectively. Let us take a look at the following example:

Читайте также:  Exercises html and css

First approach:

  • At first, we create a container that occupies 30% of the total width of the screen and 20% of the total height of the screen.
  • Next, we create an SVG image(rectangle) using the tag and specifying the height, width, and fill attributes.
  • The element wraps the rectangle image. The SVG element occupies 100% width of the parent container and its height is auto-adjusted depending on screen size. We use viewBox to make the SVG image scalable.
  • viewBox = “0 0 100 100”: defines a coordinate system having x=0, y=0, width=100 units and height=100 units.
  • Thus, the SVG containing a rectangle having width=50px and height=50px will fill up the height and width of the SVG image, and all the dimensions get scaled equally. Changing the x and y coordinates can yield different results, but we will keep ourselves restricted to the stated values.

Источник

Ширина

Атрибут width определяет горизонтальный размер элементов в пользовательской системе координат.

svg viewBox="0 0 100 300" xmlns="http://www.w3.org/2000/svg"> rect x="0" y="0" width="0" height="90"/> rect x="0" y="100" width="60" height="90"/> rect x="0" y="200" width="100%" height="90"/> svg> 

feBlend

Значение |
По умолчанию 100%
Animatable Да

feColorMatrix

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feComponentTransfer

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feComposite

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feConvolveMatrix

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feDiffuseLighting

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feDisplacementMap

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feDropShadow

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feFlood

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feGaussianBlur

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feImage

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feMerge

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feMorphology

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feOffset

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feSpecularLighting

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feTile

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

feTurbulence

Для (en-US), width определяет горизонтальный размер для отображения области примитивов.

Значение |
По умолчанию 100%
Animatable Да

filter

Для (en-US), width определяет горизонтальный размер для отображения области фильтров.

Значение |
По умолчанию 120%
Animatable Да

foreignObject

Значение auto | |
По умолчанию auto (рассматривается как 0 )
Animatable Да

Примечание: Начиная с SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство CSS для .

image

Значение auto | |
По умолчанию auto (рассматривается как ширина изображения)
Animatable Да

Примечание: Начиная с SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство CSS для изображений.

mask

Для (en-US), width определяет горизонтальный размер области эффекта. Точный эффект этого атрибута зависит от атрибута maskUnits (en-US) .

Значение |
По умолчанию 120%
Animatable Да

pattern

Значение
По умолчанию 0
Animatable Да

rect

Значение auto | |
По умолчанию auto (рассматривается как 0 )
Animatable Да

Примечание: Начиная с SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство CSS для прямоугольника.

svg

Примечание: В HTML документе, если оба атрибута viewBox и width опущены, svg-элемент будет отображаться с шириной 300px

Примечание: Начиная с SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство CSS для .

use

Значение auto | |
По умолчанию auto (рассматривается как 0 )
Animatable Да

Примечание: Начиная с SVG2, width это геометрическое свойство, что означает, что этот атрибут может, также, быть использован как свойство CSS для использованных элементов.

Спецификации

Specification Status Comment
Filter Effects Module Level 1
Определение ‘width’ в этой спецификации.
Рабочий черновик Definition for
Filter Effects Module Level 1
Определение ‘width’ в этой спецификации.
Рабочий черновик Definition for filter primitives
CSS Masking Module Level 1
Определение ‘width’ в этой спецификации.
Кандидат в рекомендации Definition for
Scalable Vector Graphics (SVG) 2
Определение ‘width’ в этой спецификации.
Кандидат в рекомендации Definition as a geometry property
Scalable Vector Graphics (SVG) 2
Определение ‘width’ в этой спецификации.
Кандидат в рекомендации Definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for filter primitives
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for
Scalable Vector Graphics (SVG) 1.1 (Second Edition)
Определение ‘width’ в этой спецификации.
Рекомендация Initial definition for

Found a content problem with this page?

This page was last modified on 7 нояб. 2022 г. by MDN contributors.

Your blueprint for a better internet.

Источник

Оцените статью