下記のソースは、ボックス内の要素を中央に寄せたいときに利用しています。
要素を中央に配置するために、囲っている要素の高さから中央に配置したい要素の高さを引き、それを2で割っています。
しかし、ここで一つ問題が発生してしまいました。center_el配列の2番目に指定している#gnavi #gnavi_contents a spanの高さがなぜか0pxなのです。ここが0pxだと上手く中央に配置されません。しかし0番目の配列要素である#gnavi li a spanは、同じようにCSSを指定しているのに0pxではありません。
http://fast-uploader.com/file/7005994524054/
どうにかして二番目の配列要素である#gnavi #gnavi_contents a spanを0番目のように高さを与えたいのですがどうすれば良いのでしょうか。
中央に配置するソース
javascript
1 var center_el = { 2 '#gnavi': '#gnavi li a span', 3 '.jakku p:nth-child(3)': '.jakku p:nth-child(3) span', 4 '#gnavi_contents a': '#gnavi #gnavi_contents a span' 5 } 6 $.each(center_el, function(index,value) { 7 //index=囲っている要素:value=中央に配置する要素 8 var wrap_h = $(index).height(); 9 var center_h = $(value).height(); 10 var fit_h = Math.floor((wrap_h - center_h) /2) +'px'; 11 //中央に配置したい要素のpadding-topを設定している。 12 $(value).css('padding-top', fit_h); 13 });
ちゃんと高さが算出されるspan
css
1#gnavi li a span { 2 display: inline-block; 3}
高さが0pxになってしまうspan
css
1#gnavi #gnavi_contents a span { 2 padding-left: 15px;/*15px*/ 3}
cssソース全文
http://fast-uploader.com/file/7005995263000/
パスワードは12345です。お手数おかけします。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11153746866
回答2件
あなたの回答
tips
プレビュー