IFRAMEを使いこなす

ウェブのページを作る際に他所のページを組み込む方法としては昔からiframe(インラインフレーム)タグを使うのが普通。iframeはひっくり返す以外はそんなにクセがあるわけではないので普通にできると思うけど、某掲示板で悩んでる人がいたので説明用に臨時でこのページを作成。そしたら意外と見に来る人の多いページになったので再整備して残している。

普通にiframeタグを書く

先ずはスタイル無し、HTMLタグだけでiframeを入れる。敢えてスクロールバー表示指定も付ける。

(下のコードは表示の都合でiframeタグが途中で改行されているように見えるがタグの途中で改行してはいけない。<iframe hogehoge>の部分は1行で書く。読み飛ばす人がいるのでしつこく書く。HTMLタグは "<" から ">" の途中で改行してはいけない。<hoge>example</hoge>のexampleの部分はいくらでも改行して良い)

1
2
<iframe seamless src="https://denwa.intaa.net/" width="500" height="200" scrolling="yes">
</iframe>
表示結果

ズレた位置にiframeを表示させる

次はインラインスタイルを使ってインラインフレームを組み込む範囲や位置を指定。重なり合わせもインラインフレームの側を最前面とします。本来表示される筈の位置から右に50ドット・下に50ドットずらしてみた。
(下のコードは見易いようにスタイルシート部分を改行しているが、実際にタグを書くときは途中で改行してはいけない。下のコードだと<div hogehoge>や<iframe hogehoge>の部分は改行無しで書かなければならない。)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<div style="
	width:500px;
	height:200px;
	background:#fff;
	text-align:left;
	color:#000;
	">
    <iframe seamless src="https://denwa.intaa.net/" width="500" height="200" scrolling="no"
     style="
	position:relative;
	top:50px;
	left:50px;
	overflow:hidden;
	z-index:10;
	">
    </iframe>
</div>

表示結果
本来の位置(参考)

iframeの中のコンテンツの任意の位置を表示する

インラインフレーム自体の位置は変えずにインラインフレームの中のコンテンツの位置を任意に指定して組み込む。
下の例ではインラインフレームの中のページの上から100px; 左から100px;を指定したのと同じになる。実際にはマイナスのマージン値を指定することで本来の表示エリアから左100px;上100px;分をはみ出させて表示しないようになっている。
(下のコードは見易いようにスタイルシート部分を改行しているが、実際にタグを書くときは途中で改行してはいけない。下のコードだと<div hogehoge>や<iframe hogehoge>の部分は改行無しで書かなければならない。)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<div style="
	width:600px;
	height:200px;
	margin:0;
	overflow:hidden;">
    <iframe seamless width="800px" height="800px" frameborder="0" scrolling="no"
     style="
	margin-left:-100px;
	margin-top:-100px;
	overflow:hidden;
	" src="https://denwa.intaa.net/">
    </iframe>
</div>

表示結果

iframeの中のコンテンツを拡大・縮小させる

インラインフレームの中のコンテンツを拡大・縮小して組み込む。
transform:scale(0.5,0.5)を使い縦横共に50%のサイズにするが、面倒でも主要ブラウザのベンダープレフィックス付きも指定する。-moz(mozilla系), -webkit(chrome,safari系), -o(opera系),-ms(internet explorer)。ちなみに中の写真の大きさ変わらないのは中の写真が可変サイズで指定されているから。その他は正しく縮小している。
(下のコードは見易いようにスタイルシート部分を改行しているが、実際にタグを書くときは途中で改行してはいけない。下のコードだと<div hogehoge>や<iframe hogehoge>の部分は改行無しで書かなければならない。)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div style="
	width:1000px;
	height:200px;
	margin:0;
	overflow:hidden;
	">
    <iframe seamless allowfullscreen src="https://denwa.intaa.net/" scrolling="no"
     style="
	width:1000px;
	height:400px; 
	-moz-transform:scale(0.5,0.5);
	-webkit-transform:scale(0.5,0.5);
	-o-transform:scale(0.5,0.5);
	-ms-transform:scale(0.5,0.5);
	transform:scale(0.5,0.5); 
	overflow:hidden;
	position:relative;
	top:-50%;
	left:-25%;
	">
    </iframe>
</div>

表示結果

iframeを回転させる

上の縮小したものを回転させてみる。transform:rotate(15deg)とすると右に15度傾く。マイナス値指定で左に傾く。
(下のコードは見易いようにスタイルシート部分を改行しているが、実際にタグを書くときは途中で改行してはいけない。下のコードだと<div hogehoge>や<iframe hogehoge>の部分は改行無しで書かなければならない。)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<div style="
	width:1000px;
	height:200px;
	margin-top:150px;
	overflow:hidden;
	-moz-transform:rotate(15deg);
	-webkit-transform:rotate(15deg);
	-o-transform:rotate(15deg);
	-ms-transform:rotate(15deg);
	transform:rotate(15deg);
	">
    <iframe seamless allowfullscreen src="https://denwa.intaa.net/" scrolling="no"
     style="
	width:1000px;
	height:400px;
	-moz-transform:scale(0.5,0.5);
	-webkit-transform:scale(0.5,0.5);
	-o-transform:scale(0.5,0.5);
	-ms-transform:scale(0.5,0.5);
	transform:scale(0.5,0.5);
	overflow:hidden;
	position:relative;
	top:-50%;
	left:-25%;
	">
    </iframe>
</div>

表示結果

iframeの中のコンテンツを左右反転させる

今度は左右を反転させてみる。transform:scaleX(-1)で左右の反転となる。scaleY(-1)で上下反転となる。
(下のコードは見易いようにスタイルシート部分を改行しているが、実際にタグを書くときは途中で改行してはいけない。下のコードだと<div hogehoge>や<iframe hogehoge>の部分は改行無しで書かなければならない。)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<div style="
	width:1000px;
	height:200px;
	margin-left:-500px;
	overflow:hidden;
	-moz-transform:scaleX(-1);
	-webkit-transform:scaleX(-1);
	-o-transform:scaleX(-1);
	-ms-transform:scaleX(-1);
	transform:scaleX(-1);
	">
    <iframe seamless allowfullscreen src="https://denwa.intaa.net/" scrolling="no"
     style="
	width:1000px;
	height:400px;
	-moz-transform:scale(0.5,0.5);
	-webkit-transform:scale(0.5,0.5);
	-o-transform:scale(0.5,0.5);
	-ms-transform:scale(0.5,0.5);
	transform:scale(0.5,0.5);
	overflow:hidden;
	position:relative;
	top:-50%;
	left:-25%;
	">
    </iframe>
</div>

表示結果


なお、反転の際は例えば左右反転なら反転対象の右辺を軸にパタンと本のページをめくるようにひっくり返す処理となるので元々の位置までマイナス値のmargin-leftなどで左に移動させる必要がある。上下反転の場合も下辺を軸に下側にひっくり返すのでマイナス値のmargin-topなどで上に移動させる必要がある。(反転ではここを知っておかないと途方に暮れる)
文字で書いても伝わらないので図にしてみた(下)。


iframe反転

iframeの中のコンテンツを半透明化させる

最後にインラインフレームを半透明化させる。基本的にはopacity:0.5;で半透明度50%になるが面倒でも主要ブラウザのベンダープレフィックス付きも指定する。さらにIE8以下は手間のかかる子なのでそれ用も追加。
(下のコードは見易いようにスタイルシート部分を改行しているが、実際にタグを書くときは途中で改行してはいけない。下のコードだと<div hogehoge>や<iframe hogehoge>の部分は改行無しで書かなければならない。)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<div style="
	background-image:url(/wp-content/uploads/2014/05/bg1.png);
	width:600px;
	height:338px;
	">
    <div style="
	width:1000px;
	height:200px;
	position:relative;
	top:69px;
	left:50px;
	overflow:hidden;
	">
        <iframe seamless allowfullscreen src="https://denwa.intaa.net/" scrolling="no"
         style="
    	    width:1000px;
	    height:400px;
	    -moz-transform:scale(0.5,0.5);
	    -webkit-transform:scale(0.5,0.5);
	    -o-transform:scale(0.5,0.5);
	    -ms-transform:scale(0.5,0.5);
	    transform:scale(0.5,0.5);
	    filter:alpha(opacity=50);
	    -ms-filter:alpha(opacity=50);
	    -moz-opacity:0.5;
	    -webkit-opacity:0.5;
	    -o-opacity:0.5;
	    opacity:0.5;
	    overflow:hidden;
	    position:relative;
	    top:-50%;
	    left:-25%;
	    ">
        </iframe>
    </div>
</div>

表示結果

このページではスタイルシートを全てインラインスタイルで記述しているが、HTMLヘッダでスタイルを指定しても別ファイルのスタイルシートでももちろん構わない。ただ、インラインフレーム使うのって例外的(限定的)なことが多いように思っているのでソースが汚らしくなってもインラインスタイルを使うかなと。

2016年12月3日: この記事の初稿公開から暫くしてからコード部分をSyntax Highlighterで表示するように変更したんだけど、初稿で意図した表示と大きく変わっていることに気付いたので弄った。ついでに記事自体も少し見易くした(つもり)。

php5.5.12にアップデート

FreeBSD Nginx php-fpm

FreeBSDのports情報を更新したらphp-5.5.12が来てたので適当にググってトラブってなさそうだったので何も考えずにいつもどおりに更新したらエライ目にあった。
nginxのサーバでPHP-FPMと組み合わせて使ってたサーバでウェブのphpのページを表示しようとすると、BAD GATEWAY 502というメッセージが出て白い画面。全くダメポ。
php-fpm.confで

1
2
3
4
listen = /var/run/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0666

影響受けるのはソケットでやってた人だけなのかな。
マスクなんてすぐに気付きませんって。

オードムーゲ

ニキビは思春期だけのものかと思っていたら大人になっても何時まで経っても治らない、いわゆる大人ニキビで悩まされる人は結構多いです。
私がそうなのですが、ずっとアゴの周りが赤く炎症したりポツポツと白ニキビが出来たりして汚らしいです。しかも、男は顎の周囲に髭も生えるのでそれを剃ると肌荒れも加わって余計に悪化したりと散々です。

皮膚科に行くと薬をくれるのでそれを塗ると一時的には良くなるのですが、ステロイド剤だったりすると使い続けるわけにはいきません。
いろいろ探したところ、(少なくとも男子の中では)有名では無いものの地味に評判が良いものが見つかりました。(実は見つけた後に使い始めて既に3年以上経ちますが)

それが「オードムーゲ薬用ローション」(EAUDE MUGE)です。

成分
有効成分及び分量
イソプロピルメチルフェノール
グリチルリチン酸ニカリウム

その他の成分
エタノール、グリセリン、プロピレングリコール、マクロゴール4000、香料、精製水

効能
肌あれ。あれ性。あせも・ひび・にきびを防ぐ。肌をひきしめる。 肌を清浄にする。
肌をととのえる。皮ふをすこやかに保つ。 皮ふにうるおいを与える。

女子の中では有名なのでしょうか。@cosmeを見ると1万件を超えるレビューがあって圧倒されます。
それでいてオードムーゲを販売している薬局を見かけたことがありません。薬局の人に聞いてみると「ああ、オードムーゲですよね。うちでは扱ってないんですよ。」的な返事。存在は知ってるけど扱ってない。何なのでしょうかね。

製造は六陽製薬ですが日邦薬品や小林製薬が販売していてよく解りません。取り敢えず2013年に六陽製薬は小林製薬グループの子会社になっているようです。
ちなみに日邦薬品のウェブには六陽製薬の都合で製造中止で2014年初から在庫限りとのこと。2月からリニューアルして販売するといいつつ4月末現在も新しい情報が掲載されていません。

梱包デザインは複数種類あるようですがボトルは1種類(容量違いはあり)だけ、どちらもそっけないデザインでフェミニンな感じはありません。男性にはこれはポイント高いです。
中身ですが、見た目は「水」以外の何物でもありません。トロリ感全く無しの無色透明です。
臭いは液体そのものを嗅ぐと少し薬品臭いですが、顔にかけてしまった後は基本的に臭いません。

オードムーゲ自体にも保湿作用はあるようですが、私の場合は乾燥肌なので冬場はオードムーゲだけだと乾燥して粉が吹きます。オードムーゲの上から保湿用の何かを塗っています。逆に夏場はオードムーゲ以外を付けてるとギトギトになるのでオードムーゲだけしています。
オードムーゲで基本的にはニキビが抑えられているように思いますが、疲れが溜まったり体が弱ったりするとオードムーゲでも疲れニキビと肌荒れが抑えきれなくなることがあります。特にバテて衰弱する夏場。この時だけはステロイドでも何でも良いので皮膚科の薬に頼ります。

ローションではあるのですが、普通の化粧水のように塗りたくって終わりだと効果が低くて、コットンに染み込ませて顔を拭いて汚れを拭きとって綺麗にするというのが正しい使い方のようです。顔にしっかりかかるようにコットンに染み込ませる量も多めにするべきでしょう。
そのため、常用するなら500mlでお試しレベルで160mlを選択するのが賢明だと思われます。

販売している薬局は少ないようですが、アマゾンでも販売しています。(アマゾン直販ではないので商品代とは別に送料がかかります。)
また、日邦薬品のウェブで取り扱い薬局を検索できるようになっているのでそこで探してお店で買えば当然ですが送料代はかかりません。
オードムーゲシリーズの商品ラインナップページから「オードムーゲ」を選択するとそのページに検索画面があります。(ウェブの作りこみが甘いのかワザとなのか商品ページのURL直指定で正しくページが表示されないアホ仕様になっています)  2015年3月更新: ウェブが作り直されたようです。