iPhoneのメッセージの画面をHTMLとCSSでブログ等のWebページに再現する方法。
画像として記事に表示させるんだったら、スクリーンショットを撮って配置すれば比較的簡単。下の画像がその一例。
だけどそれだと、テキストじゃなくて、あくまで画像なんで、そのままではコンテンツとして検索対象になりません。
そこで、HTMLとCSSで見た目がiPhoneの「Message」風になるように作りました。
思いのほかいい出来になったので公開します。
完成図
Mac以外だと、フォントが置き換わるのでちょっと違って見えますが、Macだと、ほぼiPhoneでの見た目と変わらないんじゃないかと思います。
縦横比をiPhone11proに合わせて作ってあります。はみ出したメッセージ部分はスクロールして表示できます。
モックアップ用のiPhone11Proのフレームを用意して配置すれば、まんまiPhone11Proになります。(スマホ、タブレットでは表示されないのでMac/PCでみてください。)
また、次のように上部と下部のインターフェースを省いて、高さを内容に合わせて成り行きで表示することもできます。
あるいは、任意の親ボックスに対して横幅100%で表示させることもできます。
これらを実現するソースコードを公開します。
ソースコードおよびデータ
全部まとめてアーカイブしておきましたので、よろしかったらダウンロードしてお使いください。あるいは、このあとコードおよび画像データを載せておくのでそこからコピペしてもらっても可能です。
ダウンロードデータ
- HTMLファイル「template.html」
- CSSファイル「message.css」
- フォルダ「img」
「template.html」は、ブラウザで開いて表示を確認しながら編集するのに使えるhtmlファイルです。
完成後、コードの一部をブログ等の投稿画面にコピー・ペーストします。
「template.html」のソースコードは下記のとおり。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="message.css"> </head> <body> <div id="content"> <!-- ここからコピー --> <div class="message"> <!-- iPhoneを再現しないとき削除1/2ここから --> <div class="frame"> <!-- 高さ成り行きにするとき削除1/2ここから --> <!-- 画面上部インタフェース --> <div class="header"> <!-- 画面最上部の情報表示エリア --> <div class="top"> <!-- 画面左上の時刻表示 --> <p class="current_time">19:20</p> </div> <!-- /.top --> <div class="account"> <!-- スレッド名(相手の名前) --> <p class="name">●●●●</p> </div> <!-- /.account --> </div> <!-- /.header --> <!-- 高さ成り行きにするとき削除1/2ここまで --> <!-- iPhoneを再現しないとき削除1/2ここまで --> <!-- メッセージの内容エリア --> <div class="cont"> <!-- メッセージの種類と日時 --> <div class="info"> <span class="bold">iMessage<br /> 4月26日(日)</span>17:09 </div> <!-- /.info --> <!-- 相手側のメッセージ --> <div class="talk_block other"> <div class="speech_bubble"> 相手側からのメッセージ </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other --> <!-- 相手側の添付画像 --> <div class="talk_block other img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other img --> <!-- iMessageメッセージ --> <div class="talk_block ims"> <div class="speech_bubble"> iMessage(相手もiOSデバイスの場合)の自分側のフキダシ </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block ims --> <!-- メッセージの種類と日時 --> <div class="info"> <span class="bold">SMS/MMS<br> 4月26日(日)</span>18:09 </div> <!-- /.info --> <!-- SMS/MMSメッセージ --> <div class="talk_block sms"> <div class="speech_bubble"> SMS/MMS(相手がiOSデバイス以外)の場合のフキダシ </div> <!-- /.speech_bobble --> </div> <!-- /.talk_block sms --> <!-- 自分側の添付画像 --> <div class="talk_block ims img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_block --> </div> <!-- /.talk_block ims img --> <!-- メッセージの種類と日時 --> <div class="info"> <span class="bold">月曜日</span>18:09 </div> <!-- /.info --> <!-- 相手側のメッセージ連投 --> <div class="talk_block other"> <div class="speech_bubble"> 時間をあけずに... </div> <!-- /.speech_bubble --> <div class="speech_bubble"> 投稿した場合。しっぽは最後のフキダシだけに付く。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other --> <!-- SMS/MMSメッセージ --> <div class="talk_block sms"> <div class="speech_bubble"> 複数の画像を一度に添付した場合は次のようになる。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block sms --> <!-- 自分側の添付画像連投 --> <div class="talk_block ims img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block ims img --> <!-- 相手側の画像添付と同時メッセージ --> <div class="talk_block other img notail"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other img notail --> <div class="talk_block other"> <div class="speech_bubble"> 画像添付と同時にメッセージした場合、添付画像にはしっぽが付かない。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other --> <!-- 自分側のメッセージと添付画像連投 --> <div class="talk_block sms notail"> <div class="speech_bubble"> メッセージに続けて画像を添付した場合、メッセージにはしっぽが付かない。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block sms notail --> <div class="talk_block sms img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block sms img --> <!-- メッセージの種類と日時 --> <div class="info"> <span class="bold">iMessage<br> 4月28日(火)</span>17:09 </div> <!-- /.info --> <!-- iMessageメッセージ --> <div class="talk_block ims"> <div class="speech_bubble"> iMessageで相手が「開封証明を送信」をオンにしていれば、このフキダシの下のように「開封済み」通知が表示されます。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block ims --> <!-- 既読の表示 --> <div class="info read"> 開封済み: 火曜日 </div> <!-- /.info --> </div> <!-- /.cont --> <!-- iPhoneを再現しないとき削除2/2ここから --> <!-- 高さ成り行きにするとき削除2/2ここから --> <!-- 画面下部インタフェース --> <div class="footer"> <!-- no contents --> </div> <!-- /.footer --> <!-- 高さ成り行きにするとき削除2/2ここまで --> </div> <!-- /.frame --> <!-- iPhoneを再現しないとき削除2/2ここまで --> </div> <!-- /.message --> <!-- ここまでコピー --> </div> <!-- /#content --> </body> </html>
「message.css」のソースコードは下記。
/*-------------------------------------- Message style for website Author URI: https://jisuijisan.com; Version: 20221110 ----------------------------------------*/ /*==================================== 初期化と基本設定 ======================================*/ .message * { margin: 0; padding: 0; line-height: 1.4!important; font: normal 14px "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","Helvetica Neue", "Lucida Sans Unicode", "Arial"; color: #333; } .message p { margin: 0; padding: 0; } .message img { display: auto; width: 100%; height: auto; border: none; } /*iPhone幅のフレーム(高さ成り行き)*/ .message .frame { position: relative; width: 325px; height: auto; margin: 0 auto; border: solid #ddd 1px; overflow: hidden; } /*iPhone再現サイズのフレーム*/ .message .frame:has(.header) { height: 704px; } /*ヘッダーとフッター*/ .message .frame .header, .message .frame .footer { position: absolute; width: 100%; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); z-index: 100; } /*===================================== 各エリア設定 ======================================*/ /*------------------------------- ヘッダー --------------------------------*/ /*ヘッダーの基本設定*/ .message .frame .header { height: 101px; left: 0; top: 0; border-bottom: 1px #b9b9b9 solid; background: rgba(247,247,247,0.9); text-align: center; } /*Firefox*/ @-moz-document url-prefix() { .message .frame .header { background: rgba(247,247,247,0.95); }} /*戻るボタン*/ .message .frame .header::before { position: absolute; content: ""; width: 14px; height: 14px; left: 13px; top: 49px; border: none; background: none; box-shadow: 3px 3px 0 0 #2793fa inset; transform: rotate(-45deg); } /*ヘッダーイメージ*/ .message .frame .top { height: 42px; background: url(img/header.png); } /*ヘッダー時刻表示*/ .message .frame .current_time { position: absolute; top: 13px; left: 17px; line-height: 15px!important; font-family: "Helvetica Neue"; font-size: 14px !important; } /*Firefox*/ @-moz-document url-prefix() { .message .frame .current_time { left: 13px; font-size: 14px !important; }} /*Chrome*/ _:lang(x)::-internal-media-controls-overlay-cast-button, .message .frame .current_time { left: 13px; font-size: 14px !important; } /*ヘッダー:相手のアイコン*/ .message .frame .account { height: 59px; padding: 34px 0 0 6px; background: url(img/avatar.png) center 0 no-repeat; } /*ヘッダー:相手の名前*/ .message .frame .name { display: inline-block; line-height: 10px !important; font-size: 10px !important; } /*次へボタン*/ .message .frame .name::after { display: inline-block; content: ""; width: 6px; height: 6px; margin-bottom: 1px; border: none; background: none; box-shadow: -2px 2px 0 0 #999 inset; transform: rotate(45deg); } /*--------------------------------- フッター ----------------------------------*/ .message .frame .footer { height: 108px; left: 0; bottom: 0; background: rgba(255,255,255,0.75) url(img/footer.png) no-repeat; } /*Firefox*/ @-moz-document url-prefix() { .message .frame .footer { background: rgba(255,255,255,0.9) url(img/footer.png) no-repeat; }} /*---------------------------------- メッセージボディ -----------------------------------*/ .message .cont { padding: 10px 0 10px;/*iPhone再現サイズ以外*/ background: #fff; z-index: 1; } /*iPhone再現サイズ(.headerがあるとき)*/ .message .frame .header ~ .cont { width: 340px;/*スクロールバーをはみ出させて隠す*/ height: 483px; padding-top: 101px; padding-bottom: 120px; overflow-x: hidden; overflow-y: scroll; } /* Edge */ @supports (-ms-ime-align: auto) { .message .frame .header + .cont > div:last-of-type { margin-bottom: 120px; }} /*Firefox*/ @-moz-document url-prefix() { .message .frame .header + .cont > div:last-of-type { margin-bottom: 120px; }} /*スマホ、タブレット.細いスクロールバーに対応*/ @media only screen and (max-width: 1112px) { .message .frame .header + .cont { width: 330px; }} /*====================================== メッセージボディ内パーツ =======================================*/ /*メッセージの種類と日時*/ .message .info { margin: 2em 14px 0.8em; text-align: center; font-family: "ヒラギノ角ゴ Pro W6"; font-size: 11px; color: #aaa; } .message .info .bold { font-size: inherit; font-weight: bold; color: inherit; } /*既読表示*/ .message .info.read { margin-top: 0; text-align: right; } /*------------------------- フキダシ --------------------------*/ /*メッセージのブロック*/ .message .talk_block { position: relative; margin-bottom: 6px; overflow: hidden; } /*意図的にしっぽを削除した場合*/ .message .talk_block.notail { margin-bottom: 0; } /*フキダシの左右揃え*/ .message .talk_block.other * { float: left; } .message .talk_block:not(.other) * { float: right; } /*フキダシの基本設定*/ .message .speech_bubble { position: relative; clear: both; } /*画像添付でないフキダシ*/ .message .talk_block:not(.img) .speech_bubble { max-width: 50%;/*iPhoneを再現しないとき*/ margin: 1px 14px 0px; padding: 9px 14px; border-radius: 15px; color: #fff; overflow-wrap: break-word; text-align: left; } /*iPhoneを再現するとき*/ .message .frame .talk_block:not(.img) .speech_bubble { max-width: 192px; } /*画像添付のフキダシ設定*/ .message .img .speech_bubble { width: 216px; margin: 1px 9px 0; padding: 0; } /*画像添付の画像のマージン*/ .message .img .speech_bubble img { margin: 0; } /*------------------------------ フキダシの配色 --------------------------------*/ /*フキダシの配色_相手側*/ .message .other .speech_bubble { background-color: #e9e9ed; color: #000 !important; } /*フキダシの配色_iMessage*/ .message .ims .speech_bubble { background-color: #2793fa; } /*フキダシの配色_SMS/MMS*/ .message .sms .speech_bubble { background-color: #32cd54; } /*============================= フキダシのしっぽ ==============================*/ /*フキダシのしっぽ,添付画像の角丸共通*/ .message .talk_block::before, .message .talk_block::after, .message .speech_bubble::before, .message .speech_bubble::after { position: absolute; border: none; background: none; z-index: 10; } /*フキダシのしっぽ共通*/ .message .talk_block:not(.img):not(.notail)::after { content: ""; width: 15px; height: 17px; bottom: 0; } /*フキダシのしっぽ_相手側*/ .message .other:not(.img)::after { left: 9px; border-radius: 0px 0 15px 0px/ 0px 0 11px 0; box-shadow: -13px 2px 0 -3px #e9e9ed inset; } /*フキダシのしっぽ_iMessage*/ .message .ims:not(.img)::after { right: 9px; border-radius: 0px 0 0 15px/ 0px 0 0 11px; box-shadow: 13px 2px 0 -3px #2793fa inset; } /*フキダシのしっぽ_SMS/MMS*/ .message .sms:not(.img)::after { right: 9px; border-radius: 0px 0 0 15px/ 0px 0 0 11px; box-shadow: 13px 2px 0 -3px #32cd54 inset; } /*=================================== 画像添付のフキダシのしっぽと角丸 =====================================*/ /*画像添付しっぽ共通*/ .message .img:not(.notail)::after { content: url(img/img_tail.svg); width: 22px; height: 12px; bottom: 1px; } /*画像添付しっぽ_相手側*/ .message .other.img::after { left: 8px; } /*画像添付しっぽ_自分側*/ .message .img:not(.other):not(.notail)::after { right: 8px; transform: scale(-1, 1); } /*画像添付しっぽなし*/ .message .img.notail::after { content: ""; width: 20px; height: 20px; bottom: 0; } /*画像添付しっぽなし_相手側*/ .message .other.img.notail::after { left: 14px; border-radius: 0 0 0 15px; box-shadow: -6px 6px 0 2px #fff; } /*画像添付しっぽなし_自分側*/ .message .img:not(.other).notail::after { right: 14px; border-radius: 0 0 15px 0; box-shadow: 6px 6px 0 2px #fff; } /*画像添付しっぽの上辺マスク*/ .message .img::before { content: ""; width: 6px; height: 2000px; bottom: 9px; background: #fff; } /*画像添付しっぽの上辺マスク_相手側*/ .message .other.img::before { left: 8px; } /*画像添付しっぽの上辺マスク_自分側*/ .message .img:not(.other)::before { right: 8px; } /*画像添付上左右の角丸*/ .message .img .speech_bubble:first-of-type::before { content: ""; width: 211px; height: 16px; top: 0px; border-radius: 15px 15px 0 0; box-shadow: 0 -6px 0 5px #fff; } /*画像添付上左右の角丸_相手側*/ .message .other.img .speech_bubble:first-of-type::before { left: 5px; } /*画像添付上左右の角丸_自分側*/ .message .img:not(.other) .speech_bubble:first-of-type::before { right: 5px; } /*画像添付下内側角丸共通*/ .message .img .speech_bubble::after { content: ""; width: 16px; height: 16px; bottom: 0px; } /*画像添付下内側角丸_相手側(右下)*/ .message .other.img .speech_bubble:last-of-type::after { right: 0px; border-radius: 0 0 15px 0; box-shadow: 4px 4px 0 3px #fff; } /*画像添付下内側角丸_自分側(左下)*/ .message .img:not(.other) .speech_bubble:last-of-type::after { left: 0; border-radius: 0 0 0 15px; box-shadow: -4px 4px 0 3px #fff; } /*============================== 画像を連投した場合の区切り線 ===============================*/ .message .speech_bubble img:not(:first-of-type) { border-top: #fff 1px solid; } .message .speech_bubble:not(:first-of-type) img { border-top: #fff 1px solid; }
「img」フォルダには、iPhoneメッセージ画面の上部下部のインターフェース、フキダシの形のグラフィックスに使う画像ファイルと、表示確認のためのサンプル画像が入ってます。
「img」フォルダの画像ファイル
avatar.png header.png
footer.png
img_tail.svg sample.jpg
以上の「template.html」、「message.css」、「img」フォルダを同一ディレクトリに置いて編集してください。
コードを編集する
「template.html」をブラウザで開いて表示を確かめながらエディタで編集します。
<div class="talk_block ?">〜</div><!-- /.talk_block ? -->
が、メッセージの基本ブロックです。
メッセージの内容は <div class="speech_bubble">〜</div><!-- /.speech_bubble -->
内に配置してください。
「?
」の部分のクラスによって、フキダシの種類を振り分けます。
クラスをother
にすると、相手側(左側)のフキダシになります。
<!-- 相手側のメッセージ --> <div class="talk_block other"> <div class="speech_bubble"> 相手側からのメッセージ </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other -->
自分側のフキダシは、iMessage(相手がiOSデバイスの場合)の場合とSMS/MMSの場合とで、背景色が異なります。
クラスをims
にすると、iMessageの場合の青いフキダシになります。
<!-- iMessageメッセージ --> <div class="talk_block ims"> <div class="speech_bubble"> iMessage(相手もiOSデバイスの場合)の自分側のフキダシ </div> <!-- /.speech_bubble --> </div>
クラスをsms
にすると、SMS/MMSの場合の緑のフキダシになります。
<!-- SMS/MMSメッセージ --> <div class="talk_block sms"> <div class="speech_bubble"> SMS/MMS(相手がiOSデバイス以外)の場合のフキダシ </div> <!-- /.speech_bobble --> </div> <!-- /.talk_block sms -->
画像を添付した場合の表示を再現するには、クラスにimg
を加えます。画像が、フキダシの形にトリミングされます。
<!-- 相手側の添付画像 --> <div class="talk_block other img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other img -->
連投の(一度に連続してメッセージを送った)場合、フキダシのしっぽは最後の吹き出しだけにつきます。これを再現するには、単一の<div class="talk_block ?">
の中に連投する<div class="speech_bubble">
を配置します。
<!-- 相手側のメッセージ連投 --> <div class="talk_block other"> <div class="speech_bubble"> 時間をあけずに... </div> <!-- /.speech_bubble --> <div class="speech_bubble"> 投稿した場合。しっぽは最後のフキダシだけに付く。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other -->
一度に複数の画像を添付した場合、一つのフキダシの中に複数の画像が表示されます。これを再現するには、単一の<div class="talk_block ?">
の中に複数の<div class="speech_bubble">
を配置し、その中にそれぞれimg
要素を配置します。(単一の<div class="speech_bubble">
の中に複数のimg
要素を配置しても同じ表示結果が得られます。)
<!-- 自分側の添付画像連投 --> <div class="talk_block ims img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block ims img -->
画像を添付して、同時にテキストメッセージを送った場合は、しっぽのついていない画像のフキダシと、テキストのフキダシが続いて表示されます。これを再現するには、画像を配置する方の<div class="talk_block ?">
に、クラスnotail
を加えます。
<!-- 相手側の画像添付と同時メッセージ --> <div class="talk_block other img notail"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other img notail --> <div class="talk_block other"> <div class="speech_bubble"> 画像添付と同時にメッセージした場合、添付画像にはしっぽが付かない。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block other -->
テキストメッセージを送ってから時間をおかず続けて画像を添付した場合、テキストメッセージのフキダシにはしっぽがつきません。これを再現するには、テキストメッセージの方の<div class="talk_block ?">
に、クラスnotail
を加えます。
<!-- 自分側のメッセージと添付画像連投 --> <div class="talk_block sms notail"> <div class="speech_bubble"> メッセージに続けて画像を添付した場合、メッセージにはしっぽが付かない。 </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block sms notail --> <div class="talk_block sms img"> <div class="speech_bubble"> <img src="img/sample.jpg" alt=""> </div> <!-- /.speech_bubble --> </div> <!-- /.talk_block sms img -->
iMessage/SMS/MMSおよび投稿日時を表示する部分は<div class="info">〜</div><!-- /.info -->
のブロックに記述します。
<!-- メッセージの種類と日時 --> <div class="info"> <span class="bold">iMessage<br /> 4月26日(日)</span>17:09 </div> <!-- /.info -->
メッセージの後に表示される既読表示を再現するには、<div class="info">
のブロックにクラスread
を加えます。
<!-- 既読の表示 --> <div class="info read"> 開封済み: 火曜日 </div> <!-- /.info -->
画面上部インターフェースの時刻表示とスレッド名(相手の名前)を編集するには、<div class="header">
内の<div class="current_time">
と<div class="account">
を編集します。
<!-- 画面上部インタフェース --> <div class="header"> <!-- 画面最上部の情報表示エリア --> <div class="top"> <!-- 画面左上の時刻表示 --> <p class="current_time">19:20</p> </div> <!-- /.top --> <div class="account"> <!-- スレッド名(相手の名前) --> <p class="name">●●●●</p> </div> <!-- /.account --> </div> <!-- /.header -->
データをアップロードする
「message.css」と「img」フォルダをサーバー上の任意のディレクトリへアップロードしてください(「message.css」と「img」フォルダは同一のディレクトリに)。
「template.html」をアップロードする必要はありません。
例えば、サーバーのルート - 私の利用しているエックスサーバーの場合、ルートは「public_html」なので、そこに作成した「upload」フォルダ内の「message」フォルダにアップロードしました。
リンクの修正
画像を添付している場合、画像ファイルへのリンクを修正します。添付していない場合は必要ありません。
たとえばここで利用しているサンプル画像の「sample.jpg」は「img」フォルダにあって、「img」フォルダはサイトルート直下の 「upload」-「message」にアップロードすることにしているので、これに合わせてHTMLファイル内のパスを変更します。
エディタの検索-置換で...
<img src="img/
を<img src="/upload/message/img/
に置換しました。
Webページへ貼る
ブログサービスやWordPressの編集画面で、「template.html」のうちの<div class="message"> 〜 </div><!-- /.message -->
の部分を貼り付けます。
WordPressでは「テキスト」タブで貼り付けて下さい。他のCMS等では「テキスト」タブは「HTML」だったりしますね。
併せてアップロードしたCSSファイルへのリンク要素を記述します。
上記の例では…
<link rel=“stylesheet” href=“/upload/message/message.css”>
となりますね。
ただ、気をつけるのは、WordPressの場合「テキスト」タブと「ビジュアル」タブを行き来すると、このリンク要素が消えてしまったりするということ。😭
「テキスト」タブでのみで編集するか、それがいやならテーマファイルのhead要素内に記述しましょう。
あるいは、使用しているテーマによっては、記事ごとにhead要素内を編集できる機能があるかもしれません。
私が利用しているテーマ「WING(AFFINGER5)」の場合は下図のように「投稿の編集」画面で、headに出力するコードを設定できるのでそこに記述しました。
スタイルシートは全部をコピペして既存のCSSの一番最後に貼り付けるかインポート(@import)する方法もありますが、その際は画像データへのリンクを修正してください。
高さ成り行きの場合など
上部と下部のインターフェースを省いて、高さを成り行きで表示する場合は、<!-- 高さ成り行きにするとき削除1/2ここから -->
(19行目)から<!-- 高さ成り行きにするとき削除1/2ここまで -->
(37行目)と<!-- 高さ成り行きにするとき削除2/2ここから -->
(203行目)から<!-- 高さ成り行きにするとき削除2/2ここまで -->
(211行目)を削除します。
任意の親ボックスに対して横幅100%で表示させる場合は、<!-- iPhoneを再現しないとき削除1/2ここから -->
(15行目)から<!-- iPhoneを再現しないとき削除1/2ここまで -->
(39行目)と<!-- iPhoneを再現しないとき削除2/2ここから -->
(201行目)から<!-- iPhoneを再現しないとき削除2/2ここまで -->
(216行目)を削除します。
以上が基本的な利用方法です。
注意点
既存のWebページにクラス「messsage」の要素が存在する場合等、スタイルシートの競合で意図した表示にならない場合があるかもしれません。
その際は適宜クラス名を変更する等してください。
以上、どなたかのお役に立てば。