ロゴ

AMPサイトを軽く作ってみた

突然ですが皆さん「AMP」を知っていますか。

AMPは、「Accelerated Mobile Pages」の略で、速度を重視した新しいHTMLフレームワークです。

AMPでつくられたサイトはGoogleのサーバーにキャッシュとして保存されます。このため、ページが高速で表示できるのです。

AMP HTMLは速度重視のため外部スタイルシートの禁止やタグ、属性の制限などが厳しいです。ここでは基本的な書き方と適用の方法をご紹介します。


1. 基本形


土台は下のソースのコピーで大丈夫です。

HTML


<!DOCTYPE html>
<html ⚡ lang="ja">
 <head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width" />
  <title>Sample</title>
  <style amp-boilerplate>
   body {
     -webkit-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
     -moz-animation: -amp-start 8s steps(1, end) 0s 1 normal both; 
     -ms-animation: -amp-start 8s steps(1, end) 0s 1 normal both;
     animation: -amp-start 8s steps(1, end) 0s 1 normal both;
     }
     @-webkit-keyframes -amp-start {
        from {
          visibility: hidden;
      }
        to {
          visibility: visible;
       }
      }
      @-moz-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @-ms-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @-o-keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
      @keyframes -amp-start {
        from {
          visibility: hidden;
        }
        to {
          visibility: visible;
        }
      }
  </style>
  <style amp-custom>
   <!-- インラインでcssを記述 -->
  </style>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
 </head>
 <body>
  <!-- bodyタグ内 -->
 </body>
</html>

なにか気づいたことはありませんか?

そうです。html属性に絵文字が使われているのです。ここがAMPの面白いところの一つですね。

ちなみに「⚡」ではなく

amp
で代用もできます。


2. 注意点


前提としてAMP HTMLでは、外部スタイルシートの読み込みは不可能です。

外部スクリプトの読み込みにも制限はありますが、script要素にasync属性をつけ非同期読み込みにすれば読み込みは可能です。

また、a要素のhref属性に「javascript: 」を指定している人も多いと思いますがこれもAMPでは禁止されています。


記述方法


cssは

<style amp-custom>
の要素にインラインで記述します。
<style amp-boilerplate>
はテンプレートとして基本いじりません。また、head、bodyタグにかかわらず、これら以外に自身で<style>タグを挿入してはいけません。

<style>タグは使えなくてもstyle属性は使用が許可されているので上手く使いましょう。

ただし、CSSにもさまざまな制限があります。*(アスタリスク)などをCSSで利用することはできませんので、公式サイトで確認してみてください。


amp.nakahaku.com