列表组
列表组是一个灵活且强大的组件,用于显示一系列内容。修改和扩展它们以支持几乎任何内容。
基本示例
import ListGroup from 'react-bootstrap/ListGroup';function DefaultExample() {return (<ListGroup><ListGroup.Item>Cras justo odio</ListGroup.Item><ListGroup.Item>Dapibus ac facilisis in</ListGroup.Item><ListGroup.Item>Morbi leo risus</ListGroup.Item><ListGroup.Item>Porta ac consectetur ac</ListGroup.Item><ListGroup.Item>Vestibulum at eros</ListGroup.Item></ListGroup>);}export default DefaultExample;
活动项目
设置 active
属性以指示列表组当前的活动选择。
import ListGroup from 'react-bootstrap/ListGroup';function ActiveExample() {return (<ListGroup as="ul"><ListGroup.Item as="li" active>Cras justo odio</ListGroup.Item><ListGroup.Item as="li">Dapibus ac facilisis in</ListGroup.Item><ListGroup.Item as="li" disabled>Morbi leo risus</ListGroup.Item><ListGroup.Item as="li">Porta ac consectetur ac</ListGroup.Item></ListGroup>);}export default ActiveExample;
禁用项目
设置 disabled
属性以阻止对 <ListGroup.Item>
的操作。对于不能自然禁用的元素(如锚点),会添加 onClick
处理程序,这些处理程序会调用 preventDefault
来模拟禁用行为。
import ListGroup from 'react-bootstrap/ListGroup';function DisabledExample() {return (<ListGroup><ListGroup.Item disabled>Cras justo odio</ListGroup.Item><ListGroup.Item>Dapibus ac facilisis in</ListGroup.Item><ListGroup.Item>Morbi leo risus</ListGroup.Item><ListGroup.Item>Porta ac consectetur ac</ListGroup.Item></ListGroup>);}export default DisabledExample;
可操作项目
切换 action
属性以创建具有禁用、悬停和活动样式的可操作列表组项目。列表项操作默认情况下将呈现一个 <button>
或 <a>
(取决于是否存在 href
),但可以通过设置 as
属性来覆盖,就像往常一样。
列表项 actions
与普通项目不同,以确保不会将点击或轻触操作应用于非交互式项目。
import ListGroup from 'react-bootstrap/ListGroup';function LinkedExample() {const alertClicked = () => {alert('You clicked the third ListGroupItem');};return (<ListGroup defaultActiveKey="#link1"><ListGroup.Item action href="#link1">Link 1</ListGroup.Item><ListGroup.Item action href="#link2" disabled>Link 2</ListGroup.Item><ListGroup.Item action onClick={alertClicked}>This one is a button</ListGroup.Item></ListGroup>);}export default LinkedExample;
对齐
添加 flush
变体以删除外部边框和圆角,以便在父容器中以边缘对边缘的方式呈现列表组项目 例如 Card
。
import ListGroup from 'react-bootstrap/ListGroup';function FlushExample() {return (<ListGroup variant="flush"><ListGroup.Item>Cras justo odio</ListGroup.Item><ListGroup.Item>Dapibus ac facilisis in</ListGroup.Item><ListGroup.Item>Morbi leo risus</ListGroup.Item><ListGroup.Item>Porta ac consectetur ac</ListGroup.Item></ListGroup>);}export default FlushExample;
编号
添加 numbered
属性以选择编号列表组项目。数字是通过 CSS 生成的(而不是 <ol>
的默认浏览器样式),以便更好地放置在列表组项目中,并允许更好地自定义。
import ListGroup from 'react-bootstrap/ListGroup';function NumberedExample() {return (<ListGroup as="ol" numbered><ListGroup.Item as="li">Cras justo odio</ListGroup.Item><ListGroup.Item as="li">Cras justo odio</ListGroup.Item><ListGroup.Item as="li">Cras justo odio</ListGroup.Item></ListGroup>);}export default NumberedExample;
这些与自定义内容也很好地配合使用。
import Badge from 'react-bootstrap/Badge';import ListGroup from 'react-bootstrap/ListGroup';function DefaultExample() {return (<ListGroup as="ol" numbered><ListGroup.Itemas="li"className="d-flex justify-content-between align-items-start"><div className="ms-2 me-auto"><div className="fw-bold">Subheading</div>Cras justo odio</div><Badge bg="primary" pill>14</Badge></ListGroup.Item><ListGroup.Itemas="li"className="d-flex justify-content-between align-items-start"><div className="ms-2 me-auto"><div className="fw-bold">Subheading</div>Cras justo odio</div><Badge bg="primary" pill>14</Badge></ListGroup.Item><ListGroup.Itemas="li"className="d-flex justify-content-between align-items-start"><div className="ms-2 me-auto"><div className="fw-bold">Subheading</div>Cras justo odio</div><Badge bg="primary" pill>14</Badge></ListGroup.Item></ListGroup>);}export default DefaultExample;
水平
使用 horizontal
属性使 ListGroup 水平呈现。目前,水平列表组不能与对齐列表组组合。
import ListGroup from 'react-bootstrap/ListGroup';function HorizontalExample() {return (<ListGroup horizontal><ListGroup.Item>This</ListGroup.Item><ListGroup.Item>ListGroup</ListGroup.Item><ListGroup.Item>renders</ListGroup.Item><ListGroup.Item>horizontally!</ListGroup.Item></ListGroup>);}export default HorizontalExample;
horizontal
有响应式变体:将其设置为 {sm|md|lg|xl|xxl}
使列表组从该断点的 min-width
开始水平呈现。
import ListGroup from 'react-bootstrap/ListGroup';function HorizontalResponsiveExample() {return (<>{['sm', 'md', 'lg', 'xl', 'xxl'].map((breakpoint) => (<ListGroup key={breakpoint} horizontal={breakpoint} className="my-2"><ListGroup.Item>This ListGroup</ListGroup.Item><ListGroup.Item>renders horizontally</ListGroup.Item><ListGroup.Item>on {breakpoint}</ListGroup.Item><ListGroup.Item>and above!</ListGroup.Item></ListGroup>))}</>);}export default HorizontalResponsiveExample;
上下文类
在 <ListGroup.Item>
上使用上下文变体,以使用状态背景和颜色对其进行样式设置。
import ListGroup from 'react-bootstrap/ListGroup';function StyleExample() {return (<ListGroup><ListGroup.Item>No style</ListGroup.Item><ListGroup.Item variant="primary">Primary</ListGroup.Item><ListGroup.Item variant="secondary">Secondary</ListGroup.Item><ListGroup.Item variant="success">Success</ListGroup.Item><ListGroup.Item variant="danger">Danger</ListGroup.Item><ListGroup.Item variant="warning">Warning</ListGroup.Item><ListGroup.Item variant="info">Info</ListGroup.Item><ListGroup.Item variant="light">Light</ListGroup.Item><ListGroup.Item variant="dark">Dark</ListGroup.Item></ListGroup>);}export default StyleExample;
当与 action
配合使用时,会应用额外的悬停和活动样式。
import ListGroup from 'react-bootstrap/ListGroup';function StyleActionsExample() {return (<ListGroup><ListGroup.Item>No style</ListGroup.Item><ListGroup.Item variant="primary">Primary</ListGroup.Item><ListGroup.Item action variant="secondary">Secondary</ListGroup.Item><ListGroup.Item action variant="success">Success</ListGroup.Item><ListGroup.Item action variant="danger">Danger</ListGroup.Item><ListGroup.Item action variant="warning">Warning</ListGroup.Item><ListGroup.Item action variant="info">Info</ListGroup.Item><ListGroup.Item action variant="light">Light</ListGroup.Item><ListGroup.Item action variant="dark">Dark</ListGroup.Item></ListGroup>);}export default StyleActionsExample;
使用颜色来添加含义只提供视觉指示,不会传达给辅助技术用户 - 例如屏幕阅读器。确保通过颜色表示的信息要么从内容本身显而易见(例如可见文本),要么通过其他方式包含,例如使用 .visually-hidden
类隐藏的附加文本。
选项卡式界面
您还可以使用 [选项卡][tabs] 组件使用 <ListGroup>
组件创建符合 ARIA 规范的可选项卡式界面。将 <Nav>
组件替换为列表组,您就可以开始了。
import Col from 'react-bootstrap/Col';import ListGroup from 'react-bootstrap/ListGroup';import Row from 'react-bootstrap/Row';import Tab from 'react-bootstrap/Tab';function TabsExample() {return (<Tab.Container id="list-group-tabs-example" defaultActiveKey="#link1"><Row><Col sm={4}><ListGroup><ListGroup.Item action href="#link1">Link 1</ListGroup.Item><ListGroup.Item action href="#link2">Link 2</ListGroup.Item></ListGroup></Col><Col sm={8}><Tab.Content><Tab.Pane eventKey="#link1">Tab pane content 1</Tab.Pane><Tab.Pane eventKey="#link2">Tab pane content 2</Tab.Pane></Tab.Content></Col></Row></Tab.Container>);}export default TabsExample;