随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

一、盒子垂直居中的方法

1、先让盒子的上下边缘和父盒子的水平中心线重叠,,然后再让子盒子往回移动自身一半的距离

<div class="father">                // 结构
    <div class="son"></div>
</div>

/* 通过 transform 属性来移动*/
.father {
    width: 500px;
    height: 500px;
    background-color: skyblue;
    border: 1px solid #000;
    margin: 0 auto;
}
.son {
    width: 200px;
    height: 200px;
    background-color: pink;
    border: 1px solid #000;
    margin-top: 50%;                  // 向下移动父盒子的一半
    transform: translateY(-50%);      // 向上移动自身盒子的一半
}

    /* 通过 定位来移动*/
   .father {
    width: 500px;
    height: 500px;
    background-color: skyblue;
    border: 1px solid #000;
    margin: 0 auto;
    position: relative;
}
.son {
    width: 200px;
    height: 200px;
    background-color: pink;
    border: 1px solid #000;
    position: absolute;
    top: 50%;                  // 先向下移动父盒子的一半
    margin-top: -100px;        // 再向上移动自身盒子的一半

}

2、使用表格的 vertical-align :middle 属性来实现盒子垂直居中

.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    display: table-cell;         // 显示形式为表格
    vertical-align: middle;      // 里面内容为居中对齐
}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
}

3、知道父盒子的高度,可以使用 margin 计算盒子的上下边距,来使盒子居中

.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    margin50px auto;

}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
    margin-top149px;         // 根据父盒子的高度指定 margin-top 即可
}

二、盒子水平居中的方法

1、使用 margin: 0 auto;

.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    margin50px auto;

}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
    margin0 auto;           // 让盒子左右自动适应,想当于 left:auto; right:auto
}

2、通过计算 margin 左右边距来实现居中

.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    margin50px auto;

}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
    margin-left149px;          // 父盒子的定宽的,指定 margin-left 即可
}

3、先让盒子左右边缘和父盒子垂直的中心线垂直,然后把子盒子往回移动自身宽度的一半

/* 通过 transform 实现*/
.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    margin50px auto;

}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
    margin-left50%;                // 先移动父盒子的一半
    transform: translateX(-50%);     // 再移动自身盒子一半

}

/*通过 定位实现*/

.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    margin50px auto;
    position: relative;

}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
    position: absolute;
    left50%;                       // 向右移动父盒子一半
    margin-left: -100px;             // 向左移动自身盒子一半
    /* transform: translateX(-50%); */    //向左移动自身盒子一半
}

4、把盒子转成 行内块,然后用 text-align 属性使盒子水平居中

.father {
    width500px;
    height500px;
    background-color: skyblue;
    border1px solid #000;
    margin50px auto;
    text-align: center;               // 让父盒子设置水平居中

}
.son {
    width200px;
    height200px;
    background-color: pink;
    border1px solid #000;
    display: inline-block;            // 让子盒子显示为行内块模式
}
posted on   格物致知_Tony  阅读(21264)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示

目录导航