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.