温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

margin的无边界问题以及图片的block属性问题

发布时间:2020-06-16 18:35:53 来源:网络 阅读:534 作者:你的倾城 栏目:开发技术

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Document</title>

<style>

*{

padding:0;

margin:0;

}

html{

height:100%;

font-size:100px;

}

body{

height:100%;

}

.top-img{

   width:100%;

   height:0.4rem;

   position:absolute;

   left:0;

   top:0;

}

.div1{

margin-top:1rem;

width:100%;

height:1rem;

background:red;

}

.div2{

width:100%;

height:1rem;

background:blue;

}

</style>

</head>

<body>

<img src="p_w_picpaths/ms_01.png" alt="" class="top-img">

<div class="div1"></div>

<div class="div2"></div>

<script>

var screenW = document.documentElement.offsetWidth || document.body.offsetWidth;

console.log(screenW)

var nowW = screenW/640 * 100;

var oHtml = document.getElementsByTagName('html')[0];

oHtml.style.fontSize = nowW + 'px';

console.log(nowW)

</script>

</body>

</html>


 这是移动端开发的一个小测试。按照上面的代码,最终的结果是页面产生了滚动条,为啥呢!!!,纠结死。。。

究其原因,发现其实是margin的无边界问题,.top-img设置了绝对定位,所以在给.div1加上margin-top后由于没有相对的边界所以body的高度被撑开了所以就有了滚动体。

解决办法,去掉.top-img的绝对定位改为:

.top-img{

    width:100%;

    height:0.4rem;

}

以为这样就行了,no!,这个时候.top-img会把上面下面都撑开一段距离,不止3像素,不知道到底是啥原因,反正再加上display:block就搞定了。。。



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI