files/en-us/web/api/svglength/index.md
{{APIRef("SVG")}}
The SVGLength interface correspond to the <length> basic data type.
An SVGLength object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.
SVG_LENGTHTYPE_* constants defined on this interface.unitType.unitType.unitType.unitType, thereby replacing the values for all of the attributes on the object.SVG_LENGTHTYPE_UNKNOWN (0)
SVG_LENGTHTYPE_NUMBER (1)
SVG_LENGTHTYPE_PERCENTAGE (2)
SVG_LENGTHTYPE_EMS (3)
em units.SVG_LENGTHTYPE_EXS (4)
ex units.SVG_LENGTHTYPE_PX (5)
px units.SVG_LENGTHTYPE_CM (6)
cm units.SVG_LENGTHTYPE_MM (7)
mm units.SVG_LENGTHTYPE_IN (8)
in units.SVG_LENGTHTYPE_PT (9)
pt units.SVG_LENGTHTYPE_PC (10)
pc units.<svg height="200" onload="start();" version="1.1" width="200" xmlns="http://www.w3.org/2000/svg">
<script><![CDATA[
function start() {
const rect = document.getElementById("myRect");
const val = rect.x.baseVal;
// read x in pixel and cm units
console.log(
`value: ${val.value}, valueInSpecifiedUnits: ${val.valueInSpecifiedUnits} (${val.unitType}), valueAsString: ${val.valueAsString}`,
);
// set x = 20pt and read it out in pixel and pt units
val.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PT, 20);
console.log(
`value: ${val.value}, valueInSpecifiedUnits: ${val.valueInSpecifiedUnits} (${val.unitType}), valueAsString: ${val.valueAsString}`,
);
// convert x = 20pt to inches and read out in pixel and inch units
val.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_IN);
console.log(
`value: ${val.value}, valueInSpecifiedUnits: ${val.valueInSpecifiedUnits} (${val.unitType}), valueAsString: ${val.valueAsString}`,
);
}
]]></script>
<rect id="myRect"
x="1cm" y="1cm"
fill="green" stroke="black" stroke-width="1"
width="1cm" height="1cm"
/>
</svg>
Results on a desktop monitor (pixel units will be dpi-dependent):
value: 37.7952766418457, valueInSpecifiedUnits: 6: 1, valueAsString: 1cm
value: 26.66666603088379, valueInSpecifiedUnits 9: 20, valueAsString: 20pt
value: 26.66666603088379, valueInSpecifiedUnits 8: 0.277777761220932, valueAsString: 0.277778in
{{Specifications}}
{{Compat}}