Bladeren bron

layouter: fixed contaiing block for display-outside=block

mattias 2 jaren geleden
bovenliggende
commit
7343597c85
1 gewijzigde bestanden met toevoegingen van 13 en 4 verwijderingen
  1. 13 4
      src/fresnel.layouter.pas

+ 13 - 4
src/fresnel.layouter.pas

@@ -633,7 +633,7 @@ begin
       continue;
     end;
 
-    // display-outside inline or bock
+    // display-outside inline or block
     aDisplayOutside:=ChildEl.CSSComputedAttribute[fcaDisplayOutside];
     case aDisplayOutside of
     '',
@@ -952,7 +952,8 @@ function TSimpleFresnelLayouter.NeedBlockFormattingContext(El: TFresnelElement
 // contain internal and external floats
 // surpress margin collapsing
 var
-  aPosition, aOverflow, aFloat, aDisplayBox, aDisplayInside: String;
+  aPosition, aOverflow, aFloat, aDisplayBox, aDisplayInside,
+    aDisplayOutside: String;
 begin
   if El=nil then
     exit(false);
@@ -969,10 +970,18 @@ begin
   if aDisplayBox='none' then
     exit(false);
 
+  aDisplayOutside:=El.CSSComputedAttribute[fcaDisplayOutside];
+  case aDisplayOutside of
+  'block': exit(true);
+  end;
+
   aDisplayInside:=El.CSSComputedAttribute[fcaDisplayInside];
   case aDisplayInside of
-  'block',
-  'flow-root': exit(true);
+  'flow-root',
+  'table',
+  'flex',
+  'grid',
+  'ruby': exit(true);
   end;
 
   aOverflow:=El.CSSComputedAttribute[fcaOverflow];