【Godot4.4】模拟类似网页的布局
- 其他
- 2025-09-10 18:03:03

概述
最近瞎搞一些布局的事情,其中需要实现类似网页的布局,也就是水平居中,且中间内容区域固定宽度的形式。最终通过容器的嵌套,实现了效果,想着记录一下思路。
实现单独用MarginContainer或CenterContainer,以及两者配合都无法完成要求的布局。
CenterContainer页面内容居中肯定要用到CenterContainer,但是它的效果是在整个容器内居中其子元素。也就是水平和垂直都居中。垂直方向的居中是我们不想要的。
抵消垂直居中好在通过实验发现,只需要在CenterContainer外添加一个VBoxContainer就可以让其在顶部排列,实现抵消其垂直方向居中的效果。
页面内容排布在CenterContainer内添加加一个VBoxContainer,用于从上到下,排布实际的页面内容。
背景色或图片设置通过在最外层的PanelContainer上添加StyleBox,可以实现为页面添加背景色或背景图片。
为页面添加边距通过在外层VBoxContainer外包裹一个MarginContainer可以设置额外的边距。
当然在最外层PanelContainer上设置StyleBox后设定内容边距也是可以的。
此时,容器的嵌套结构以及其作用如下:
PanelContainer // 页面背景颜色或图片 MarginContainer // 模拟body的margin VBoxContainer // 抵消CenterContainer在垂直方向的居中 CenterContainer // 内容的居中 VBoxContainer // 内容的上下排布 设定最小宽度 实现啊背景颜色+背景图因为单个PanelContainer要么通过StyleBoxFlat设定背景色,要么通过StyleBoxTexture设定背景图,两者无法兼得。解决办法也很简单,如果要同时实现背景颜色和半透明背景图片,可以再PanelContainer外再套PanelContainer,也就是:
PanelContainer // 页面背景颜色 PanelContainer // 页面背景图片 MarginContainer // 模拟body的margin VBoxContainer // 抵消CenterContainer在垂直方向的居中 CenterContainer // 内容的居中 VBoxContainer // 内容的上下排布 设定最小宽度实际效果就是:
滚动条页面内容的实际显示,需要加载再一个ScrollContainer中以显示滚动条。
此时的页面背景是随着页面而滚动的。
固定背景如果要实验固定背景,则需要将ScrollContainer移动到如下的位置:
总结Godot的容器就是为了UI布局存在的,很强大,但是对于某些特殊布局还是有些设置繁琐和力不从心。
另外Godot不支持WebBrowser,无法内嵌网页。
有时候又需要类似网页的显示和布局,所以只能自己搞。
此文所述的容器嵌套版本只是记录一下思路,后续会创建自定义容器简化和特化类网页排版的需求,敬请期待。
【Godot4.4】模拟类似网页的布局由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【Godot4.4】模拟类似网页的布局”