Skip to content

一个解析错误selector时的问题. #2

@Leooonard

Description

@Leooonard

错误selector的形式如下:

a,{
  padding: 10px
}

经解析后, 会形成如下的css dom.

[{
    "type": "rule",
    "selectors": ["a"],
    "declarations": {
        "{padding": "10"
    }
}]

可以看到padding属性前多了一个{, 其原因是Scanner.prototype.selector内没有为这种错误形式的css selector做兼容处理.

其结果是, 在a,{}后的所有样式失效. 原本浏览器可以自行解决的css写法错误, 在经过css dom的transform后, 成为了无法解决的css错误, 并且导致之后所有的css样式失效.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions