« パスワードは。。 | メイン | eMarkerを捨てた時に思ったこと »

2008年1月 8日

エントリーに画像を挿入すると回り込みになる

MT4でエントリーに画像を挿入する際に、配置する位置を選ぶことができるのですが、右か左を選ぶと回り込み(float)になってしまい、単純1段落に1画像だけ置きたい場合、意図しない結果になってしまうことがあります。

特にWYSIWIGエディタを使わない場合が面倒で、画像の後にstyle="clear: both;"のようなタグを入れなければ、回り込みを解除できません。

一体どうなっているものかと仕組みについて調べてみると、まず画像を挿入するとimgタグがformで括られます。その理由は下記のサイトを参照。

The blog of H.Fujimoto:画像を挿入したときにformタグがつく理由

formはspanに置換され、imgタグのstyle属性で左右中央の位置が決められるようです。該当部分のソースを見てみると、MT/lib/MT/Asset/Image.pmにおいて

左位置



float: left;
margin: 0 20px 20px 0;

右位置



float: right;
margin: 0 0 20px 20px;

中央位置ならば



text-align: center;
display: block;
margin: 0 auto 20px;

というある意味微妙な実装になっています。おまけに勝手にマージンが決められているのも勘弁して欲しいですね。本来ならば、位置選択の段階でfloatにするかブロック要素にするのか選ばせてもらいたいものです。

左位置(ブロック)



display: block;

右位置(ブロック)



display: block;
text-align: left;
margin-left: auto;
margin-right:0;

という感じでしょうか。

がんばってこの部分のコードを書き換えてもいいのですが、推奨されない方法です。が、このためにプラグインを書くのも面倒な話です。MTはこういう決め打ち的なコードが多いですよね。