HTML-контейнер Unity Web GL: как «растянуть» ширину окна в зависимости от ширины браузера?

#html #css

#HTML #css — файл

Вопрос:

Unity WebGL build создает HTML-шаблон, в котором я могу указать размер ширины и высоты.

Как я могу установить ширину div id =»GameContainer» в зависимости от ширины окна браузера, чтобы оно всегда было заполнено?

 .webgl-content * {
  border: 0; 
  margin: 0; 
  padding: 0
}

.webgl-content {
  position: absolute; 
  top: 50%; 
  left: 50%; 
  -webkit-transform: translate(-50%, -50%); 
  transform: translate(-50%, -50%);
}

.webgl-content .logo, 
.progress {
  position: absolute; 
  left: 50%; 
  top: 50%; 
  -webkit-transform: translate(-50%, -50%); 
  transform: translate(-50%, -50%);
}

.webgl-content .logo {
  background: url('progressLogo.Light.png') no-repeat center / contain; 
  width: 154px; 
  height: 130px;
}

.webgl-content .progress {
  height: 18px; 
  width: 141px; 
  margin-top: 90px;
}

.webgl-content .progress .empty {
  background: url('progressEmpty.Light.png') no-repeat right / cover; 
  float: right; 
  width: 100%; 
  height: 100%; 
  display: inline-block;
}

.webgl-content .progress .full {
  background: url('progressFull.Light.png') no-repeat left / cover; 
  float: left; 
  width: 0%; 
  height: 100%; 
  display: inline-block;
}

.webgl-content .logo.Dark {
  background-image: url('progressLogo.Dark.png');
}

.webgl-content .progress.Dark .empty {
  background-image: url('progressEmpty.Dark.png');
}

.webgl-content .progress.Dark .full {
  background-image: url('progressFull.Dark.png');
}

.webgl-content .footer {
  margin-top: 5px; 
  height: 38px; 
  line-height: 38px; 
  font-family: Helvetica, Verdana, Arial, sans-serif; 
  font-size: 18px;
}

.webgl-content .footer .webgl-logo, 
.title, 
.fullscreen {
  height: 100%; 
  display: inline-block; 
  background: transparent center no-repeat;
} 

.webgl-content .footer .webgl-logo {
  background-image: url('webgl-logo.png'); 
  width: 204px; 
  float: left;
}

.webgl-content .footer .title {
  margin-right: 10px; 
  float: right;
}

.webgl-content .footer .fullscreen {
  background-image: url('fullscreen.png'); 
  width: 38px; 
  float: right;
}

form input[type="file"] {
  display: none;
  position: absolute;
}  
 <body>
  <div class="webgl-content">
    <div id="gameContainer" style="width: 960px; height: 600px; margin: auto"></div>
  </div>

  <!-- BEGIN WEBGL FILE BROWSER LIB -->
  <form id="fileBrowserPopup" style="display: none;">
    <img src="TemplateData/2x2.png" style="position: absolute; width: 100%; height: 100%;"/>
    <img src="TemplateData/White-Button.png" style="position: absolute;  top: 35%; left: 38%; width: 25%; height: 28%;"/>

      <label for="fileToUpload">
        <img src="TemplateData/upload_button.png" style="position: absolute; top: 45%; left: 42.8%; width: 16%; height: 10%;"/>
      </label>
      <input type="File" name="fileToUpload" id="fileToUpload" style="width: 0px; height: 0px;" onchange="sendfile(event);return false;" />
  </form>
</body>  

Ответ №1:

Вы можете использовать vw который обозначает атрибут view width. vh обозначает высоту обзора.

Узнайте больше о возможных значениях, которые вы можете использовать в MDN https://developer.mozilla.org/en-US/docs/Web/CSS/length#Viewport-percentage_lengths

Поэтому, если вы хотите, чтобы он был таким же широким и высоким, как окно просмотра, вы можете установить его на:

 <div id="gameContainer" style="width: 100vw; height: 100vh; margin: auto"></div>
  

Как показано в этом фрагменте, где я также переместил встроенный CSS в файл css.

 .body {
   margin: 0px;
}
#gameContainer {
  width: 100vw;
  height: 100vh;
  display: block;
  background-color: black;
}

.webgl-content * {
  border: 0; 
  margin: 0; 
  padding: 0
}

.webgl-content {
  position: absolute; 
  top: 50%; 
  left: 50%; 
  -webkit-transform: translate(-50%, -50%); 
  transform: translate(-50%, -50%);
}

.webgl-content .logo, 
.progress {
  position: absolute; 
  left: 50%; 
  top: 50%; 
  -webkit-transform: translate(-50%, -50%); 
  transform: translate(-50%, -50%);
}

.webgl-content .logo {
  background: url('progressLogo.Light.png') no-repeat center / contain; 
  width: 154px; 
  height: 130px;
}

.webgl-content .progress {
  height: 18px; 
  width: 141px; 
  margin-top: 90px;
}

.webgl-content .progress .empty {
  background: url('progressEmpty.Light.png') no-repeat right / cover; 
  float: right; 
  width: 100%; 
  height: 100%; 
  display: inline-block;
}

.webgl-content .progress .full {
  background: url('progressFull.Light.png') no-repeat left / cover; 
  float: left; 
  width: 0%; 
  height: 100%; 
  display: inline-block;
}

.webgl-content .logo.Dark {
  background-image: url('progressLogo.Dark.png');
}

.webgl-content .progress.Dark .empty {
  background-image: url('progressEmpty.Dark.png');
}

.webgl-content .progress.Dark .full {
  background-image: url('progressFull.Dark.png');
}

.webgl-content .footer {
  margin-top: 5px; 
  height: 38px; 
  line-height: 38px; 
  font-family: Helvetica, Verdana, Arial, sans-serif; 
  font-size: 18px;
}

.webgl-content .footer .webgl-logo, 
.title, 
.fullscreen {
  height: 100%; 
  display: inline-block; 
  background: transparent center no-repeat;
} 

.webgl-content .footer .webgl-logo {
  background-image: url('webgl-logo.png'); 
  width: 204px; 
  float: left;
}

.webgl-content .footer .title {
  margin-right: 10px; 
  float: right;
}

.webgl-content .footer .fullscreen {
  background-image: url('fullscreen.png'); 
  width: 38px; 
  float: right;
}

form input[type="file"] {
  display: none;
  position: absolute;
}  
 <body>
  <div class="webgl-content">
    <div id="gameContainer"></div>
  </div>

  <!-- BEGIN WEBGL FILE BROWSER LIB -->
  <form id="fileBrowserPopup" style="display: none;">
    <img src="TemplateData/2x2.png" style="position: absolute; width: 100%; height: 100%;"/>
    <img src="TemplateData/White-Button.png" style="position: absolute;  top: 35%; left: 38%; width: 25%; height: 28%;"/>

      <label for="fileToUpload">
        <img src="TemplateData/upload_button.png" style="position: absolute; top: 45%; left: 42.8%; width: 16%; height: 10%;"/>
      </label>
      <input type="File" name="fileToUpload" id="fileToUpload" style="width: 0px; height: 0px;" onchange="sendfile(event);return false;" />
  </form>

</body>