Supported Features and LimitationsΒΆ

Things that work:

  • Any selector that lxml‘s CSSSelector can match such as #foo > .bar input[type="submit"]
  • media queries are supported (this is treated as nested CSS basically)
  • keyframes are left untouched
  • You can manually over selectors that should be untouched for things you definitely know will be needed by Javascript code but isn’t part of the initial HTML tree.
  • You can analyze multiple URLs and find the common CSS amongst them. (This doesn’t work for inline CSS)
  • Comments are left untouched and minute whitespace details are preseved so the generated output looks similar to its input, but with the selectors not needed removed.
  • A proxy server apps is available that can help you preview the result of just one URL.

Things that don’t yet work:

  • Javascript events that manipulate the DOM tree. You can use PhantomJS to do the downloading but it still won’t get every possible piece of HTML generated based on complex Javascript.
  • keyframes are always left untouched even if it’s never referenced
  • Broken HTML or broken/invalid CSS isn’t supported and good results can not be guaranteed.

Things that don’t work:

  • link tags wrapped in IE-only style comments (e.g <!--[if lte IE 7]>) is not supported.