Sfoglia il codice sorgente

LibWeb: Don't assert when flex-item has `align-self: end`

We were missing the code to convert this to `align-items: end`.
Andreas Kling 2 anni fa
parent
commit
38a6b7ad3d

+ 4 - 0
Tests/LibWeb/Layout/expected/flex/align-self-end-crash.txt

@@ -0,0 +1,4 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+  BlockContainer <html> at (0,0) content-size 800x16 [BFC] children: not-inline
+    Box <body> at (8,8) content-size 784x0 flex-container(row) [FFC] children: not-inline
+      BlockContainer <div> at (8,8) content-size 0x0 flex-item [BFC] children: not-inline

+ 4 - 0
Tests/LibWeb/Layout/input/flex/align-self-end-crash.html

@@ -0,0 +1,4 @@
+<!doctype html><style>
+body { display: flex; }
+div { align-self: end; }
+</style><div>

+ 2 - 0
Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp

@@ -1447,6 +1447,8 @@ CSS::AlignItems FlexFormattingContext::alignment_for_item(Box const& box) const
     switch (box.computed_values().align_self()) {
     case CSS::AlignSelf::Auto:
         return flex_container().computed_values().align_items();
+    case CSS::AlignSelf::End:
+        return CSS::AlignItems::End;
     case CSS::AlignSelf::Normal:
         return CSS::AlignItems::Normal;
     case CSS::AlignSelf::SelfStart: