私は一連のCSS六角形を持っています。六角形内にギャップが表示されますが、異なるビューポート幅に CSS スケール変換を適用したいと思います。
この問題は、どのスケール値でも Firefox で最も顕著です。整数以外の値にスケーリングすると、Chrome でも表示されます。Firefox はさらに、:before
および:after
疑似要素に不可解な水平線を表示しますが、これらの線は境界線の中央にあり、形状の端にはありません。
切れ端
私のマークアップとスタイルの簡略化されたバージョンは以下にあり、JS Fiddleにもあります。
HTML:
<div class="scale">
<div class="hex"></div>
</div>
スタイル:
.scale {
margin: 8em auto;
text-align: center;
-webkit-transform:scale(2.5, 2.5);
-moz-transform:scale(2.5, 2.5);
-ms-transform:scale(2.5, 2.5);
-o-transform:scale(2.5, 2.5);
transform:scale(2.5, 2.5);
}
.hex {
position: relative;
display: inline-block;
margin: 0 30px;
width: 60px;
height: 104px;
background-color: #000;
&:before, &:after {
position: absolute;
width: 0;
border: 1px solid transparent;
border-width: (52px) (30px);
content: "";
}
&:before {
border-right-color: #000;
right: 100%;
}
&:after {
border-left-color: #000;
left: 100%;
}
}
スクリーンショット (Linux Mint)
Chrome: x2 でスケーリング (整数値で明らかなギャップなし)
Firefox: x2 でスケーリング (ギャップ、および水平線)
助けはありますか?
私の推測では、数値の丸めが原因でこれらの線が表示されていると思いますが、本当にアイデアがありません。これを修正することは可能ですか?このスケーリングに使用できる別のアプローチはありますか? ご回答ありがとうございます。