@Tedfoo - 谢谢。将此 HTML 添加到 <head>:
<meta name="viewport" content="width=device-width">
将其添加到 CSS 中也可能会有所帮助:@-ms-viewport{ width: device-width;} source
按照 Sunny 的建议,在移动设备上使用响应式代码的下一步是在 CSS 中添加媒体查询。
但是,如果您正在做一些相当直接的事情,只需将任何固定像素大小更改为百分比,并使用其他可缩放值(如“em”)来设置高度就足够了。例如
<div style="width:100%">
This goes across the full width of the page.</div>
或者对于表格:
<tr style="height:2em"> <!-- this row is double the normal line height-->
Viewport 将处理您需要的大部分内容。
如果问题仍然存在,您是否可以检查以找出检测到的高度值或发生了什么错误?
仅限手机编辑
从您的 jquery 看来,您希望两个 div 大小相同,并且在使用手机时不显示 something-else 的内容。为此,您不需要任何 jQuery,只需将其添加到您的 CSS 中,将宽度值设置为用于此布局的最大屏幕尺寸。
@media screen and (max-width:450px)
{
#something-else {
display :"none";
}
}
使用 javascipt 编辑
如果<div> 的高度可以更改,则将您的 Jquery 替换为 Javascript。不需要 Jquery,因为加载的 HTML 可以使用 HTML 文档 (DOM) 命令动态编辑,并且只需要一行代码。
您的to-be-styled ID 的名称也是一个问题:使用两个连字符会导致它失败,所以我在下面的代码中对其进行了重命名。 javascript 必须包含在之后 <div>s 被创建,例如在</body> 是一个有用的地方之前。代码是:
<head>
<title>My Code</title>
<meta name="viewport" content="width=device-width">
</head>
<body>
<div id="to-style">
<div id="my-div">text content</div>
<div id='something-else'>something-else text content</div>
</div>
rest of document
<script>
document.getElementById("to-style").style.height=document.getElementById('my-div').style.height;
</script>
</body>
CSS:
#to-style {
overflow:hidden;
}
将两个高度设置为相等的“副作用”是my-div 会自动尝试将所有文本填充到一个很小的空间中,而不是使用溢出。例如,将高度设置为 2px,您将看到重叠的文本。要解决此问题,您可以通过添加以下代码来隐藏 something-else div:
document.getElementById("something-else").style.display = "none" ;
或您可以像前面部分一样添加 CSS:
@media screen and (max-width:450px)
{
#something-else {
display :none;
}
}
<div>s 具有不同固定初始值的演示:http://jsfiddle.net/3jk3rg7a/2/