一个固定定位问题,求大神解答

qingwadaxia_1 2017-12-01 04:35:46
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
<style>
*{padding:0;margin:0;}
img{width:100%;}
.aa{width:100%;height:2000px;margin-top: 45px;}
.bb{width:100%;height:45px;position: fixed;top: 0px;z-index: 9999;}
</style>
</head>
<body>
<div class="aa"><img src="http://www.gerenblog.com/images/11.jpg"></div>
<div class="bb"><img src="http://www.gerenblog.com/images/22.jpg"></div>
</body>
</html>


这是手机端网页,想把22.jpg 固定定位在11.jpg上 如何才能做到正好无缝对接,就好像下面的图片:



上面那张图才是我想要的最终效果,无论模拟任何尺寸都能保持无缝对接,

但是却怎么改 ,都会出现下面这两种情况:





在各种尺寸下,表现情况各不一样,有的出现空隙,有的过于紧凑,超过了,

怎样写才能完美兼容各种尺寸呢 不知道我说的清不清楚
...全文
175 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingwadaxia_1 2017-12-02
  • 打赏
  • 举报
回复
引用 11 楼 jslang 的回复:
其实根本不需要用calc都js,图片比例是固定的, 计算出 100/640*79 = 12.34375 直接就可以设置 margin-top: 12.34375%;
真心多谢 window.onresize = function () { setTimeout(getMarginTop, 100); } 这个是根据不同屏幕尺寸,100毫秒内获取向上边距的高度是吗
天际的海浪 2017-12-01
  • 打赏
  • 举报
回复
其实根本不需要用calc都js,图片比例是固定的, 计算出 100/640*79 = 12.34375 直接就可以设置 margin-top: 12.34375%;
qingwadaxia_1 2017-12-01
  • 打赏
  • 举报
回复
引用 9 楼 qingwadaxia_1 的回复:
[quote=引用 8 楼 jslang 的回复:] 再有就是通过js设置margin-top

<style>
*{padding:0;margin:0;}
img{width:100%;}
.aa{width:100%;height:2000px;}
.bb{width:100%;position: fixed;top: 0px;z-index: 9999;}
</style>
 </head>
 <body>
  <div id="aa" class="aa"><img src="http://www.gerenblog.com/images/11.jpg"></div>
  <div class="bb"><img id="bbimg" src="http://www.gerenblog.com/images/22.jpg"></div>
<script type="text/javascript">
function getMarginTop() {
	var aa = document.getElementById("aa");
	var bbimg = document.getElementById("bbimg");
	aa.style.marginTop = bbimg.offsetHeight+"px";
}
window.onload = getMarginTop;
window.onresize = function () {
	setTimeout(getMarginTop, 100);
}
</script>

多谢大神 分给您了[/quote]window.onresize = function () { setTimeout(getMarginTop, 100); }不过这个定时器 是做什么用的呢 为什么要开这个东西呢
qingwadaxia_1 2017-12-01
  • 打赏
  • 举报
回复
引用 8 楼 jslang 的回复:
再有就是通过js设置margin-top

<style>
*{padding:0;margin:0;}
img{width:100%;}
.aa{width:100%;height:2000px;}
.bb{width:100%;position: fixed;top: 0px;z-index: 9999;}
</style>
 </head>
 <body>
  <div id="aa" class="aa"><img src="http://www.gerenblog.com/images/11.jpg"></div>
  <div class="bb"><img id="bbimg" src="http://www.gerenblog.com/images/22.jpg"></div>
<script type="text/javascript">
function getMarginTop() {
	var aa = document.getElementById("aa");
	var bbimg = document.getElementById("bbimg");
	aa.style.marginTop = bbimg.offsetHeight+"px";
}
window.onload = getMarginTop;
window.onresize = function () {
	setTimeout(getMarginTop, 100);
}
</script>

多谢大神 分给您了
天际的海浪 2017-12-01
  • 打赏
  • 举报
回复
再有就是通过js设置margin-top

<style>
*{padding:0;margin:0;}
img{width:100%;}
.aa{width:100%;height:2000px;}
.bb{width:100%;position: fixed;top: 0px;z-index: 9999;}
</style>
 </head>
 <body>
  <div id="aa" class="aa"><img src="http://www.gerenblog.com/images/11.jpg"></div>
  <div class="bb"><img id="bbimg" src="http://www.gerenblog.com/images/22.jpg"></div>
<script type="text/javascript">
function getMarginTop() {
	var aa = document.getElementById("aa");
	var bbimg = document.getElementById("bbimg");
	aa.style.marginTop = bbimg.offsetHeight+"px";
}
window.onload = getMarginTop;
window.onresize = function () {
	setTimeout(getMarginTop, 100);
}
</script>

天际的海浪 2017-12-01
  • 打赏
  • 举报
回复
引用 5 楼 qingwadaxia_1 的回复:
[quote=引用 2 楼 jslang 的回复:] margin-top: calc(100%/640*79); 640*79是22.jpg的实际尺寸
不对啊, 好像不行。。[/quote] 怎么不行?
天际的海浪 2017-12-01
  • 打赏
  • 举报
回复
引用 4 楼 qingwadaxia_1 的回复:
这是css3的吗 calc 有其它兼容更好的方法吗 请问
calc在ie9就支持了。具体看这个 http://css.doyoe.com/values/functional/calc().htm
qingwadaxia_1 2017-12-01
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
margin-top: calc(100%/640*79); 640*79是22.jpg的实际尺寸
不对啊, 好像不行。。
qingwadaxia_1 2017-12-01
  • 打赏
  • 举报
回复
这是css3的吗 calc 有其它兼容更好的方法吗 请问
qingwadaxia_1 2017-12-01
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
margin-top: calc(100%/640*79); 640*79是22.jpg的实际尺寸
大神 我知道是图片等比例缩放造成高度不一致, 但是我却一直不知道如何解决这个问题 只能写不同的屏幕尺寸去适应,特别麻烦 今天看到这个解决方法 真的是好 请问这个有兼容问题吗 另外是唯一的解决方法吗
天际的海浪 2017-12-01
  • 打赏
  • 举报
回复
margin-top: calc(100%/640*79); 640*79是22.jpg的实际尺寸
天际的海浪 2017-12-01
  • 打赏
  • 举报
回复
你img设置width:100%,img的高度也会等比例缩放,窗口的宽度不同img的高度也不同啊,你.aa中margin-top: 设置固定值45px当然不行了

61,115

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧