browser engineering 관련
5장. 페이지 레이아웃의 추가 설명
소혼
2025. 8. 30. 16:21
5.1 레이아웃 트리
4장에서 만든 Layout 객체를 BlockLayout으로 바꾸고 DocumentLayout을 통해 BlockLayout들을 만들어가는 것이 목표입니다.
5.1의 코드만 수정한 후 실행이 되려면 다음과 같은 코드가 추가로 필요합니다.
@@ -210,7 +216,7 @@ class Layout:
self.size = 12
self.line = []
- self.recurse(tree)
+ self.recurse(self.node)
self.flush()
@@ -286,7 +303,9 @@ class Browser:
def load(self, url):
body = url.request()
self.nodes = HTMLParser(body).parse()
- self.display_list = Layout(self.nodes).display_list
+ self.document = DocumentLayout(self.nodes)
+ self.document.layout()
+ self.display_list = self.document.children[0].display_list
self.draw()
def draw(self)
self.display_list 를 변경하는 것은 5.5장까지 진도를 나가면 paint_tree를 통해 순회하는 방법이 등장합니다.

반응형