electron.js - 浏览器窗口视口大小在调整大小时缩小 1px

electron.js - BrowserWindow viewport size shrinks by 1px when it is resized

提问人:T. Feix 提问时间:11/8/2023 最后编辑:midnight-codingT. Feix 更新时间:11/8/2023 访问量:29

问:

我这里有一个无框电子.js窗口(main.js):

const createWindow = () => {
  const win = new BrowserWindow({
    width: 500,
    height: 400,
    useContentSize: true,
    frame: false,
  })

  win.loadFile('index.html').then();
}

我还创建了一个主要元素,它跨越了整个正文的宽度,其中包括一个可拖动的标题栏:

...
<body>
  <div class="main">
    <div class="titlebar"></div>
  </div>
</body>
...

创建的窗口有阴影,但没有高亮边框,它看起来有点不自然,所以尝试在周围创建一个边框。整个结构的 CSS 如下所示:.main

* {
    box-sizing: border-box;
}

.main {
    width: 100%;
    height: 100%;
    background-color: white;
    border: 1px solid #333;
    overflow: hidden;
    margin: auto;
}

html {
    width: 100vw;
    height: 100vh;
}

body {
    margin: 0;
    width: 100%;
    height: 100%;
}

.titlebar {
    width: 100%;
    height: 40px;
    -webkit-app-region: drag;

    background-color: white;
}

最初一切看起来都很好,并且符合预期:Window with solid border

但是,当调整窗口大小时,底部和右侧的边框就会消失:Bottom and right border disappeared

这里有什么问题?我该如何解决?

javascript html css node.js 电子

评论

0赞 Timur 11/8/2023
您可以尝试将 to 的位置设置为 top、right、bottom 和 left 设置为 0。而不是将宽度和高度设置为 100%。.mainposition: fixed;
1赞 T. Feix 11/8/2023
@Timur问题仍然存在,但感谢您的建议;可悲的是,我需要找到另一种解决方法。

答:

0赞 T. Feix 11/8/2023 #1

我发现显然将元素(甚至元素)的宽度和高度向下设置一个像素并使用可以解决问题,但也禁用最大化/恢复和捕捉到边缘。这是一个解决方案,但不是迄今为止最好的解决方案。.mainhtmltransparent: "true"