feat: remove extra spaces in attribute selector (#3794)
This commit is contained in:
1 parent
3bc3e801c8
commit
b2e8c6d374
7 files changed
+255
-7
No files matched your search
@@ -61,9 +61,13 @@ function clean(ast, newObj) {
|
||||
newObj.importPath = cleanCSSStrings(newObj.importPath);
|
||||
}
|
||||
|
||||
if (ast.type === "selector-attribute" && newObj.value) {
|
||||
newObj.value = newObj.value.replace(/^['"]|['"]$/g, "");
|
||||
delete newObj.quoted;
|
||||
if (ast.type === "selector-attribute") {
|
||||
newObj.attribute = newObj.attribute.replace(/ /g, "");
|
||||
|
||||
if (newObj.value) {
|
||||
newObj.value = newObj.value.trim().replace(/^['"]|['"]$/g, "");
|
||||
delete newObj.quoted;
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
|
||||
@@ -249,10 +249,10 @@ function genericPrint(path, options, print) {
|
||||
case "selector-attribute": {
|
||||
return concat([
|
||||
"[",
|
||||
n.attribute,
|
||||
n.attribute.trim(),
|
||||
n.operator ? n.operator : "",
|
||||
n.value
|
||||
? quoteAttributeValue(adjustStrings(n.value, options), options)
|
||||
? quoteAttributeValue(adjustStrings(n.value.trim(), options), options)
|
||||
: "",
|
||||
n.insensitive ? " i" : "",
|
||||
"]"
|
||||
|
||||
@@ -3,18 +3,26 @@
|
||||
exports[`insensitive.css 1`] = `
|
||||
input[type="radio" i] {
|
||||
}
|
||||
img[alt~="person" i][src*="lorem" i] {
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
input[type="radio" i] {
|
||||
}
|
||||
img[alt~="person" i][src*="lorem" i] {
|
||||
}
|
||||
|
||||
`;
|
||||
|
||||
exports[`insensitive.css 2`] = `
|
||||
input[type="radio" i] {
|
||||
}
|
||||
img[alt~="person" i][src*="lorem" i] {
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
input[type='radio' i] {
|
||||
}
|
||||
img[alt~='person' i][src*='lorem' i] {
|
||||
}
|
||||
|
||||
`;
|
||||
|
||||
@@ -23,6 +31,7 @@ a[id=test] {}
|
||||
a[id="test"] {}
|
||||
a[id='test'] {}
|
||||
a[id=func("foo")] {}
|
||||
a[class="(╯°□°)╯︵ ┻━┻"]{}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
a[id="test"] {
|
||||
}
|
||||
@@ -32,6 +41,8 @@ a[id="test"] {
|
||||
}
|
||||
a[id=func("foo")] {
|
||||
}
|
||||
a[class="(╯°□°)╯︵ ┻━┻"] {
|
||||
}
|
||||
|
||||
`;
|
||||
|
||||
@@ -40,6 +51,7 @@ a[id=test] {}
|
||||
a[id="test"] {}
|
||||
a[id='test'] {}
|
||||
a[id=func("foo")] {}
|
||||
a[class="(╯°□°)╯︵ ┻━┻"]{}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
a[id='test'] {
|
||||
}
|
||||
@@ -49,5 +61,203 @@ a[id='test'] {
|
||||
}
|
||||
a[id=func('foo')] {
|
||||
}
|
||||
a[class='(╯°□°)╯︵ ┻━┻'] {
|
||||
}
|
||||
|
||||
`;
|
||||
|
||||
exports[`spaces.css 1`] = `
|
||||
[lang] {}
|
||||
[ lang] {}
|
||||
[lang ] {}
|
||||
[ lang ] {}
|
||||
[ lang ] {}
|
||||
span[lang] {}
|
||||
span[ lang] {}
|
||||
span[lang ] {}
|
||||
span[ lang ] {}
|
||||
span[ lang ] {}
|
||||
span[lang='pt'] {}
|
||||
span[lang ='pt'] {}
|
||||
span[lang= 'pt'] {}
|
||||
span[lang = 'pt'] {}
|
||||
span[lang = 'pt'] {}
|
||||
span[lang='pt' ] {}
|
||||
span[lang='pt' ] {}
|
||||
span[ lang ~= 'en-us' ] {}
|
||||
span[ lang ~= 'en-us' ] {}
|
||||
span[ lang |='zh' ] {}
|
||||
a[ href ^= '#' ] {}
|
||||
a[ href $= '.cn' ] {}
|
||||
a[ href *= 'example' ] {}
|
||||
input[ type = 'radio' i ] {}
|
||||
input[ type = 'radio' i ] {}
|
||||
input[ type ~= 'radio' i ] {}
|
||||
input[ type ~= 'radio' i ] {}
|
||||
img[ alt = 'person' ][ src = 'lorem' ] {}
|
||||
img[ alt = 'person' ][ src = 'lorem' ] {}
|
||||
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
|
||||
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang="pt"] {
|
||||
}
|
||||
span[lang~="en-us"] {
|
||||
}
|
||||
span[lang~="en-us"] {
|
||||
}
|
||||
span[lang|="zh"] {
|
||||
}
|
||||
a[href^="#"] {
|
||||
}
|
||||
a[href$=".cn"] {
|
||||
}
|
||||
a[href*="example"] {
|
||||
}
|
||||
input[type="radio" i] {
|
||||
}
|
||||
input[type="radio" i] {
|
||||
}
|
||||
input[type~="radio" i] {
|
||||
}
|
||||
input[type~="radio" i] {
|
||||
}
|
||||
img[alt="person"][src="lorem"] {
|
||||
}
|
||||
img[alt="person"][src="lorem"] {
|
||||
}
|
||||
img[alt~="person"][src*="lorem"] {
|
||||
}
|
||||
img[alt~="person"][src*="lorem"] {
|
||||
}
|
||||
|
||||
`;
|
||||
|
||||
exports[`spaces.css 2`] = `
|
||||
[lang] {}
|
||||
[ lang] {}
|
||||
[lang ] {}
|
||||
[ lang ] {}
|
||||
[ lang ] {}
|
||||
span[lang] {}
|
||||
span[ lang] {}
|
||||
span[lang ] {}
|
||||
span[ lang ] {}
|
||||
span[ lang ] {}
|
||||
span[lang='pt'] {}
|
||||
span[lang ='pt'] {}
|
||||
span[lang= 'pt'] {}
|
||||
span[lang = 'pt'] {}
|
||||
span[lang = 'pt'] {}
|
||||
span[lang='pt' ] {}
|
||||
span[lang='pt' ] {}
|
||||
span[ lang ~= 'en-us' ] {}
|
||||
span[ lang ~= 'en-us' ] {}
|
||||
span[ lang |='zh' ] {}
|
||||
a[ href ^= '#' ] {}
|
||||
a[ href $= '.cn' ] {}
|
||||
a[ href *= 'example' ] {}
|
||||
input[ type = 'radio' i ] {}
|
||||
input[ type = 'radio' i ] {}
|
||||
input[ type ~= 'radio' i ] {}
|
||||
input[ type ~= 'radio' i ] {}
|
||||
img[ alt = 'person' ][ src = 'lorem' ] {}
|
||||
img[ alt = 'person' ][ src = 'lorem' ] {}
|
||||
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
|
||||
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang='pt'] {
|
||||
}
|
||||
span[lang~='en-us'] {
|
||||
}
|
||||
span[lang~='en-us'] {
|
||||
}
|
||||
span[lang|='zh'] {
|
||||
}
|
||||
a[href^='#'] {
|
||||
}
|
||||
a[href$='.cn'] {
|
||||
}
|
||||
a[href*='example'] {
|
||||
}
|
||||
input[type='radio' i] {
|
||||
}
|
||||
input[type='radio' i] {
|
||||
}
|
||||
input[type~='radio' i] {
|
||||
}
|
||||
input[type~='radio' i] {
|
||||
}
|
||||
img[alt='person'][src='lorem'] {
|
||||
}
|
||||
img[alt='person'][src='lorem'] {
|
||||
}
|
||||
img[alt~='person'][src*='lorem'] {
|
||||
}
|
||||
img[alt~='person'][src*='lorem'] {
|
||||
}
|
||||
|
||||
`;
|
||||
@@ -1,2 +1,4 @@
|
||||
input[type="radio" i] {
|
||||
}
|
||||
img[alt~="person" i][src*="lorem" i] {
|
||||
}
|
||||
@@ -2,3 +2,4 @@ a[id=test] {}
|
||||
a[id="test"] {}
|
||||
a[id='test'] {}
|
||||
a[id=func("foo")] {}
|
||||
a[class="(╯°□°)╯︵ ┻━┻"]{}
|
||||
@@ -0,0 +1,31 @@
|
||||
[lang] {}
|
||||
[ lang] {}
|
||||
[lang ] {}
|
||||
[ lang ] {}
|
||||
[ lang ] {}
|
||||
span[lang] {}
|
||||
span[ lang] {}
|
||||
span[lang ] {}
|
||||
span[ lang ] {}
|
||||
span[ lang ] {}
|
||||
span[lang='pt'] {}
|
||||
span[lang ='pt'] {}
|
||||
span[lang= 'pt'] {}
|
||||
span[lang = 'pt'] {}
|
||||
span[lang = 'pt'] {}
|
||||
span[lang='pt' ] {}
|
||||
span[lang='pt' ] {}
|
||||
span[ lang ~= 'en-us' ] {}
|
||||
span[ lang ~= 'en-us' ] {}
|
||||
span[ lang |='zh' ] {}
|
||||
a[ href ^= '#' ] {}
|
||||
a[ href $= '.cn' ] {}
|
||||
a[ href *= 'example' ] {}
|
||||
input[ type = 'radio' i ] {}
|
||||
input[ type = 'radio' i ] {}
|
||||
input[ type ~= 'radio' i ] {}
|
||||
input[ type ~= 'radio' i ] {}
|
||||
img[ alt = 'person' ][ src = 'lorem' ] {}
|
||||
img[ alt = 'person' ][ src = 'lorem' ] {}
|
||||
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
|
||||
img[ alt ~= 'person' ][ src *= 'lorem' ] {}
|
||||
@@ -8,11 +8,11 @@ exports[`attr-selector.css 1`] = `
|
||||
[ class*="test" ]{
|
||||
color: silver}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
[ data-sizes~="m:0" ] {
|
||||
[data-sizes~="m:0"] {
|
||||
color: pink;
|
||||
}
|
||||
|
||||
[ class*="test" ] {
|
||||
[class*="test"] {
|
||||
color: silver;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user