Comments (6)
Does lxml support :last-child
selectors?
Also, since the parse reads from the top to bottom. Can't you just change the order of your two selectors?
from premailer.
It does support that selector; reversing the order does give the expected behavior. So you can 'just' sort your selectors by specificity, but I don't think you can say you really have CSS without the cascade.
from premailer.
@peterbe I haven't dug in very deeply, but is there any reason premailer is trying to calculate specificity itself in _parse_style_rules
rather than using the functionality provided by cssselect: https://pythonhosted.org/cssselect/#cssselect.Selector.specificity ?
from premailer.
@elidickinson I don't know but I suspect that history will explain that. There used to be just lxml
but later someone broke that out of lxml
and we then have to install both lxml
and cssselect
. It came into existence late and that's probably simply the explanation.
Do you think you'd be able to write a little patch to switch to using cssselect instead of the ad-hoc custom code? I'd be willing to help and help write some tests.
from premailer.
@peterbe Makes sense, I think I actually knew that and forgot. Yeah, I'll take a swing at it. Writing the tests is probably exactly where I'd need the help. Might take me a bit before I can get to it, though.
from premailer.
@elidickinson Please do not hesitate to ping me. Writing the tests is going to be easy. But if you're not super familiar with it the project it can be hard to know how to start the tests or where to put the new tests (hint; it's mainly copy-n-paste from some existing test).
from premailer.
Related Issues (20)
- Premailer strips important tags from stylesheets meant to be ignored HOT 2
- Does premailer support css variables? HOT 4
- Mustache {{ }} syntax in href is broken on transform HOT 2
- premailer doesn't appear to work on m1 macs HOT 18
- premailer issue
- Prefill advanced options of hosted Premailer? HOT 3
- Add cache support for _load_external_url HOT 2
- To support css var HOT 1
- :not is not supported
- Style sorting breaking proper precedence HOT 3
- Question about self-closing tags HOT 1
- allow_network=False prevents loading of local stylesheets
- preserve_handlebar_syntax regex should be improved
- Direct child selector (">") is ignored
- Bug: Global style with !important do not take precedence over the respective inline style
- Deleted HOT 1
- load_external_url should have a proper timeout set
- AttributeError: 'CSSMediaRule' object has no attribute 'style'
- 1 HOT 2
- lxml 5.0 Seems To Break preserve_handlebar_syntax
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from premailer.