什么鬼?我只是想居中而已!!!

今天来总结一下使用css来使元素居中的方法,首先说说使元素居中的基本思路

1、水平居中:margin-left=margin-right;

2、竖直居中:margin-top=margin-bottom

块元素居中

1、div水平居中


很自然,这个div通过设置左右外边距auto的方式实现了居中

2、div竖直居中

为了使效果更加明显,使用两个div来嵌套,这里要竖直居中的是子元素——“son”

实现的效果

1、设置父元素的height=line-height;

2、设置子元素的display为inline-block

3、设置子元素的vertical-align为middle

这样就完美地使div竖直居中了

这时候我忽然想让他水平居中和竖直居中一起实现,我加上margin:0 auto;


最后效果

发现这招怎么不管用了,水平居中并没有实现,这是出了什么问题呢?

别忘了此时他是一个inline-block,既具有block的宽度高度特性又具有inline的同行特性。

既然如此,父元素的宽度为200px,子元素的宽度为100px,经过复杂的计算。。。。

设置margin-left:50px就可以了


行内元素居中

水平居中

竖直居中

添加上lineheight:200px;

用a元素试试,同样一步到位,没毛病


用链接代替span

s,i,b等标签同理

如果将内容替换为图片呢


htnl部分


css部分


效果并不是特别好,竖直居中出了问题

什么鬼?我只是想居个中而已呀?

思考

img可以设置width和height,是一个行内块元

加上块元素的设置居中方法

把display:inline-block和vertical-align:middle补上
感动~~~居中再次奏效

忽然想到之前做过的一些注册界面,如果每一行都这么做是不是会很简单呢?


html代码
css内容
界面

目前只是为了调试居中的效果,并没有写过多的样式,但是居中的效果还是可以的

定位居中

直接上代码


没有任何的定位设置


熊本在左上方,宽度是div的三分之一


添加相对定位
完成居中

当然改为绝对定位也是可以的,但是要先在css中去掉标签自带的margin和padding,否则定位回受到影响

去除自带样式的内外边距

background-image也想要居中?

多大点事~

Q:如果是一个行内元素添加背景呢?

A:设置display属性为inline—block不就可以了


按照原来的代码来


呃呃。。。不想玩了

既然不能通过text-align来设置水平居中,那就只能向margin低头了

添加margin:50px;

完美

最后做个小结:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,692评论 1 92
  • 一 外部式css样式 (也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css...
    KunMitnic阅读 4,597评论 0 1
  • CSS格式化排版 1、字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例...
    张文靖同学阅读 5,081评论 0 3
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 7,514评论 0 30
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 8,606评论 0 5

友情链接更多精彩内容