2010年10月23日土曜日

id名に#をつけておった。。。。。

jQueryでid名にて色々制御しようとしているのに、
まるで反応が無くて悩みました。

色々色々調べていて。。。。

id="#test"
みたいにid名を書いていたことを発見。。。orz

idの名前に#をふっておったよ、わし。

解決して嬉しいやら,情けないやら。

2010年10月21日木曜日

タグの自動除去を正規表現で emeditorにて

emeditorで正規表現をつかい始めた。

素晴らしい解説があったので、とりあえずメモ
http://designblog.ecstudio.jp/tool/emeditor-02.html

正規表現は,本当に使える。
これまで使っていたeditorではperl互換ではなかったので、イマイチ使いにくかった。

emeditorはperl互換なので、ソリッドに使える感じ。

まだ正規表現の初学者だが、これからどんどん使っていきたい。

*****************************

ちなみに今回は、
<span style="font-size: x-small;">いろいろなんだかんだ</span>
といった部分の前後のspanタグを取り払って中身だけ取り出したい、という用途。

<span style="font-size: x-small;">(.+?)</span>
を正規表現で拾って、
$1
で中身だけ取り出せた。

$0かな、と思ったけど、$1らしい。

.+?はgreedyでないマッチングの方法で、前からありがたく使わせてもらっている。
これがないと、<span>の閉じタグがいくつかあれば最後尾の閉じタグにしかマッチしないので。。

正規表現、すばらし。

2010年10月18日月曜日

IE6とz-indexの関係

IE6でz-indexは鬼門であると再認識。

z-indexを指定しても、HTMLの要素の並び順が優先される様子。
ブロック間のz-indexには適用されないとか。。


以下が参考になりました。
http://shirabemono.cocolog-nifty.com/blog/2008/02/iefirefoxzindex_f4bc.html

更に調べると、
position:relative;を指定した複数のブロック間では、
後にrelative指定したブロックの方が上に表示される、ということのようです。

参考になったのは以下。
http://miyazakiweb.seesaa.net/article/117561935.html

そんなわけで、relative指定した二つのブロックにz-indexをそれぞれ設定し、
順番を変更してやったら,無事OKになりました。

よかった!

色々情報を上げて下さった方々に感謝。

2010年8月23日月曜日

text-indent:-9999px;ちょっと怖いな。

とある仕事で作ったページのリンク画像表示にtext-indent:-9999px;の手法を使い、
ふとそのページをiPhoneでブラウズしたら、
背景画像が見えていなかった。
ショック!

googleのCSSスプライトはどうしてるんだっけ?と思ったら、以下のページに詳しくコツが書いてありました。
多謝。

http://otaxa.com/css/text-hiding-without-text-indent-9999px/

対処せねば~

■追記:
CSSスプライトで、画像を使ったhoverに直しましたが、
IIEだけ画像置換してくれません。。。

悩んだから、zoom:1;でOKになるという記述を見て、
やってみたらOKに。。
http://likearpeggio.blog63.fc2.com/blog-entry-223.html

 http://www.ryu-raku.co.jp/blog/archives/989

やっぱIE対策はzoom:1;(hasLayout対策)ですか。。。

2010年6月29日火曜日

z-indexとclassとidの関係

z-indexを高く設定したのに,下に表示さえる、という現象に悩みました。

考えてみたら、classにz-index:1000;
idにz-index:500;
などとしていたのでした。

z-indexより、class,idの優先度(詳細度)の方が優先でしたね。

当たり前か。

まあ、解決して良かったです。

2010年6月8日火曜日

IE6でmin-height

IE6でもmin-heightを再現したいと思って検索していたら方法が書かれていたのでメモです。

height:auto !important;を宣言する、と。
で、height:100px;と、min-heightで宣言した高さを更に宣言するようですね。

.foo {
min-height:100px;
height: auto !important;
height: 100px;
}


大丈夫かな?と思って怖々でしたが、一応100pxを超える場合もOKのようです。

よかった。


以下、参考になったページ。

2010年5月19日水曜日

floatで左右に振って、スライドバーが出現。

左右にカラムを並べるごく一般的なレイアウトで、以前作ったサイトのページ下部にスライドバーが表示されている事に気がついた。

色々調べて、左右それぞれをfloatで左右に振っているのが良くないと判明。
左はfloatで寄せて、右はmargin-leftで右に寄せていく、という方がベターですね。

floatの多用は気をつけないと、表示崩れを起こしやすい、と改めて認識。

2010年5月12日水曜日

IE6でフォームをfloatしたら、崩れた。。

IE6以外は大丈夫でしたが、
header領域をdivでくくり、その中でformをfloat:rightなどとして右寄せしてみたら、
divのheightを大きく崩して、間延びしたレイアウトになってしまいました。

理由が分からなかったのですが、
formをfloatしても、IE6の場合は括られている領域のheightを押し広げてしまうのが原因と判明。

position:absolute;にして対応して、無事レイアウト崩れが収まりました。

2010年3月9日火曜日

z-indexとpositionの大事な関係。

サイト制作をしていて、headerの背景が、main contents部分の上に重なり、main contentsの文字が欠けてしまって困りました。

z-index関係とは分かりつつ、試行錯誤の末やっと解決したのでメモです。

position:relative;等の指定(static以外のpositionプロパティ)をすると、z-indexは高くなり、指定していない要素の上に重なってしまうということで、
main contents部分のpositionをrelativeにしてもIE6はダメで、結局main contents内にmainとsidebarという領域をfloat等で作っていたので、それらにもposition:relative;を指定してやると無事重なり順を変更できました。

z-indexとpositionはワンセットで指定するものですね。
positionを使って大きめの背景を使い、次の要素をネガティブmarginなどで上にずらしてみたりすると、この問題に遭遇しやすいかもです。

2010年3月4日木曜日

IE6でp要素に幅を指定すると、floatしたimgの横がカラム落ち

IE6でimgをfloatさせてるのにpの横がカラム落ちするからおかしいなあ、と思っていたら、
p要素に幅を指定しているのが原因だった。

IE TESTERで調べていて、pに幅指定をしていたのを思い出し、pに幅指定されていると、floatしてもfloatしたimgのwidth+pのwidthが親要素のwidthより大きいと落ちる様子。

モダンブラウザは大丈夫だから、侮った。

pにwidthなんて指定しちゃいけませんね。やっぱ。

IE6とposition:absoluteと幅高さ指定。

IE6でposition:absolute;を使う場合、
どうもposition:relative;を指定する要素がしっかりwidthやheightが指定されていないと、position指定したとおりになってくれない様子。

モダンブラウザはOKだが、IE6でずれるので、いろいろやってみて縦横を指定したらOKになったので、メモ。

どちらかだけでもいいのかもしれない。要するにhasLayoutというあれが原因かな。。

2010年3月3日水曜日

backgroundの一括指定メモ。

background指定の際、

background-image:url(example.jpg) no-repeat;
ではエラーで、
background:url(example.jpg) no-repeat;
はOK。

なぜなら、background:という指定方法は、「ショートハンド」として複数の属性値を指定可能。

background:url(example.jpg) no-repeat 5px 0;
などとしたら、leftから5px,topは変わらず、となる。
数値指定は、left topの順番。

background,短くて便利。

2010年2月18日木曜日

IE6でh1要素を見えなくしようとして躓いたメモ。

IE6でh1要素を見えなくしようとして、躓いたメモです。

text-indent:-9999px;
を使い、
font-size:0px;height:0px;visibility:hidden;
等も指定したのですが、
他のモダンブラウザは消えてくれても、IE6だけは高さそのままで消えてくれませんでした。
(メインビジュアル上にサイト名も書き込んでいるので、そのような設定を必要としていました。メインビジュアルをh1要素の背景にすれば話は早いのですが、CMS上での特殊な適用で、ちょっと工夫が必要であったので。)

結局、position:absolute;を指定して、他のボックスから切り離して対処しました。

自分の対処が最善か、まだ調査が必要そうです。

2010年1月8日金曜日

隣接セレクタと子セレクタを認識。。

子要素にだけスタイルを適用するには、親要素を正しく設定してやる必要あり。


内のh2要素の後にくるulに左マージンを作ってやろうとしたら、関係ないグローバルナビのulにまでマージンが発生してレイアウト崩れて、少々悩みました。
h2 > ul{    margin-left:50px;
}
みたいに設定したら無理で、
div#main > ul {
    margin-left:50px;
}
はOKでした。

子セレクタへのCSS適用は、ちゃんと親要素を設定してやらないといけませんね。

h2とulは隣同士の関係だったので、「隣接セレクタ」という「+」で設定するようですね。
「子セレクタ」と「隣接セレクタ」を混同していました(爆)