欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何让浮动的元素水平居中

程序员文章站 2022-07-09 18:18:10
...

为什么会出现浮动元素呢?简单点,比如说,块级元素表示的列表,默认的,每行列表都独占一行显示,如果想让他们排在一行内,就可以使用浮动定位,将元素浮起来,一行排列。浮动的元素水平居中,有两种情况,一是浮动的元素有固定的宽度,另一种是无法确定宽度的浮动元素居中。

一、确定宽度的浮动元素

用列表表示的水平菜单栏,浮动在一行,整个菜单的宽度是固定的

 

<div class="header">
		<ul>
			<li>HTML/CSS</li>
			<li>JavaScript</li>
			<li>Server Side</li>
			<li>ASP.NET</li>
			<li>XML</li>
			<li>Web Services</li>
		</ul>
	</div>	
<style type="text/css">
	html,body{margin: 0px;padding: 0px;}
	ul {list-style: none;}
	a {text-decoration: none;}

	.header {background: #fbfbfb; width: 700px;margin: 20px auto;height: 50px;font-size: 14px;text-align: center;line-height: 50px;}
	.header ul li {float: left;width: 100px;}
</style>

 因为header的宽度是固定的,所以设置header的左右外边距为自动就可满足header整体居中显示,即:margin:20px auto;上下外边距可自动定义。

 

另:设定header元素的height,同时设定line-height等于height,可以使得header中的元素上下也居中。

二、无法确定宽度的浮动元素居中

一个非常简单的例子,就是用列表来表示页码,因为页码会根据的内容的多少有多有少,无法确定其整个元素的宽度

 

<div class="pagelist">
	<div class="pages">
		<ul>
			<li><a href="#"><<</a></li>
			<li><a href="#">1</a></li>
			<li><a href="#">2</a></li>
			<li><a href="#">3</a></li>
			<li><a href="#">4</a></li>
			<li><a href="#">5</a></li>
			<li>...</li>
			<li><a href="#">99</a></li>
			<li><a href="#">100</a></li>
			<li><a href="#">>></a></li>
		</ul>
	</div>
</div>

 

<style type="text/css">
	ul {list-style: none;}
	a {text-decoration: none;}
	.pagelist{position: relative;float: left;left: 50%;}
	.pages {position: relative;float:left;right: 50%; margin: 20px auto;text-align: center;height: 30px;}
	.pages ul {height: 30px;text-align: center;margin: auto;line-height: 30px;}
	.pages li{float: left;height: 30px;margin-left: 4px;}
	.pages ul li a{border: 1px solid #e3e3e3;border-radius: 3px;padding: 0px 10px;}
</style>

 pages元素显示的是整个页码,并且都浮动在一行,因为pages元素没有固定的宽度,所以,怎么设置pages的左右外边距为自动都不会起效果,设置text-align:center;对其也没有效果,如果这样想的话确实是件很纠结的事。这个时候,需要在pages的外边再添加一个div————pagelist,并且设置 .pagelist {position:relative;float:left;left:50%;} .pages {position:relative;float:left;right:50%;}一样以来,一左一右,就会使得pages中的元素居中显示了

 

相关标签: 浮动 水平居中