TailwindCSS笔记应用Grid布局问题:展开项不影响同行元素高度
解决笔记展开时同行元素被拉长的问题
这个问题的核心是Grid和Flex布局的默认对齐行为——它们会让同一行的元素自动拉伸到和最高元素相同的高度。要解决这个问题,有几个直接的方案:
方案1:修改Grid容器的对齐方式
给Grid容器添加items-start类,让所有网格项从顶部开始排列,不再被强制拉伸到同一高度:
<ul className="grid md:grid-cols-2 lg:grid-cols-3 grid-cols-1 gap-4 my-16 items-start"> {notes.map((note) => ( <div key={note._id} id={note._id} className="border rounded p-4 flex flex-col" > <Note title={note.title} id={note._id} content={note.content} createdAt={note.createdAt} updatedAt={note.updatedAt} deleteNote={deleteNote} accessToken={cookies.access_token} fetchNotes={fetchNotes} /> </div> ))} </ul>
方案2:单独设置笔记项的对齐方式
如果不想改变整个Grid容器的对齐规则,也可以给每个笔记的外层div添加self-start类,让单个项不受拉伸影响:
<div key={note._id} id={note._id} className="border rounded p-4 flex flex-col self-start" > <Note ... /> </div>
额外优化:稳定内容区域的高度控制
当前的内容高度切换逻辑没问题,但可以给收起状态的内容容器加上min-h-[120px],确保收起时高度固定,避免布局抖动:
<li ref={contentRef} className={`mt-8 whitespace-pre-line ${ isShowMore ? "h-auto overflow-y-auto" : "h-[120px] min-h-[120px] overflow-y-hidden" } `} > {content} </li>
内容的提问来源于stack exchange,提问作者rboado
相关产品推荐
相关产品推荐

