キャンバスなしで HTML5 ゲームを作成していて、div の比率を 16:9 に維持したいと考えています。これは JavaScript で簡単に実行でき、完全に機能します。しかし、div 自体の内部の要素は、(画面が大きい場合) 大きくなりすぎることがあります。最大/最小の高さ/幅は知っていますが、ゲームがスケーリングされているかのようにする他の方法はありますか?
js と css のコードは次のとおりです。
function fix() {
var gameWidth = $(window).width();
var gameHeight = $(window).height();
var fitX = gameWidth / 800;
var fitY = gameHeight / 480;
var screenRatio = gameWidth / gameHeight;
var optimalRatio = Math.min(fitX, fitY);
// checking ratio
if( screenRatio >= 1.77 && screenRatio <= 1.79)
{
$('#game').width ($(window).Width + 'px');
$('#game').height ($(window).Height + 'px');
}
else
{
$('#game').width (800 * optimalRatio + 'px');
$('#game').height (480 * optimalRatio + 'px');
}
$('#game').center();
}
関数はその仕事を完全にうまくやっています。しかし、ここのCSSは私が問題を抱えているものです。
#game {
width: 800px;
height: 480px;
background: url(bg.png);
position: relative;
}
.landing {
position: absolute;
width: 20%;
max-width: 190px;
height: 60%;
max-height: 290px;
bottom: 10%;
background: #ff6600;
text-align: center;
}
190/290 の比率を維持しながら着陸がスケーリングされるようにしたい..ありがとう。