我有以下html:
<body>
<h1>Something</h1>
<img id="myid" src='images/bigimage.png'/>
<div id="container">
<div id="fast-back">
<p class="big-font">SOMETHING</p>
<p class="small-font">SOMEThiNG ELSE</p>
</div>
</div>
</body>
它的CCS是:
html {
overflow-x: hidden;
}
body {
margin: 0;
padding: 0;
background: url(images/body-background.png) top no-repeat;
min-height: 860px;
height: 860px;
}
h1 {
margin: 0;
padding: 0;
position: absolute;
color: white;
visibility: hidden;
}
#container {
margin: 0 auto;
padding: 0;
position: relative;
min-width: 1336px;
height: 860px;
width: 1336px;
}
#myid{
position: absolute;
left: 50%;
right: 50%;
margin-left: -1280px;
margin-right: -1280px;
z-index: 1004;
}
#fast-back {
position: relative;
margin-left: 15%; /*it moves even using pixel*/
top: 272px;
z-index: 99999;
text-align: center;
width: 126px;
}
但是,当我调整浏览器窗口大小时,“快退”div会向右移动。
如何防止此行为?
谢谢!
答案 0 :(得分:0)
查看#fastback
CSS规则,您在margin-left
上使用百分比而不是像素。将其更改为像素作为度量单位。
如果您使用百分比作为度量单位,则元素的左边距将根据视口移动。
另一方面,如果您使用像素,即使调整了浏览器的大小,边距也会保留在同一位置。
解决方法是移除#container
的宽度。请参阅以下链接。
http://jsfiddle.net/jlratwil/LB8rf/1/
第一个解决方案不起作用的原因是因为容器的宽度设置为1336像素并且通过margin: 0 auto
居中对齐。如果在调整大小期间浏览器视口宽度超过1336像素,则#fastback
元素将移动。