code: public double cur(Element elem, String prop, boolean force) {
      if (JsUtils.isWindow(elem)) {
        if ("width".equals(prop)) {
          return getContentDocument(elem).getClientWidth();
        }
        if ("height".equals(prop)) {
          return getContentDocument(elem).getClientHeight();
        }
        elem = GQuery.body;
      }
  
      if (force && sizeRegex.test(prop)) {
        // make curCSS below resolve width and height (issue #145) when force is true
      } else if (elem.getPropertyString(prop) != null
          && (elem.getStyle() == null || elem.getStyle().getProperty(prop) == null)) {
        // cases where elem.prop exists instead of elem.style.prop
        return elem.getPropertyDouble(prop);
      }
      String val = curCSS(elem, prop, force);
      if ("thick".equalsIgnoreCase(val)) {
        return 5;
      } else if ("medium".equalsIgnoreCase(val)) {
        return 3;
      } else if ("thin".equalsIgnoreCase(val)) {
        return 1;
      }
      if (!val.matches("^[\\d\\.]+.*$")) {
        val = curCSS(elem, prop, false);
      }
      val = val.trim().replaceAll("[^\\d\\.\\-]+.*$", "");
      return val.isEmpty() ? 0 : Double.parseDouble(val);
    }
docs: Returns the numeric value of a css property.
  
  The parameter force has a special meaning:
  - When force is false, returns the value of the css property defined
  in the set of style attributes.
  - Otherwise it returns the real computed value.