Wails应用中自定义CSS样式无法生效怎么办?
我在用Wails开发桌面应用时,给主窗口添加的CSS样式完全没效果。比如想让窗口有圆角边框和灰色背景,但界面还是默认的纯白窗口。
已经把CSS写在HTML文件的style标签里了,也试过单独引入css文件都没用:
body {
background-color: #f0f0f0;
border-radius: 16px;
padding: 20px;
overflow: hidden;
}
button {
background: #4CAF50;
color: white;
}
用浏览器直接打开HTML文件样式正常,但打包成Wails应用后所有样式都不生效。是不是需要特殊配置才能让CSS生效?
解决方法有两个关键点。第一,在main.go里初始化窗口的时候要设置渲染模式为WebGL:
app := wails.CreateApp(&wails.AppConfig{Width: 800,
Height: 600,
Title: "MyApp",
JSLoadLocation: "http://localhost:3000",
Renderer: wails.RendererWebGL, // 就是这个参数
})
第二,HTML结构需要做调整。Wails的窗口默认是一个全屏的容器,普通的CSS样式作用不到窗口边缘。可以把整个页面内容包裹在一个div里,设置这个容器的样式:
如果你用的是Wails 1.x版本,还要注意在main.js里加上:
window.wailsWaitForDOMContentLoaded = true;这样处理后样式应该就能正常显示了。实在不行还可以用Electron那种方案,自己起一个本地服务器把HTML跑在远程地址上。代码放这了,试试看能不能跑通。