chcę zrobić bardzo prostą Monaco Redaktor: JSBin:Wysokość Monako Editor
<!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>
Kiedy widzę go w Chrome i przewijać w górę iw dół, tam jest scroller dla całego okna. Wydaje się, że dzieje się tak dlatego, że wysokość edytora jest większa niż wysokość okna. Po prostu nie chcę widzieć żadnych przewijaczy. Czy ktoś wie, jak to osiągnąć?
Edit 1: zrzut ekranu w Safari 10.1.2 z height: calc(100% - 24px)
Rozwiązanie:
Z pomocą odpowiedzi, o to rozwiązanie działa dla mnie:
1) musimy to sprawdzić w niezależnym pliku html zamiast w JSBin
2) klucz jest w użyciu overflow: hidden
3) W wyniku tego, poniższy kod nie tworzy żadnego paska przewijania podczas przewijania w górę iw dół, nie istnieją żadne linie ukryte na dnie, gdy kod jest długa :
<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>
Problem "przepełnienia: ukryty" polega na tym, że podczas pisania tekstu z wieloma liniami część tekstu jest rzeczywiście ukryta na dole. Jest to szczególnie widoczne w Safari. Nie tego chcę. – SoftTimur
rozwiązaniem jest OK człowiek. zmienić 100vh na 98vh i problem zniknął ... –
Ale skąd pochodzi '98vh'? – SoftTimur