EDIT 2016-07-04(この質問が一般的になっているため): これはChromeのバグです 。開発者は 積極的に修正に取り組んでいます 。
EDIT 2017-05-14バグは修正されたようです。修正は Chrome 6 で導入されます
EDIT 2018-05-04修正がマージされましたが、 バグはまだ存在しているようです 。
だから私はこのCSSによって画面の中央に配置されている非常に醜いウィンドウを持っています:
.popup
{
position: fixed;
top: 0;
bottom: 0;
transform: translate(-50%, -50%);
}
ただし、Chrome(フォントは本当にぼやけて見えます)では次のようになります):
しかし、Firefoxでは次のようになります。
transform
ルールを削除すると、テキストは再び見た目もサクサクしますが、正しく中央揃えされなくなります。
chrome://flags
に移動して#disable-direct-write
を実行すると、見栄えが良くなりますが、ユーザーがそれを実行することはないため、問題は解決しません。
ウィンドウを中央に配置したままフォントを見栄えよくするにはどうすればよいですか?
私のchromeバージョンは44.0.2403.155
です
背景キャンバスにレンダリングするWebGLを使用したthree.js
デモがあります。デモを無効にすると、問題は発生しなくなります。
ピクセルの半分の問題。
試してください:transform: translate(-50%, -51%);
それが動作します!
関連するディスカッションからの提案は私のために問題を解決しました: https://stackoverflow.com/a/46117022/7375996
いくつかのオフセットで計算を使用すると、私の場合の問題が解決しました:
transform: translate(calc(-50% + 0.5px), calc(-50% + 0.5px));
-webkit-filter: blur(0)
は、WindowsのChrome)でぼやけたフォントを修正できることがわかりました:
#projectPopup {
...
-webkit-filter: blur(0);
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
アニメーションの後に変換の正規化を使用します。
または、ズームを2倍にしてテクスチャをスケーリングしてから、もう一度縮小します。他の複雑な変換や変換が原因でこれを適用できない場合があり、完全ではありません。
...{
zoom:2;
-webkit-transform: scale(0.5);
transform: scale(0.5);
}
私はさまざまな解決策をさまざまな、時には恐ろしい組み合わせで試しました:
translateY
の代わりに_translate3d
_zoom:2; transform: scale(0.5);
またはzoom:0.5; transform: scale(2);
transform: translate(calc(-50% + 0.5px), calc(-50% + 0.5px));
-webkit-filter: blur(0);
perspective: 1000px
_scale(1.0, 1.0)
-webkit-font-smoothing: subpixel-antialiased;
_2019年7月には機能しません。
私がモーダルで見つけた唯一の解決策は、中央に配置する必要があります-変換の代わりにflexbox配置を使用するには:変換します。
_.modal__container {
display: flex;
justify-content: center;
align-items: center;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.5);
}
.modal {
box-sizing: border-box;
max-width: 80%;
max-height: 80%;
padding: 20px;
overflow-y: auto;
background: #fff;
}
_
_<div class="modal__container">
<div class="modal">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
_
2019-04-15、まだChromeで起こっています。その変化position: fixed
からabsolute
に修正:
.popup
{
position: absolute; <-- just like that
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
絶対値を使用すると、特定のケースに適する場合と適さない場合があります。ちょうど2セントです。
要素の高さは偶数でなければなりません https://prnt.sc/mtxxa2