YoutubeやGoogleMapsをリキッド表示にするCSS

absoluteで絶対位置配置した要素のサイズを相対指定の応用で
YoutubeやGoogleMapsAPIなどiframeで埋め込む要素を縦横比固定でリキッド表示するCSSです。
スマートフォンやレスポンシブ対応のときに役立ちます。

リキッドの枠をつくり その中へYoutubeやGoogleMapsを呼び出す

今回は、サンプルとして地図を設置してみました。

まず、地図を表示する枠として入れ子状にbox要素のタグを設置します。

<div class="map-area">
	<div id="map" class="map"></div>
</div>

CSSでは、外枠をリキッド表示にして内枠を絶対配置で外枠のサイズに合わせています。
外枠の縦横比を固定するため、高さはheightではなくpaddingの%で指定しています。
4:3 なら75%、16:9 なら 56.25%です。

.map-area{
	position: relative;
	width: 100%;
	height: 0;
	padding: 56.25% 0 0;
	background: #eee;
}
.map {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

GoogleMapsAPIで地図を表示するJavascript

おまけとして。サンプルの、富士山の地図を表示したスクリプトです。
GoogleMapsAPIでの地図表示については、GoogleMapsAPIで地図を表示でも詳しくとりあげています。

function mapInit() {
	var map = new google.maps.Map(document.getElementById('map'), {
		center: { lat: 35.3605555, lng: 138.7277777 },
		zoom: 8,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	});
}
if( window.addEventListener ) {
	window.addEventListener( 'load', mapInit, false );
}
else if( window.attachEvent ) {
	window.attachEvent( 'onload', mapInit);
}
else {
	window.onload = mapInit;
}

関連記事

Pocket