1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 13:57:35 +00:00

LibHTML: Add a simple <style> element for inline CSS

This commit is contained in:
Andreas Kling 2019-09-29 17:43:30 +02:00
parent 7912592f89
commit a4fccc02ec
4 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,28 @@
#include <LibHTML/DOM/Document.h>
#include <LibHTML/DOM/HTMLStyleElement.h>
#include <LibHTML/Parser/CSSParser.h>
HTMLStyleElement::HTMLStyleElement(Document& document, const String& tag_name)
: HTMLElement(document, tag_name)
{
}
HTMLStyleElement::~HTMLStyleElement()
{
}
void HTMLStyleElement::inserted_into(Node& new_parent)
{
m_stylesheet = parse_css(text_content());
if (m_stylesheet)
document().add_sheet(*m_stylesheet);
HTMLElement::inserted_into(new_parent);
}
void HTMLStyleElement::removed_from(Node& old_parent)
{
if (m_stylesheet) {
// FIXME: Remove the sheet from the document
}
return HTMLElement::removed_from(old_parent);
}

View file

@ -0,0 +1,17 @@
#pragma once
#include <LibHTML/DOM/HTMLElement.h>
class StyleSheet;
class HTMLStyleElement : public HTMLElement {
public:
HTMLStyleElement(Document&, const String& tag_name);
virtual ~HTMLStyleElement() override;
virtual void inserted_into(Node&) override;
virtual void removed_from(Node&) override;
private:
RefPtr<StyleSheet> m_stylesheet;
};