В Android, почему виртуальная клавиатура портит макет веб-страницы? - PullRequest
0 голосов
/ 28 мая 2020

Вот моя веб-страница:

<html class="h-100">
	<head>
		<!-- Required meta tags -->
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

		<!-- Bootstrap CSS -->
		<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
		<!-- Optional JavaScript -->
		<!-- jQuery first, then Popper.js, then Bootstrap JS -->
		<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
		<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
		<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
		
		<script>
			$( document ).ready(function(){
				$(".btn").click(function (){
					if ($(this).hasClass("active")) {
						$(this).removeClass("btn-success").addClass("btn-danger");
						$(this).children(".badge").removeClass("badge-success").addClass("badge-danger");
						$(this).children(".badge").text("Off");
					} else {
						$(this).removeClass("btn-danger").addClass("btn-success");
						$(this).children(".badge").removeClass("badge-danger").addClass("badge-success");
						$(this).children(".badge").text("On");
					}
				});
				

			
			});
			
		</script>
		<style>
			video{
				object-fit:cover;
			}
			
			#upper {
				height:30%;
				width:100%;
			}
			#wrapper {
				flex-direction:column;
			}
			#lower {
				height:70%;
				flex-grow: 0;
			}
			
		</style>
	</head>
	<body class="container-fluid p-1 h-100">
		<div id="wrapper" class="d-flex container-fluid border border-primary h-100 p-0">
			<div id="upper" class="row p-0 no-gutters">
				<div class="col p-0 position-relative">
					<video id="selfView" class="h-100 w-100 position-absolute" controls muted>
						 <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
					</video>
				</div>
			</div>
			<div id="lower" class="row p-0 no-gutters d-flex flex-column">
				<div class="row p-0 no-gutters">
					<div class="d-flex flex-row justify-content-center col p-1 border border-success border-left-0 border-right-0">
						<div class="btn-group-toggle p-1" data-toggle="buttons">
						  <label class="btn btn-sm btn-lg btn-success">
							Share Video:<span class="badge badge-success">On</span>
							<input type="checkbox" id="shareVideo" checked>
						  </label>
						</div>
						<div class="btn-group-toggle p-1" data-toggle="buttons">
						  <label class="btn-sm btn btn-lg btn-success">
							Share Audio:<span class="badge badge-success">On</span>
							<input type="checkbox" id="shareAudio" checked>
						  </label>
						</div>
						<div class="btn-group-toggle p-1" data-toggle="buttons">
						  <label class="btn-sm btn btn-lg btn-danger">
							Share Screen:<span class="badge badge-danger">Off</span>
							<input type="checkbox" id="shareScreen">
						  </label>
						</div>
						<div class="btn-group-toggle p-1">
							<button class="btn-sm btn btn-lg btn-success">Create a meeting</button>
						</div>
					</div>		
				</div>
				<div class="row p-0 no-gutters flex-grow-1 position-relative">
					<div class="col p-0 d-flex flex-column">
						<ul class="nav nav-pills p-1 justify-content-around" id="pills-tab" role="tablist">
						  <li class="nav-item">
							<a class="nav-link active" 
								id="pills-info-tab" data-toggle="pill" 
								href="#pills-info" role="tab" aria-controls="pills-info" aria-selected="true">
								i
							</a>
						  </li>
						  <li class="nav-item">
							<a class="nav-link" 
								id="pills-member-tab" data-toggle="pill" 
								href="#pills-member" role="tab" aria-controls="pills-member" aria-selected="false">
								f
							</a>
						  </li>
						  <li class="nav-item">
							<a class="nav-link" 
								id="pills-message-tab" data-toggle="pill" 
								href="#pills-message" role="tab" aria-controls="pills-message" aria-selected="false">
								c
							</a>
						  </li>
						</ul>
						<div class="d-flex tab-content flex-grow-1 position-relative border-top border-success" id="pills-tabContent" >						
							<div class="p-1 tab-pane fade show active" id="pills-info" role="tabpanel" aria-labelledby="pills-info-tab">
								<i class="fas fa-2x fa-share-alt"></i>
							</div>
							<div class="tab-pane fade p-1 position-absolute h-100 w-100 overflow-auto" id="pills-member" role="tabpanel" aria-labelledby="pills-member-tab">
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
								<div class="w-100 border border-dark d-flex flex-row align-items-center">
									<video controls style="height:60px;width:120px"></video>
									sdfsdf
								</div>
							</div>
							<div class="tab-pane fade position-absolute h-100 w-100 p-1" id="pills-message" role="tabpanel" aria-labelledby="pills-message-tab">
								<div class="d-flex flex-column position-relative p-0 h-100 w-100">
									<div id="chatMessageHistory" class="p-0 w-100 flex-grow-1" style="overflow-y:scroll"></div>
									<input type="text">
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>

Когда веб-страница просматривается в книжной ориентации, она работает нормально.

enter image description here

К сожалению, когда веб-страницу просматривают в телефоне android, макет портится. Следующие шаги позволят воспроизвести проблему:

  1. Просмотрите веб-страницу с помощью телефона android.
  2. Измените ориентацию на альбомную
  3. щелкните значок «c "

На этом этапе макет все еще нормальный. Однако, когда пользователь нажимает на поле ввода, появляется всплывающее окно виртуальной клавиатуры, это портит веб-страницу.

enter image description here

Как я могу решить проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...