about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/css/cascade.nim12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/css/cascade.nim b/src/css/cascade.nim
index d98949a1..453b65f8 100644
--- a/src/css/cascade.nim
+++ b/src/css/cascade.nim
@@ -272,11 +272,15 @@ func buildComputedValues(rules: CSSValueEntryMap; parent: CSSValues;
   for t in CSSPropertyType:
     if not inited[t]:
       result.initialOrInheritFrom(parent, t)
-  if result{"float"} != FloatNone:
+  # Quirk: it seems others aren't implementing what the spec says about
+  # blockification.
+  # Well, neither will I, because the spec breaks on actual websites.
+  # Curse CSS.
+  if result{"position"} in {PositionAbsolute, PositionFixed}:
+    if result{"display"} == DisplayInline:
+      result{"display"} = DisplayInlineBlock
+  elif result{"float"} != FloatNone:
     result{"display"} = result{"display"}.blockify()
-  elif result{"position"} in {PositionAbsolute, PositionFixed} and
-      result{"display"} == DisplayInline:
-    result{"display"} = DisplayInlineBlock
   if (result{"overflow-x"} in {OverflowVisible, OverflowClip}) !=
       (result{"overflow-y"} in {OverflowVisible, OverflowClip}):
     result{"overflow-x"} = result{"overflow-x"}.bfcify()