OLD | NEW |
(Empty) | |
| 1 part of html; |
| 2 |
| 3 /** |
| 4 * Class representing a |
| 5 * [length measurement](https://developer.mozilla.org/en-US/docs/Web/CSS/length) |
| 6 * in CSS. |
| 7 */ |
| 8 @Experimental() |
| 9 class Dimension { |
| 10 num _value; |
| 11 String _unit; |
| 12 |
| 13 /** Set this CSS Dimension to a percentage `value`. */ |
| 14 Dimension.percent(this._value) : _unit = '%'; |
| 15 |
| 16 /** Set this CSS Dimension to a pixel `value`. */ |
| 17 Dimension.px(this._value) : _unit = 'px'; |
| 18 |
| 19 /** Set this CSS Dimension to a pica `value`. */ |
| 20 Dimension.pc(this._value) : _unit = 'pc'; |
| 21 |
| 22 /** Set this CSS Dimension to a point `value`. */ |
| 23 Dimension.pt(this._value) : _unit = 'pt'; |
| 24 |
| 25 /** Set this CSS Dimension to an inch `value`. */ |
| 26 Dimension.inch(this._value) : _unit = 'in'; |
| 27 |
| 28 /** Set this CSS Dimension to a centimeter `value`. */ |
| 29 Dimension.cm(this._value) : _unit = 'cm'; |
| 30 |
| 31 /** Set this CSS Dimension to a millimeter `value`. */ |
| 32 Dimension.mm(this._value) : _unit = 'mm'; |
| 33 |
| 34 /** |
| 35 * Set this CSS Dimension to the specified number of ems. |
| 36 * |
| 37 * 1em is equal to the current font size. (So 2ems is equal to double the font |
| 38 * size). This is useful for producing website layouts that scale nicely with |
| 39 * the user's desired font size. |
| 40 */ |
| 41 Dimension.em(this._value) : _unit = 'em'; |
| 42 |
| 43 /** |
| 44 * Set this CSS Dimension to the specified number of x-heights. |
| 45 * |
| 46 * One ex is equal to the the x-height of a font's baseline to its mean line, |
| 47 * generally the height of the letter "x" in the font, which is usually about |
| 48 * half the font-size. |
| 49 */ |
| 50 Dimension.ex(this._value) : _unit = 'ex'; |
| 51 |
| 52 /** |
| 53 * Construct a Dimension object from the valid, simple CSS string `cssValue` |
| 54 * that represents a distance measurement. |
| 55 * |
| 56 * This constructor is intended as a convenience method for working with |
| 57 * simplistic CSS length measurements. Non-numeric values such as `auto` or |
| 58 * `inherit` or invalid CSS will cause this constructor to throw a |
| 59 * FormatError. |
| 60 */ |
| 61 Dimension.css(String cssValue) { |
| 62 if (cssValue == '') cssValue = '0px'; |
| 63 if (cssValue.endsWith('%')) { |
| 64 _unit = '%'; |
| 65 } else { |
| 66 _unit = cssValue.substring(cssValue.length - 2); |
| 67 } |
| 68 if (cssValue.contains('.')) { |
| 69 _value = double.parse(cssValue.substring(0, |
| 70 cssValue.length - _unit.length)); |
| 71 } else { |
| 72 _value = int.parse(cssValue.substring(0, cssValue.length - _unit.length)); |
| 73 } |
| 74 } |
| 75 |
| 76 /** Print out the CSS String representation of this value. */ |
| 77 String toString() { |
| 78 return '${_value}${_unit}'; |
| 79 } |
| 80 |
| 81 /** Return a unitless, numerical value of this CSS value. */ |
| 82 num get value => this._value; |
| 83 } |
OLD | NEW |