Html 我如何获得<;pre style=";溢出:滚动;高度:150px“&燃气轮机;要在特定的滚动行上显示?

Html 我如何获得<;pre style=";溢出:滚动;高度:150px“&燃气轮机;要在特定的滚动行上显示?,html,Html,我需要pre中显示的代码部分指向特定的行号。如果pre中有100行,我希望150px框中央右侧显示的是第51行。您可以在jQuery中使用: $("#code").scrollTop(topPosition); 其中scrollPosition是“可滚动区域上方视图中隐藏的像素数” 困难在于计算出这个值应该是多少。如果您知道每行的高度(可以使用CSS中的font size设置),则可以使用: topPosition = lineHeight * (lineNumber - 1); 但您希望指

我需要pre中显示的代码部分指向特定的行号。如果pre中有100行,我希望150px框中央右侧显示的是第51行。

您可以在jQuery中使用:

$("#code").scrollTop(topPosition);
其中
scrollPosition
是“可滚动区域上方视图中隐藏的像素数”

困难在于计算出这个值应该是多少。如果您知道每行的高度(可以使用CSS中的
font size
设置),则可以使用:

topPosition = lineHeight * (lineNumber - 1);

但您希望指定的行位于容器的中间,因此可能:

topPosition = lineHeight * (lineNumber - 1) - 70;
if (topPosition < 0) topPosition = 0;
topPosition=lineHeight*(行号-1)-70;
如果(topPosition<0)topPosition=0;
我想试试这个,看看你是否能让它工作。

试试这个(10行):


1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12

要实现这一点,您的
pre
元素需要一个固定的行高度。对于150px的高度,我建议行高为15px,字体大小为11px。这将确保在可滚动区域中有10行

其余部分是一些数学知识,并使用
scrollTop
属性

例如:

function goToLine(centeredLine){
    var pre = document.getElementById('scrollablePre');
    pre.scrollTop = (centeredLine - 5) * 15;
};

7年后。。。如果能解释一下这是如何工作的,那就好了。顺便说一句:
pc
是pica:1个pica<代码>1件=
12件
=1件中的1/6件。请参阅MDN上的和。但与像素一样,这也是一个绝对长度单位(
1px
=1in的1/96),因此在许多情况下,这可能不起作用。