diff --git a/lib/html_parser.dart b/lib/html_parser.dart
index 92a84eb3d6..e9fc82ca49 100644
--- a/lib/html_parser.dart
+++ b/lib/html_parser.dart
@@ -426,7 +426,7 @@ class HtmlParser extends StatelessWidget {
children: [
tree.style.listStylePosition == ListStylePosition.OUTSIDE ?
Padding(
- padding: tree.style.padding ?? EdgeInsets.only(left: tree.style.direction != TextDirection.rtl ? 10.0 : 0.0, right: tree.style.direction == TextDirection.rtl ? 10.0 : 0.0),
+ padding: tree.style.padding?.nonNegative ?? EdgeInsets.only(left: tree.style.direction != TextDirection.rtl ? 10.0 : 0.0, right: tree.style.direction == TextDirection.rtl ? 10.0 : 0.0),
child: newContext.style.markerContent
) : Container(height: 0, width: 0),
Text("\t", textAlign: TextAlign.right, style: TextStyle(fontWeight: FontWeight.w400)),
@@ -1056,8 +1056,8 @@ class ContainerSpan extends StatelessWidget {
),
height: style.height,
width: style.width,
- padding: style.padding,
- margin: style.margin?.clamp(EdgeInsets.zero, const EdgeInsets.all(double.infinity)),
+ padding: style.padding?.nonNegative,
+ margin: style.margin?.nonNegative,
alignment: shrinkWrap ? null : style.alignment,
child: child ??
StyledText(
diff --git a/lib/src/layout_element.dart b/lib/src/layout_element.dart
index c8b2e30ace..1b9810fd11 100644
--- a/lib/src/layout_element.dart
+++ b/lib/src/layout_element.dart
@@ -5,6 +5,7 @@ import 'package:flutter_html/html_parser.dart';
import 'package:flutter_html/src/anchor.dart';
import 'package:flutter_html/src/html_elements.dart';
import 'package:flutter_html/src/styled_element.dart';
+import 'package:flutter_html/src/utils.dart';
import 'package:flutter_html/style.dart';
import 'package:flutter_layout_grid/flutter_layout_grid.dart';
import 'package:html/dom.dart' as dom;
@@ -33,8 +34,8 @@ class TableLayoutElement extends LayoutElement {
Widget toWidget(RenderContext context) {
return Container(
key: AnchorKey.of(context.parser.key, this),
- margin: style.margin,
- padding: style.padding,
+ padding: style.padding?.nonNegative,
+ margin: style.margin?.nonNegative,
alignment: style.alignment,
decoration: BoxDecoration(
color: style.backgroundColor,
@@ -122,7 +123,7 @@ class TableLayoutElement extends LayoutElement {
cells.add(GridPlacement(
child: Container(
width: double.infinity,
- padding: child.style.padding ?? row.style.padding,
+ padding: child.style.padding?.nonNegative ?? row.style.padding?.nonNegative,
decoration: BoxDecoration(
color: child.style.backgroundColor ?? row.style.backgroundColor,
border: child.style.border ?? row.style.border,
diff --git a/lib/src/utils.dart b/lib/src/utils.dart
index 0a898dea6f..0c6e490cb2 100644
--- a/lib/src/utils.dart
+++ b/lib/src/utils.dart
@@ -111,4 +111,8 @@ extension TextTransformUtil on String? {
return this;
}
}
+}
+
+extension ClampedEdgeInsets on EdgeInsetsGeometry {
+ EdgeInsetsGeometry get nonNegative => this.clamp(EdgeInsets.zero, const EdgeInsets.all(double.infinity));
}
\ No newline at end of file