-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CSS nesting inserts attribute selector at every level #10567
Comments
Here's a similar / simplied example of this issue: <style scoped>
div {
display: grid;
:deep(> *) {
margin: 0;
}
}
</style> This should output: div[data-v-d127f3cd] {
display: grid;
> * {
margin: 0;
}
} Instead, it outputs: div[data-v-d127f3cd] {
display: grid;
[data-v-d127f3cd] > * {
margin: 0;
}
} (The latter of course represents an entirely different DOM structure.) I would expect |
I think the attribute SHOULD BE inserted at every levels. If not, the But I think it should not cascade in the :deep(p) {
color: red;
strong {
color: black;
}
} compiles to [data-v-7ba5bd90] p {
color: red;
strong[data-v-7ba5bd90] {
color: black;
}
} but I expected this to compile to [data-v-7ba5bd90] p {
color: red;
strong {
color: black;
}
} Temporary solution (thanks Hiws from the Vue Land discord server ❤️): :deep(p) {
color: red;
:global(strong) {
color: black;
}
} |
Running into this too. It seems like :deep just doesn't understand nested selectors, which is a bit of a showstopper. Putting :global around every nested selector in a complex stylesheet makes quite a mess... |
No, the equivalent non-nested CSS only inserts it at the last selector. .v-card .v-card-item .v-card-title {}
/* --> */
.v-card .v-card-item .v-card-title[data-v-7ba5bd90] {} .v-card {
& .v-card-item {
& .v-card-title {}
}
}
/* --> */
.v-card[data-v-7ba5bd90] .v-card-item[data-v-7ba5bd90] .v-card-title[data-v-7ba5bd90] {} |
Vue version
3.4.21
Link to minimal reproduction
https://play.vuetifyjs.com/#eNptkN1OAyEQhV+FzIXRxLJZf25WbGL6Ct65XlB2okQKCLPbmKbvLj+7pqa9gXMOzMcMbweIQTUv3vNpROhAEO68kYTr3jImppX0vshilLMktcUwRzWUYWCkyeBzD5tkXrPugSkjY0wZYaQe1iyfsU1CoCUmmlq5wLP9R89JfVw0J00lG+nHIIvKeazlfG7iUFlbqb4+ghvtkJDGhY5JS/p7xP2nJnyql7oB0V9fLbWrdLK7WQiXGFsz4qSdQZoJ54zyCSeQi5jg9vaPcKyibGkRTZktDQXHW7jnD/yuhSweedvC+y/pQ4mT
Steps to reproduce
Have a scoped style block with native css nesting
What is expected?
What is actually happening?
System Info
No response
Any additional comments?
:deep needs to omit the selector for anything nested under it, so
:deep(.v-card)
should just beThe text was updated successfully, but these errors were encountered: