首页 > 几种经典的居中技巧(垂直和水平居中)

几种经典的居中技巧(垂直和水平居中)

 

技巧一(推荐指数★★★★★ 采用top、right、bottom、left,可以不在乎父元素的宽度和高度,对GPU损耗低于技巧三,但是对浏览器内存的消耗高于技巧三

    .子元素 {/*父元素需要position: relative|absolute;*/position: absolute;margin: auto;top: 0;left: 0;right: 0;bottom: 0;width: 100px;height: 100px;}

技巧二(推荐指数★★★☆☆)要计算宽度、高度,仅适用于定宽定高的子元素,具有一定局限性

    .子元素 {position: absolute;width: 宽度px;height: 高度px;margin-left: calc(-宽度 / 2);margin-top: calc(-高度 / 2);left: 50%;top: 50%;        }

技巧三(推荐指数★★★★☆)渲染快,可以不在乎父元素和子元素的宽度和高度,特别适用于当某段动态文本(子元素)在div(父元素)内需要水平垂直居中的情况,不过需要改变子元素的position属性,如果position不能修改的情况建议使用技巧五,同时需要注意,如果该子元素还有其他兄弟元素,可能会对排版间距造成一些影响,因为这里用了translate属性

    .子元素 {/*父元素需要position: relative|absolute;*/position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);}

技巧四(推荐指数★★★☆☆)只对全局居中有效,如果在某个div内部还需要计算父级div宽度高度,100vh和100vw就需要换成父元素的高宽

    .子元素 {margin-top: calc(100vh / 2);margin-left: calc(100vw / 2);transform: translate(-50%, -50%);}

技巧五(推荐指数★★★★☆)只需要对父元素进行设定,不需要管子元素死活,美中不足在实际使用过程我们往往只会关注子元素,如果修改父元素的这些属性将会导致一系列的连锁反应,因为父元素可能还包含了其他子元素,如果非得要使用该方法,建议父元素只有唯一子元素的时候使用吧!特别适用于div(父元素)内有动态文本(子元素)需要水平垂直居中的情况,不过这会修改父元素的display属性,如果不允许修改display的情况下建议使用技巧三

    .父元素{display: flex;justify-content: center;align-items: center;}

更多相关:

  • 栈stack:stack 后入先出(LIFO) q.top()获取栈顶元素(并不删除)q.pop()删除栈顶元素q.push(x)向栈中加入元素q.empty()判断栈是否为空 队列queue:先入先出(FIFO)   q.front()获取队首元素(并不删除)q.pop()删除队首元素q.push(x)向队列中加入元素q....

  • resize(),设置大小(size); reserve(),设置容量(capacity); size()是分配容器的内存大小,而capacity()只是设置容器容量大小,但并没有真正分配内存。 打个比方:正在建造的一辆公交车,车里面可以设置40个座椅(reserve(40);),这是它的容量,但并不是说它里面就有了40个座椅,只能说...

  • v-for="(index,$i) in total" :key="$i":style="{left:`${itemWidth*((index-1)%rowItemCount)}px`,top:`${itemHeight*(Math.ceil(index/rowItemCount)-1)}px`}" //total是显示总数量 //l...

  • 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack...