gpt4 book ai didi

javascript - Monaco Editor 的高度

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:39 25 4
gpt4 key购买 nike

我想制作一个非常简单的 Monaco Editor :JSBin :

<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<style>
.me {
height: 100vh;
}
</style>
</head>
<body>
<div class="me" id="container"></div>
<script src="https://www.matrixlead.com/monaco-editor/min/vs/loader.js"></script>
<script>
require.config({ paths: { 'vs': 'https://www.matrixlead.com/monaco-editor/min/vs' }})

require(["vs/editor/editor.main"], function () {
var editor = monaco.editor.create(document.getElementById('container'), {
value: 'function x() {\n\tconsole.log("Hello world!");\n}',
language: 'javascript',
minimap: { enabled: false },
scrollBeyondLastLine: false
});
});
</script>
</body>
</html>

当我在 Chrome 中看到它并上下滚动时,整个窗口都有一个滚动条。好像是因为编辑器的高度大于窗口的高度。我只是不想看到任何滚动条。有谁知道如何实现这一点?

编辑 1:在 Safari 10.1.2 中使用 height: calc(100% - 24px)

的屏幕截图

enter image description here

解决方案:

在答案的帮助下,这是适合我的解决方案:

1) 我们需要在独立的 html 文件中而不是在 JSBin 中进行测试

2)关键是使用overflow: hidden

3) 因此,下面的代码在上下滚动时不会产生任何滚动条,当代码较长时底部没有隐藏行:

<html>
<style>
body {
overflow: hidden;
}
.myME {
height: 100%
}
</style>
<body>
<div class="myME" id="container"></div>
<script src="https://www.matrixlead.com/monaco-editor/min/vs/loader.js"></script>
<script>
require.config({ paths: { 'vs': 'https://www.matrixlead.com/monaco-editor/min/vs' }})
require(["vs/editor/editor.main"], function () {
var editor = monaco.editor.create(document.getElementById('container'), {
value: 'function x() {\n\tconsole.log("Hello world!");\n}',
language: 'javascript',
minimap: { enabled: false },
automaticLayout: true,
scrollBeyondLastLine: false
});
});
</script>
</body>
</html>

最佳答案

我相信只要将正文的边距和填充设置为 0,并将 .me 的溢出设置为隐藏,它就可以工作。

.me {
height: 100vh;
overflow: hidden;
}

body {
margin: 0;
padding: 0;
}

这不会导致底部的线条不可见,因为 monaco 会为您处理滚动。

事实上,您获得 native 滚动条只是因为这与摩纳哥实现滚动内容的方式有关。将编辑器容器的溢出设置为隐藏即可正常工作。

P.S 请记住,当您调整窗口大小时,编辑器的大小不会改变,因此您必须检测调整大小并手动调用 editor.layout()

关于javascript - Monaco Editor 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com