评论资讯 [ 总 1061 则 ]
·悄然 - 2026-1-26 20:01
·马黑 - 2026-1-26 19:46
·马黑 - 2026-1-21 13:03
·悄然 - 2025-12-29 08:35
·飞飞 - 2025-12-29 08:33
·飞飞 - 2025-12-29 08:31
·马黑 - 2025-12-28 19:33
·马黑 - 2025-12-28 19:31
·马黑 - 2025-12-28 19:28
·水手 - 2025-12-19 17:28
·马黑 - 2026-1-26 19:46
·马黑 - 2026-1-21 13:03
·悄然 - 2025-12-29 08:35
·飞飞 - 2025-12-29 08:33
·飞飞 - 2025-12-29 08:31
·马黑 - 2025-12-28 19:33
·马黑 - 2025-12-28 19:31
·马黑 - 2025-12-28 19:28
·水手 - 2025-12-19 17:28
友情链接
网站统计
八、父元素令子元素全居中的办法
八、父元素令子元素全居中的办法
子元素在“父元素定位+自身绝对定位”的前提下,通过设定left或top值为“calc(50% - (自身宽或高除以2)px”可全居中,即绝对居中,就是水平和垂直方向都居中,但那是子元素的行为。父元素作为一家之主,也有能力令所有子元素绝对居中,较常用的方法有两个,都是基于 display 设定的。display 指显示方式,CSS将其作为一个属性,用于设置元素的显示形态,如不显示(none)、行内内联样式(inline)、行内块样式(inline-block)、块样式(block)等;还可用于设置元素的布局方式,如弹性布局(flex)和网格布局(grid),我们本节就是讲讲通过父元素的 flex 和 grid 布局令其下子元素绝对居中,以下两组代码的红色部分是实现子元素全居中的关键:
方法一:弹性布局(flex)
#papa {
margin: auto;
width: 1200px;
height: 640px;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
方法二:网格布局(grid)
#papa {
margin: auto;
width: 1200px;
height: 640px;
display: grid;
place-items: center;
position: relative;
}
网格布局(grid)和弹性布局(flex)令子元素绝对居中的设置都不复杂,都只需简单设置两三个属性的事情。而且,它们不依赖于自身的 position 设定,也不依赖于子元素的 position 配套设定,直接绝对居中,不过,帖子和帖子的子元素总要做位置偏移,还是建议给帖子所用到的元素采取配套的 position 定位方式,即“父 relative + 子 absolute”的方式。
子元素绝对居中的应用场景很多,比如做圆环环绕的效果,子元素绝对居中之后通过 transform 的 rotateY + translateX 能够快速实现,无需考虑 transform-origin 圆点设置。即便用不上,设置了子元素绝对居中也不会妨碍给元素设置 left 和 top 的操作。
子元素在“父元素定位+自身绝对定位”的前提下,通过设定left或top值为“calc(50% - (自身宽或高除以2)px”可全居中,即绝对居中,就是水平和垂直方向都居中,但那是子元素的行为。父元素作为一家之主,也有能力令所有子元素绝对居中,较常用的方法有两个,都是基于 display 设定的。display 指显示方式,CSS将其作为一个属性,用于设置元素的显示形态,如不显示(none)、行内内联样式(inline)、行内块样式(inline-block)、块样式(block)等;还可用于设置元素的布局方式,如弹性布局(flex)和网格布局(grid),我们本节就是讲讲通过父元素的 flex 和 grid 布局令其下子元素绝对居中,以下两组代码的红色部分是实现子元素全居中的关键:
方法一:弹性布局(flex)
#papa {
margin: auto;
width: 1200px;
height: 640px;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
方法二:网格布局(grid)
#papa {
margin: auto;
width: 1200px;
height: 640px;
display: grid;
place-items: center;
position: relative;
}
网格布局(grid)和弹性布局(flex)令子元素绝对居中的设置都不复杂,都只需简单设置两三个属性的事情。而且,它们不依赖于自身的 position 设定,也不依赖于子元素的 position 配套设定,直接绝对居中,不过,帖子和帖子的子元素总要做位置偏移,还是建议给帖子所用到的元素采取配套的 position 定位方式,即“父 relative + 子 absolute”的方式。
子元素绝对居中的应用场景很多,比如做圆环环绕的效果,子元素绝对居中之后通过 transform 的 rotateY + translateX 能够快速实现,无需考虑 transform-origin 圆点设置。即便用不上,设置了子元素绝对居中也不会妨碍给元素设置 left 和 top 的操作。
前一篇: 七、弄清元素间的父子层级关系
下一篇: 九、文本设置常用方法与技巧
发表评论:
评论列表 [0条]

