如何定位MUI特定默认类?AccordionSummary组件样式修改
解决AccordionSummary焦点样式不生效问题
你之前的样式选择器写法有误,导致无法正确命中目标类。核心问题是你用了后代选择器(&后面加了空格),但Mui-focusVisible类是直接挂载在AccordionSummary自身根元素上的,并非后代元素。
直接修改sx属性里的选择器即可生效:
<AccordionSummary sx={{ // 直接命中当前组件的focusVisible状态 '&.Mui-focusVisible': { backgroundColor: 'transparent' }, // 如果需要调整输入框的焦点样式,可追加以下规则(按需启用) '& .MuiTextField-root': { '&.Mui-focused': { // 示例:去掉输入框的焦点边框高亮 // outline: 'none' } } }} id='panel-header-1' aria-controls='panel-content-1' expandIcon={ <Box sx={{ rowGap: 2, display: 'flex', flexWrap: 'wrap', alignItems: 'center' }}> <CustomTextField value={value} sx={{ mr: 4 }} placeholder='搜索产品' onChange={e => handleFilter(e.target.value)} /> <Button onClick={toggleAccordion} variant='contained'> 筛选 </Button> </Box> } ></AccordionSummary>
额外提示:如果点击输入框或按钮时,AccordionSummary意外触发展开/折叠,可以给这两个组件添加事件冒泡阻止,避免干扰父组件逻辑:
<CustomTextField value={value} sx={{ mr: 4 }} placeholder='搜索产品' onChange={e => handleFilter(e.target.value)} onClick={(e) => e.stopPropagation()} /> <Button onClick={(e) => { e.stopPropagation(); toggleAccordion(); }} variant='contained'> 筛选 </Button>
内容的提问来源于stack exchange,提问作者Sunny
相关产品推荐
相关产品推荐

