Fix @page output
CssPrinter now emits correct CSS when @page body includes both declarations and
page-margin boxes.
diff --git a/lib/src/css_printer.dart b/lib/src/css_printer.dart
index a62ca47..035bc46 100644
--- a/lib/src/css_printer.dart
+++ b/lib/src/css_printer.dart
@@ -107,16 +107,14 @@
emit(node._ident);
emit(node.hasPseudoPage ? ':${node._pseudoPage}' : '');
}
- emit(' ');
var declsMargin = node._declsMargin;
var declsMarginLength = declsMargin.length;
+ emit(' {$_newLine');
for (var i = 0; i < declsMarginLength; i++) {
- if (i > 0) emit(_newLine);
- emit('{$_newLine');
declsMargin[i].visit(this);
- emit('}');
}
+ emit('}');
}
/** @charset "charset encoding" */
diff --git a/test/declaration_test.dart b/test/declaration_test.dart
index a553522..ba12344 100644
--- a/test/declaration_test.dart
+++ b/test/declaration_test.dart
@@ -287,6 +287,7 @@
width: 10px;
}
@page bar : left { @top-left { margin: 8px; } }
+@page { @top-left { margin: 8px; } width: 10px; }
@charset "ISO-8859-1";
@charset 'ASCII';''';
@@ -308,6 +309,12 @@
margin: 8px;
}
}
+@page {
+@top-left {
+ margin: 8px;
+}
+ width: 10px;
+}
@charset "ISO-8859-1";
@charset "ASCII";''';