mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 21:37:35 +00:00
LibHTML: Implement the <br> element for line breaking
The <br> element will produce a special LayoutBreak node in the layout tree, which forces a break in the line layout whenever encountered. This patch also makes LayoutBlock use the current line-height as the minimum effective height for each line box. This ensures that having multiple <br> elements in a row doesn't create 0-height line boxes.
This commit is contained in:
parent
bf79b198f6
commit
6242459c0f
9 changed files with 89 additions and 1 deletions
16
Libraries/LibHTML/Layout/LayoutBreak.h
Normal file
16
Libraries/LibHTML/Layout/LayoutBreak.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#pragma once
|
||||
|
||||
#include <LibHTML/DOM/HTMLBRElement.h>
|
||||
#include <LibHTML/Layout/LayoutNode.h>
|
||||
|
||||
class LayoutBreak final : public LayoutNode {
|
||||
public:
|
||||
explicit LayoutBreak(const HTMLBRElement&);
|
||||
virtual ~LayoutBreak() override;
|
||||
|
||||
const HTMLBRElement& node() const { return to<HTMLBRElement>(*LayoutNode::node()); }
|
||||
|
||||
private:
|
||||
virtual const char* class_name() const override { return "LayoutBreak"; }
|
||||
virtual void split_into_lines(LayoutBlock&) override;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue