【html/css】liをfloat:leftしたcomponentを中央に配置した際の些細なメモ

分かってしまえばコロンブスの卵的なことでしたが、意外と悩んだのでメモ。

などにもあるように、liをfloat:leftで横に並べたページ・ナヴィを中央に配置するには、例えば

ulをその親要素(例えばdiv)の50%分右に移動し、liをその親要素(ul)の50%分左に移動すればOK。

ということで、下のようなソースがよくある手法ですが

css↓

.pageNavi {
	position:relative;
	overflow:hidden;
}
.pageNavi ul{
	position: relative;
	left: 50%;
}
.pageNavi ul li {
	position: relative;
	left:-50%;
	float: left;
	list-style:none;
	margin:1em;
}

 

html↓

<div class="pageNavi">
	<ul>
		<li><a href="#">【PAGE1】</a></li>
		<li><a href="#">【PAGE2】</a></li>
		<li><a href="#">【PAGE3】</a></li>
		<li><a href="#">【PAGE4】</a></li>
	</ul>
</div>

実際にやってみると、このように


どうも右にずれてしまう、、、。

ので、おかしいな~、なんでだろ~、と背景に色を塗るなどして調べていたら気づきました。

ulのmargin, padding分がずれの原因

でした。

そこでulに「margin:0;」「padding:0;」を追加

.pageNavi ul{
	position: relative;
	left: 50%;
	margin:0;
	padding:0;
}

したらこのようになりました。


ちなみに、
ulを囲っているdivに「position:relative;」を入れているのはIE対策、
「overflow:hidden;」を入れているのはulを右にずらした際に横幅が広がって横スクロールバーが出現してしまうのを防ぐため。

 

Filed under: ★Web制作関係  タグ: , , , , , , , ,   charlie432 00:00  Comments (0)
    2011年6月
    « 5月   7月 »
     12345
    6789101112
    13141516171819
    20212223242526
    27282930