負のマージンを使用して画像を背景に配置していますが、ズームを大きくすると、画像が大きくずれて歪んでしまいます。ズームすると、マージンが負になるため、右側のボックスが上に向かって移動します。
私が使用しているコードの下を見つけてください:-
<div class="platform-row" style="float: right; margin-right: 145px; padding: 2px;">
<span><a href="download/index.html">
<img src="assets/Box.png" border="0" /></a></span><br>
<div class="platform-row-box">
SOME TEXT GOES HERE...................
</div>
<a href="download/index.html">
<div class="getmxit">Get ABC Now</div>
</a>
<div style="background: black; margin-top: 3px; width: 181px; opacity: .8; padding: 2px">
<span><a class="platform-icon Apple" href="download/ios/index.html"></a></span>
<span><a class="platform-icon Android" href="download/Android/index.html"></a></span>
</div>
</div>
CSS:
.platform-row {
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
margin-top: -530px;
margin-left: 700px;
}
.platform-row .platform-row-box {
color: white;
font-size: 14px;
margin: 0 auto;
width: 181px;
opacity: .8;
margin-top: -170px;
position: fixed;
}
@media screen and (max-width: 640px) {
.platform-row {
padding-right: 55%;
}
}
@media screen and (max-width: 479px) {
.platform-row {
margin-top: 40px;
padding-right: 35%;
}
}
.platform-icon {
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
transition: opacity 0.2s;
/**background-image: url("platform_icons-14a66f5cbf10a328f7b38e6070c26e62.png");**/
background-image: url("Home_Get.png");
display: inline-block;
height: 25px;
width: 25px;
margin-right: 0px;
opacity: 1;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
.platform-icon {
background-image: url("platform_icons%402x-dfed2cc115fa8b344e08c9072408095a.png");
background-size: 454px 88px;
-webkit-background-size: 454px 88px;
}
}
編集:
これは、マージンが負であるためにズームインしすぎると発生します。
免責事項:この回答は、あなたが求めていると思うことに基づいています。あなたの問題に対するより具体的な解決策については、あなたが達成しようとしていることに関してより具体的にしてください。
画像が比較的配置されているという事実を補うために、負のマージンとパディングを使用しているようです(デフォルト)。レイアウトを壊さないようにするには、次の2つの方法のいずれかで同じことを実現できます。
方法1(理想的ではありません):背景画像を現在のコンテナーの外に移動し、より広いドキュメントコンテキストに移動します。次に、レイアウトの残りの部分に影響を与えないように、画像を絶対に配置します。
HTML
<img class="background" src="somedir/background.png">
<div class="platform-row">....</div>
CSS
.background {
position: absolute;
top: 0; /* defining the top/left/bottom/right declarations are important! */
left: 0;
/* bottom: 0; apply these two if you want your image to stretch and fill the entire viewport */
/*right: 0; */
height: 100%;
width: auto;
}
方法2(より良い):背景画像をbackground
として本体(またはできれば最大の高さ/幅のラッパー)に適用するだけです。
HTML
<div class="page-wrapper">
<div class="platform-row">....</div>
<!-- other page content -->
</div> <!-- end of page-wrapper -->
CSS
.page-wrapper {
background: transparent url('/images/background.png') 0 0 no-repeat;
/* fix the image in place (not supported in older browsers) */
background-position: fixed;
}
また、余白を使用して.platform-row-box
を配置する代わりに、position: fixed
スタイル(既に定義済み)を使用することもできますが、top/right/bottom/left
値を定義する必要があります。
.platform-row-box {
position: fixed;
top: 40px;
right: 20%;
}
負のマージンに代わるシンプルで優れた代替手段を探している人のために:
悪い、ドキュメントフローの混乱を引き起こします:
margin-top: -2px;
良い代わりに:
position: relative;
top: -2px;
Floatと一緒に反対側のマージンに正の値を指定します(つまり、左に-20px移動する場合は、floatをそのdivに右に指定し、右マージンに正の値を指定します