当前位置: 首页 > 科技观察

前端开发中各种居中问题的简单总结

时间:2023-03-14 20:41:00 科技观察

因为工作原因,之前发表过很多Linux相关的文章。今天是周末,刚好参与了一些涉及到前端开发的项目,所以今天找到其中一个关于页面居中的要点,来和大家聊一聊。对于这个问题,对于很多前端大佬来说似乎是一件很简单的事情,现在成熟的框架实在是太多了。但是我们本着练技术的原则,所以不考虑使用框架,直接用原来的css+js来实现。1、内联元素水平居中内联元素(如text、span、图片等)的水平居中比较简单,只需在其父元素中设置text-align为居中即可:text-align:center;block-levelelements块级元素,比如div,默认宽度为100%,不关心居中对齐。但是当给定一个不同的宽度时,比如多少像素,或者是多少百分比,那么就会需要居中对齐。在这种情况下,你可以使用左右边距来设置它的水平居中对齐方式,如下:.div-class{width:50%;margin:0auto;}除了上述方法,还有一种方法可以实现居中对齐,那就是使用Absolute定位,但是我们将其放在后面,因为它不仅可以实现水平居中,还可以实现垂直居中。2.垂直居中对于单行文本居中,可以通过设置父元素的行高来实现,将其行高和元素高度设置为相同的值:.font-ct{height:40px;行高:40px;}对于多行文本,可以设置如下css(单行文本同样适用):.font-ct{height:100px;显示:表格单元格;vertical-align:middle;}上面的css代码同样适用于行内元素。另外,对于图片的居中对齐,一般情况下可以使用上面的代码,但是由于浏览器兼容性问题,有时td中的图片无法垂直居中。这时候给img标签加上align属性,应该就可以了:块元素的垂直居中。一般情况下,块元素及其父label元素的高度都是给定的,所以可以提前计算出块元素距离顶部的高度,可以设置margin-top属性。这种方式不是很灵活,但是应该可以满足绝大多数的页面布局需求。如果高度不确定,请参考下一章。3.水平居中和垂直居中水平居中和垂直居中都需要居中。有一个常见的场景:比如一个宽高不固定的弹出框。这时候就可以使用终极武器了:绝对定位。对于绝对定位,什么时候都可以用,主要看方便不方便。绝对定位对于尺寸不固定的单元素布局很方便。如果我们有以下两个元素,.ct是父元素,并且有一个div类的div元素:

首先我们给它设置定位,如下:.ct{position:relative;}.div{position:absolute;}对于.div如何居中,如果.div的大小是固定的,那么可以设置它的left和top值。但不幸的是,它的大小不是固定的,所以我们需要使用另一个css属性:transform。首先,设置.div的位置:left:50%;顶部:50%;然后使用transform属性让.div在水平和垂直方向偏移50%:transform:translate(-50%,-50%);完整代码如下:.div{position:absolute;左:50%;顶部:50%;transform:translate(-50%,-50%);}这样就可以让.div的位置居中了。以上就是本次分享的全部内容。