CSS实现元素水平垂直居中方法_第1页
CSS实现元素水平垂直居中方法_第2页
CSS实现元素水平垂直居中方法_第3页
CSS实现元素水平垂直居中方法_第4页
CSS实现元素水平垂直居中方法_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、css实现元素水平垂直居中方法元素水平垂直居中的方法?如果元素不定宽高呢?=1匕曰、冃景在开发中经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成两个大类:0居中元素(子元素)的宽高已知“居中元素宽高未知二、实现方式实现元素水平垂直居中的方式:利用定位+margin:auto利用定位+margin:负值利用定位+transformtable布局flex布局grid布局利用定位+margin:auto先上代码:<style>.fatherwidth:

2、500px;height:300px;border:1pxsolid#0a3b98;position:relative;.sonwidth:100px;height:40px;background:#f0a238;position:absolute;top:0;left:0;right:0;bottom:。;margin:auto;</style><divclass="father"><divclass="son"x/div></div>父级设置为相对定位,子级绝对定位,并且四个定位属性的值都设置了0,那么

3、这时候如果子级没有设置宽高,则会被拉开到和父级一样宽这里子元素设置了宽高,所以宽高会按照我们的设置来显示,但是实际上子级的虚拟占位已经撑满了整个父级,这时候再给它一个marginauto它就可以上下左右都居中了利用定位负值绝大多数情况下,设置父元素为相对定位,子元素移动自身50%实现水平垂直居中<style>.fatherposition:relative;width:200px;height:200px;background:skyblue;.sonposition:absolute;top:50%;left:50%;margin-left:-50px;margin-top:-5

4、0px;width:100px;height:100px;background:red;</style><divclass="father"><divclass="son"></div></div>整个实现思路如下图所示:外部div32红色为内咅阳iv-初始位置为方块i的位置“当设置left、top为50%的时候,内部子元素为方块2的位置“设置margin为负数时,使内部子元素到方块3的位置,即中间位置这种方案不要求父元素的高度,也就是即使父元素的高度变化了,仍然可以保持在父元素的垂直居中位置,

5、水平方向上是一样的操作但是该方案需要知道子元素自身的宽高,但是我们可以通过下面transform属性进行移动利用定位tranform实现代码如下:<style>.fatherposition:relative;width:200px;height:200px;background:skyblue;.sonposition:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:red;</style><divclass="fa

6、ther"><divclass="son"x/div></div>translate(-50%,-50%)将会将元素位移自己宽度和高度的-50%这种方法其实和最上面被否定掉的margin负值用法一样,可以说是margin负值的替代方案,并不需要知道自身元素的宽高table布局设置父兀素为display:table-cell,子兀素设置display:inline-block。利用vertical和text-align可以让所有的行内块级兀素水平垂直居中<style>.fatherdisplay:table-cell;wid

7、th:200px;height:200px;background:skyblue;vertical-align:middle;text-align:center;.sondisplay:inline-block;width:100px;height:100px;background:red;</style><divclass="father"><divclass="son"x/div></div>flex弹性布局还是看看实现的整体代码<style>.fatherdisplay:flex;just

8、ify-content:center;align-items:center;width:200px;height:200px;background:skyblue;.sonwidth:100px;height:100px;background:red;</style><divclass="father"><divclass="son"></div></div>css3中了flex布局,可以非常简单实现垂直水平居中这里可以简单看看flex布局的关键属性作用:display:flex时,表示该容器内

9、部的元素将按照flex进行布局align-items:center表示这些元素将相对于本容器水平居中justify-content:center也是同样的道理垂直居中grid网格布局<style>.fatherdisplay:grid;align-items:center;justify-content:center;width:200px;height:200px;background:skyblue;.sonwidth:10px;height:10px;border:1pxsolidred</style><divclass="father"

10、><divclass="son"x/div></div>这里看到,gird网格布局和flex弹性布局都简单粗暴小结上述方法中,不知道元素宽高大小仍能实现水平垂直居中的方法有:利用定位+margin:auto利用定位+transform利用定位+margin:负值flex布局grid布局二e=54±、心二口根据元素标签的性质,可以分为:°内联元素居中布局°块级元素居中布局内联元素居中布局水平居中u行内元素可设置:text-align:centeruflex布局设置父元素:display:flex;justify-content:center垂直居中“单行文本父元素确认高度:height=line-height''多行文本父元素确认高度:disaply:table-cell;vertical-align:middle块级元素居中布局水平居中°定宽:margin:0auto°绝对定位+left:50%+margin:负自身一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论