视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
详解CSS元素居中布局的简单方法
2020-11-27 18:52:39 责编:小采
文档
 这篇文章主要介绍了详解CSS元素居中布局的简单方法,文中介绍了内嵌元素和块元素以及行内块三种情况,需要的朋友可以参考下

首先我们需要知道元素都有哪些种类?

内嵌元素(display:inline;)如a,span,b,i 【一个不可定制的盒子】

[默认同行可以继续跟同类型标签]
[内容撑开宽度]
[不支持宽高]
[不支持上下的margin和padding]
[代码换行会被解析成空]

块元素(display:block;)如p,p,h1-h6

[默认独占一行显示]
[基本支持所有的css命令]

行内块(display:inline-block;)如img 【img就是这么一个神奇的东东。它既不是内嵌又不是块,而是行内块】

[块在一行显示]
[支持宽高]
[没有宽度时内容撑开宽度]

那么接下来我们依次将上面三种元素居中

一、内嵌元素之单行文本

最最常见的解决办法就是使用text-align和line-height

line-height:200px; 
text-align:center;

但是这种处理办法就一定十全十美吗?我不这么认为(估计有人吐槽我强迫症了)
反正我每次选中文字看到非文字区也被选中就很不爽,不过IE6-8只会选中文字

二、块元素居中

解决办法:使用定位元素+margin负值

width:100px; 
height:100px; 
position:relative; 
left:100px; 
top:100px; 
margin-left:-50px; 
margin-top:-50px;

缺点:要求必须知道盒子的宽高

三、行内块居中

(1)把img转化为背景图片,然后用background-position:center;但是需要注意的是由于图片的链接一般都是经常改变的,所以需要这样做:

<img style=”background-img:url(imgURL)” />

是不是违背了内容样式分离的原则。

(2)辅助标签

html代码:

<p class="box"> 
 <img src="img.png" /><span></span> 
</p>

CSS代码:

.box{width:200px;height:200px;border:1px solid #333;margin:0 auto;text-align:center;} 
.box img{vertical-align:middle;border:1px solid #999;padding:2px;} 
.box span{display:inline-block;height:100%;background:#333;vertical-align:middle;}

效果:

废话:要让img元素和辅助元素span在一行,否则会出现水平不完全居中,当使用inline-block时,换行会被解析成空格。其实网上还有其他办法,比如说风靡已久的table法。网上一大堆这里就不显摆了。

下载本文
显示全文
专题