LibWeb: Handle inline-start and inline-end as float values
Should resolve #449 for LTR languages at least
This commit is contained in:
parent
11039085d0
commit
d427344f39
Notes:
sideshowbarker
2024-07-17 02:23:25 +09:00
Author: https://github.com/vpzomtrrfrt 🔰 Commit: https://github.com/LadybirdBrowser/ladybird/commit/d427344f39 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/470 Issue: https://github.com/LadybirdBrowser/ladybird/issues/449 Reviewed-by: https://github.com/awesomekling
5 changed files with 58 additions and 1 deletions
|
@ -0,0 +1,17 @@
|
|||
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
|
||||
BlockContainer <html> at (0,0) content-size 800x60 [BFC] children: not-inline
|
||||
BlockContainer <(anonymous)> at (0,0) content-size 800x0 children: inline
|
||||
TextNode <#text>
|
||||
BlockContainer <body> at (8,8) content-size 784x0 children: inline
|
||||
TextNode <#text>
|
||||
BlockContainer <div#b> at (9,9) content-size 50x50 floating [BFC] children: not-inline
|
||||
TextNode <#text>
|
||||
BlockContainer <div#c> at (741,9) content-size 50x50 floating [BFC] children: not-inline
|
||||
TextNode <#text>
|
||||
|
||||
ViewportPaintable (Viewport<#document>) [0,0 800x600]
|
||||
PaintableWithLines (BlockContainer<HTML>) [0,0 800x60]
|
||||
PaintableWithLines (BlockContainer(anonymous)) [0,0 800x0]
|
||||
PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
|
||||
PaintableWithLines (BlockContainer<DIV>#b) [8,8 52x52]
|
||||
PaintableWithLines (BlockContainer<DIV>#c) [740,8 52x52]
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
#b {
|
||||
border: 1px solid red;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
float: inline-start;
|
||||
}
|
||||
#c {
|
||||
border: 1px solid blue;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
float: inline-end;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id=b></div>
|
||||
<div id=c></div>
|
||||
</body>
|
||||
</html>
|
|
@ -195,7 +195,9 @@
|
|||
"float": [
|
||||
"none",
|
||||
"left",
|
||||
"right"
|
||||
"right",
|
||||
"inline-start",
|
||||
"inline-end"
|
||||
],
|
||||
"font-variant": [
|
||||
"normal",
|
||||
|
|
|
@ -188,8 +188,10 @@
|
|||
"initial-only",
|
||||
"inline",
|
||||
"inline-block",
|
||||
"inline-end",
|
||||
"inline-flex",
|
||||
"inline-grid",
|
||||
"inline-start",
|
||||
"inline-table",
|
||||
"inset",
|
||||
"inside",
|
||||
|
|
|
@ -711,6 +711,19 @@ void StyleComputer::for_each_property_expanding_shorthands(PropertyID property_i
|
|||
return;
|
||||
}
|
||||
|
||||
if (property_id == CSS::PropertyID::Float) {
|
||||
auto ident = value.to_identifier();
|
||||
|
||||
// FIXME: Honor writing-mode, direction and text-orientation.
|
||||
if (ident == CSS::ValueID::InlineStart) {
|
||||
set_longhand_property(CSS::PropertyID::Float, IdentifierStyleValue::create(CSS::ValueID::Left));
|
||||
return;
|
||||
} else if (ident == CSS::ValueID::InlineEnd) {
|
||||
set_longhand_property(CSS::PropertyID::Float, IdentifierStyleValue::create(CSS::ValueID::Right));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (property_is_shorthand(property_id)) {
|
||||
// ShorthandStyleValue was handled already.
|
||||
// That means if we got here, that `value` must be a CSS-wide keyword, which we should apply to our longhand properties.
|
||||
|
|
Loading…
Add table
Reference in a new issue