flex
flex- 使用Flexbox布局,这是一个非常灵活的布局模式,用于在容器内部以动态的方式对子项进行排列。justify-between- 在Flexbox布局中,这个类使容器中的子项之间的间距平均分布,首尾子项贴紧容器边界。items-center- 在Flexbox布局中,这个类使得容器内的子项在交叉轴(默认为垂直方向)上居中对齐。gap-2- 在Flexbox或Grid布局中,设置容器中子项之间的间隙为2个尺寸单位。flex-wrap- 允许Flex容器内的子项在必要时换行。
margin and padding
mb-10- 设置元素的下外边距(margin-bottom)为10个尺寸单位。mt-10mr-2- 设置元素的右外边距(margin-right)为2个尺寸单位。ml-2px-2- 设置元素的左右内边距(padding)为2个尺寸单位。py-1- 设置元素的上下内边距(padding)为1个尺寸单位。shadow-md- 应用中等强度的阴影效果。
tags / 🏷️ labels
inline-block- 设置元素为内联块级元素,这意味着元素可以在文本行内显示,同时能设置宽高。rounded-full- 设置元素的圆角为完全圆形,适用于创建圆形元素。rounded-lg- 给元素设置较大的圆角边框。text-xs- 设置文字大小为极小。mr-2- 设置元素的右外边距(margin-right)为2个尺寸单位。mb-2- 设置元素的下外边距(margin-bottom)为2个尺寸单位。border- 给元素添加边框。b-
Layout
<div className="flex flex-col min-h-screen"><PageNav /><main className="flex-1 w-full max-w-4xl mx-auto px-4 mt-8 mb-8">{children}</main><Footer />
</div>
-
flex- 应用了 Flexbox 布局,这是一种 CSS 布局技术,旨在提供一种更有效的方式来排列、对齐和分配在容器内项目之间的空间,即使它们的大小未知或是动态变化的。 -
flex-col- 这个类使得 Flexbox 容器内的子元素沿着垂直方向排列(列布局),而不是默认的水平方向。 -
min-h-screen- 设置元素的最小高度为视口的高度,确保即使内容不足时,容器也会至少占满整个屏幕的高度。 -
flex-1- 这个类在 Flexbox 布局中,允许main元素伸展以占用可用空间,使其成为可伸缩的。这意味着它会填充除了PageNav和Footer之外的空间。 -
w-full- 设置元素宽度为100%,即其父元素的全宽。 -
max-w-4xl- 设置元素的最大宽度为4xl(在 Tailwind CSS 的默认配置中,这通常相当于 56rem 或 896px),用于保持内容在大屏幕上的可读性。 -
mx-auto- 设置元素的左右外边距为自动(margin-left: auto; margin-right: auto;),这使得元素在水平方向上居中。 -
px-4- 设置元素的左右内边距(padding)为4个尺寸单位,用于保持内容不紧贴容器边缘,增加可读性。 -
mt-8- 设置元素的上外边距(margin-top)为8个尺寸单位,创建与上方元素的空间。 -
mb-8- 设置元素的下外边距(margin-bottom)为8个尺寸单位,创建与下方元素的空间。
这个布局保证了页面内容(children)在导航栏和页脚之间垂直居中,并且在大屏幕和小屏幕上都保持良好的布局效果。通过使用 flex-1,main 元素能够灵活地扩展其高度以填充导航栏和页脚之间的空间,确保页脚处于视口底部,即使内容不足以填满屏幕。