javascript 当< div>用户放大和缩小页面时,如何保持大小不变?

wd2eg0qa  于 2023-05-12  发布在  Java
关注(0)|答案(6)|浏览(295)

有没有一种html / css / javascipt的方法来在用户缩放页面时保持一个恒定的大小?也就是说,使用control-plus增加文本大小,使用control-minus减小文本大小。

编辑:我想,最重要的是,我希望的内容也保持相同的大小。

谢谢!

**编辑:**我的目标是(现在也是)防止AdSense扩大到掩盖页面上的许多真实内容。但是来发现(谢谢你@thirtydot)真的没有好的方法来做到这一点。答案,对我来说(谢谢你@尼尔!):给予the overflow:scroll,以便牺牲它的内容,而不是我试图显示的内容。

ao218c7q

ao218c7q1#

.box {
    background: red;
    width: 5vw;
    height: 10vh;
    position: absolute;
    top: 10vh;
    left: 5vw;
}
<div class="box"></div>
disho6za

disho6za2#

没有什么好办法(阅读:* 可靠 *)来做到这一点。抱歉了。
你所要求的基本上归结为检测浏览器的缩放级别,这里有一个很好的答案(确认这有多困难):

  • 如何在所有现代浏览器中检测页面缩放级别?

正如答案中所述,有一种“有点”跨浏览器疯狂的方式涉及使用Flash,但也有缺点:

  • 它使用Flash。
  • 如果用户 * 加载了你的页面 * 已经放大了,这是不可靠的。
  • 它使用Flash。是的,这太糟糕了,我说了两次。想想那些iPhone/iPad。

不管怎样,它在这里:
http://blog.sebastian-martens.de/2009/12/how-to-detect-the-browser-zoom-level-change-browser-zoo/

vktxenjb

vktxenjb3#

要使div大小不随缩放而变化(但不随其中的内容变化),请执行以下操作:
在你的css里面,这个div:

**最小宽度:100%;

max-width:100%;**
这将冻结宽度,你也可以对高度做同样的事情。

pgky5nke

pgky5nke4#

我不知道你的意思,只是用CSS:

div#id {
    width: 100px; /*or some other #*/
    height: 100px; /*or some other #*/
}

联系我们

<div id="id">some content</div>
kmpatx3s

kmpatx3s5#

你应该能够在css中使用px度量来设置宽度和高度
例如

div
{
width:100px; height:200px;
}
js81xvg6

js81xvg66#

我在另一篇文章中读到了一个我还没有测试过的解决方案...
Maintain div size (relative to screen) despite browser zoom level
这是使用的javascript:

//This floating div function will cause a div to float in the upper right corner of the screen at all times. However, it's not smooth, it will jump to the proper location once the scrolling on the iPhone is done. (On my Mac, it's pretty smooth in Safari.) 

function flaotingDiv(){

    //How much the screen has been zoomed.
    var zoomLevel = ((screen.width)/(window.innerWidth));
    //By what factor we must scale the div for it to look the same.
    var inverseZoom = ((window.innerWidth)/(screen.width));
    //The div whose size we want to remain constant.
    var h = document.getElementById("fontSizeDiv");

    //This ensures that the div stays at the top of the screen at all times. For some reason, the top value is affected by the zoom level of the Div. So we need to multiple the top value by the zoom level for it to adjust to the zoom. 
    h.style.top = (((window.pageYOffset) + 5) * zoomLevel).toString() + "px";

    //This ensures that the window stays on the right side of the screen at all times. Once again, we multiply by the zoom level so that the div's padding scales up.
    h.style.paddingLeft = ((((window.pageXOffset) + 5) * zoomLevel).toString()) + "px";

    //Finally, we shrink the div on a scale of inverseZoom.
    h.style.zoom = inverseZoom;

}

//We want the div to readjust every time there is a scroll event:
window.onscroll = flaotingDiv;

相关问题