我有一个用 Windows 8 (WinJS) 编写的游戏。我的目标是让游戏以横向或填充模式显示,但对于其他方向,只需在屏幕中央显示应用程序徽标。这是我到目前为止所拥有的:
<canvas id="mainCanvas">
</canvas>
<img id="imageLogo" src="/images/logo.png" />
<div id="adControl" style="width: 728px; height: 90px; visibility:visible; margin-bottom: 0px; z-index: 1"
data-win-control="MicrosoftNSJS.Advertising.AdControl"
data-win-options="{applicationId: 'app-id', adUnitId: 'add-unit-id', isAutoRefreshEnabled: 'true'}">
</div>
样式如下:
@media screen and (-ms-view-state: fullscreen-landscape) {
#imageLogo {
visibility:collapse;
display:none;
}
#adControl {
visibility:visible;
display:normal;
}
#mainCanvas {
visibility:visible;
}
}
@media screen and (-ms-view-state: snapped) {
#adControl {
visibility:collapse;
display:none;
}
#mainCanvas {
visibility:collapse;
display:none;
}
#imageLogo {
clear:both;
float:none;
visibility:visible;
display:normal;
margin: 0px 0px;
}
我只包括了全屏横向和快照,因为其他的都是一样的。这是我认为与大小相关的唯一游戏代码:
var setupCanvas = function (changed) {
if (Windows.UI.ViewManagement.ApplicationView.value === Windows.UI.ViewManagement.ApplicationViewState.fullScreenLandscape
|| Windows.UI.ViewManagement.ApplicationView.value === Windows.UI.ViewManagement.ApplicationViewState.filled) {
canvas.width = window.outerWidth;
canvas.height = window.outerHeight - 90;
} else {
clearInterval(gameLoopId);
}
}
基本上它只是调整画布的大小,而其他模式则暂停游戏循环。
它实际上是在横向显示徽标,从而取代广告控件,在其他模式下,它显示所有三个元素,但大小不正确。
CSS有什么问题?(我确实尝试过使用 ms-grid,但根本无法让它工作)