ν μ΄λΈ μ΄μ λλΉλ₯Ό μ€μ ν μ μμ΅λκΉ?
+1
μ΄κ²μ λν΄ νΉλ³ν κ²μ μμ΅λλ€.
const colWidth {
width: '2rem'
};
<TableRowColumn style={ colWidth }>
...
</TableRowColumn>
<TableRowColumn style={{ width: 100 }}>
TableHeaderColumn
λ무 μ μλνμ§ μμ΅λλ€.
μ½ν μΈ λ₯Ό κΈ°λ°μΌλ‘ colμ λλΉλ₯Ό λμ μΌλ‘ ν λΉνλ λ°©λ²μ΄ μμ΅λκΉ?
λ΄ λ°λλΌ HTML ν μ΄λΈμμ μ΄ λλΉλ λ΄μ©μ λ°λΌ μλμΌλ‘ μ€μ λ©λλ€. material-uiλ λͺ¨λ μ΄μ λμΌν λλΉλ₯Ό μ μ©νλ κ² κ°μ΅λλ€. λ°λλΌ HTML ν μ΄λΈμ²λΌ μ΄ λλΉλ₯Ό λμ μΌλ‘ μ€μ νλ λ°©λ²μ΄ μμ΅λκΉ?
@sanfilippopablo , <Table>
λ table-layout: 'fixed'
css propμ μ¬μ©νμ¬ μ€λ²νλ‘λ₯Ό μ²λ¦¬νκΈ° μν΄ λͺ¨λ ν
μ΄λΈ μ
μμ white-space: 'nowrap'
μ κ²°ν© λ λλΉκ° λμΌν λͺ¨λ μ΄μ λ§λλλ€.
μμμ μΈκΈ ν 곡백 CSS μνμ μ κ±°νμ§ μλ ν ν
μ΄λΈμ΄ λ΄μ©κ³Ό ν¨κ» 무νν 컀μ§κΈ° λλ¬Έμ table-layout: 'auto'
μμ νκ² μ ν ν μ μμ΅λλ€. μ΄λ κ²νλ©΄
ν€λκ° λ³λμ ν
μ΄λΈ : cry :μ ν¬ν¨λλ―λ‘ λ μ΄μ fixedHeader={true}
propμ μ¬μ©ν μ μμ΅λλ€ .
μΌλΆ μ견μ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.
μ΄μ λλΉλ₯Ό μ€μ νκΈ° μν΄ λ΄κ° ν μΌμ
ν μ΄λΈ λ μ΄μμ : 'μλ'μΌλ‘ μμ νκ² μ ν ν μ μμ΅λλ€. κ·Έλ¬λ©΄ ν μ΄λΈμ΄ λ΄μ©κ³Ό ν¨κ» 무νν 컀μ§κΈ° λλ¬Έμ λλ€.
tableRowColumn λλΉκ° λ΄μ©μ λ°λΌ λ³κ²½ λ λ ν
μ΄λΈ ν€λ λλΉλ₯Ό μ‘°μ νλ κ²μ μ΄λ»μ΅λκΉ?
λλ κ·Έκ²μ μ€μ ν μ μμ΄μ κ·Έ 2κ° μ λ ¬λ©λλ€.
λλ λΉμ μ΄ fixedHeader={true}
νκ³ μ¬μ©μ μ μ λλΉλ₯Ό μ€μ ν μ μκ±°λ ν€λλ₯Ό <TableBody>
μμ 보κ΄ν΄μΌνλ€κ³ μκ°ν©λλ€.
μ’μ, tbodyμ ν€λλ₯Ό λ£λ κ²μ΄ μλν©λλ€! μ΄μ μ¬λ¬ μ€ ν€λ μ΄μ μννλ λ°©λ²μ μμ λ΄μΌν©λλ€. νμ΄ μμ΅λκΉ?
λΉμ μ κ°μ κ²μ λ¬μ±νλ €κ³ μ΄ ? (μλλΌλ©΄μ΄ μΉ μ¬μ΄νΈμμ μ¬λ°λ₯Έ μλ₯Ό μ°Ύμ μμμ κ²μ λλ€.)
TableHeaderColumn
colSpan
TableHeaderColumn
λ° TableRowColumn
λ° TableRow
rowSpan μμ±μΌλ‘ μνλ λͺ¨λ μμ
μ μν ν μ μλ€κ³ μκ°ν©λλ€.
μ΄ν΄κ° μ λΌμ-μ λ«ν μλμ?
TableBodyμ TableHeaderλ₯Ό λ£λ κ²μ λλ₯Ό μν΄ μλνμ§ μμ΅λλ€.
λΏ‘λΏ‘
μ°λ¦¬κ° μ μν κ²μ tableBodyμ tableheader μν μνλ tableRowλ₯Ό λ£λ κ²μ
λλ€.
νμ§λ§ μ§κΈμ μ μλνλ κ²μ²λΌ 보μ
λλ€.
μ΄κ²μ μ§κΈ λ΄ μ½λμμ μ΄λ»κ² 보μ΄λμ§μ λλ€.
<Table fixedHeader={true}>
<TableHeader>
<TableHeaderComponent schema={schema}/>
</TableHeader>
<TableBody displayRowCheckbox={false} showRowHover={true}>
{this.props.data.map((item, index) => (
<TableRowComponent key={index} schema={this.props.schema}
item={item} onRemoveClick={this.handleRemoveItem}
onEditClick={this.handleEditItem}
/>
))}
</TableBody>
</Table>
λ° ν€λ μ΄μ΄ λ³Έλ¬Έ μ΄κ³Ό μ¬λ°λ₯΄κ² μ λ ¬λ©λλ€.
λλ΅ ν΄μ£Όμ
μ κ°μ¬ν©λλ€. TableHeaderComponent λ΄λΆμλ 무μμ΄ μμ΅λκΉ? λλ κ·Έκ²μ΄ μΌλ°μ μΈ TableHeaderμ κ°μ§ μλ€κ³ μκ°νλ€.
```
μ, μ΄μ λλ¬Έμ ν¬μ₯λμμ΅λλ€.
μ΄κ²μ λν μμμ΄ μμ΅λκΉ? μ΄μ΄ λ΄μ©μ λ§κ² μλ μ‘°μ λλλ‘νλ €λ©΄ μ΄λ»κ²ν΄μΌν©λκΉ?
μ΄κ²μ λλ₯Ό μν΄ μλνλ©° μλ ν¬κΈ° μ‘°μ :
<Table style={{tableLayout: 'auto'}}>
@arjan
<Table style={{tableLayout: 'auto'}}>
μ΄κ²μ ν€λμ μν₯μ λ―ΈμΉμ§ μμ΅λλ€.
<Table fixedHeader={false} style={{ tableLayout: 'auto' }}>
μλν©λλ€ (μ½ν
μΈ μ λ°λΌ λμ ν¬κΈ° μ‘°μ ).
width: "auto"
λ₯Ό μΆκ°ν΄μΌνλλ° κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
<Table fixedHeader={false} style={{ width: "auto", tableLayout: "auto" }}>
@nathanmarks , λ€μμ¬μμμ€.
Table
μλ μ½ν
μΈ μ ν¬κΈ°λ₯Ό μλμΌλ‘ μ‘°μ ν μμλ κΈ°λ³Έ μμ±μ΄ μμ΄μΌνλ©° fixedHeader
λΉνμ±ν ν νμκ° μμ΅λλ€. λ λμκ°μ λ΄μ©μ μλ ν¬κΈ° μ‘°μ μ΄ κΈ°λ³Έ λμμ΄μ΄μΌνλ€κ³ λ§ν κ²μ
λλ€.
@devuxer μ£μ‘ν©λλ€. v0.x λΈλμΉμ κΈ°λ₯μ μ¬μ μ μΆκ°νμ§ μμ΅λλ€.
@mbrookes , μλ € μ£Όμ μ κ°μ¬ν©λλ€. v1.xμ ν μ΄λΈμ΄μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ€κ³ λ§μνμλ 건κ°μ?
@devuxer λλ
μΈ κ°μ μ΄μ΄μλ ν
μ΄λΈμ΄ μλλ° μ²« λ²μ§Έ μ΄κ³Ό μΈ λ²μ§Έ μ΄μλ νμ μ μ μμ ν
μ€νΈκ° ν¬ν¨λ©λλ€. λ λ²μ§Έ μ΄μ΄ 곡κ°μ λλΆλΆμ μ°¨μ§νμ¬ μ²« λ²μ§Έ μ΄κ³Ό μΈ λ²μ§Έ μ΄μ΄ κ°κ° ν
μ΄λΈμ μΌμͺ½κ³Ό μ€λ₯Έμͺ½ κ°μ₯μλ¦¬λ‘ λ°λ €λ κΈΈ μνμ΅λλ€. μ΄κ²μ λλ₯Ό μν΄ μΌνμ΅λλ€ (κ°κ²°μ±μ μν΄ className
λμ style
).
<Table style={{ tableLayout: "auto" }} />
<TableRowColumn style={{ width: "10%" }}>{text}</TableRowColumn>
<TableRowColumn style={{ width: "80%" }}>{text}</TableRowColumn>
<TableRowColumn style={{ width: "10%" }}>{text</TableRowColumn>
λ λμ ν΄κ²°μ±
μ μ°Ύμμ΅λλ€. λ°λΌμ λͺ¨λ μ΄μ λλΉκ° λμΌν©λλ€.
μΈ κ°μ μ΄μ΄ μκ³ μ²« λ²μ§Έ μ΄μ΄ μ 체 λλΉμ μ λ°μ μ°¨μ§νκ³ μΈ λ²μ§Έ μ΄μ΄ νμ μ½ 1/3μ΄λμ΄μΌνλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€. μ€κ°μμλ κ²μ΄ κ°μ₯ μμ κ²μ
λλ€.
<TableRowColumn colSpan='3'>twice as big!</TableRowColumn>
<TableRowColumn> I'm small</TableRowColumn>
<TableRowColumn colSpan='2'>I'm in between</TableRowColumn>
μ€μ λ‘ 7 κ°μ μ΄μ΄ μμ§λ§ λ΄ colspanμ ν©κ³λ 20μ λλ€. λ§μ§λ§ μ΄μλ μμ μμ΄μ½ λ§ μκ³ λ€λ₯Έ μ΄μ λλΆλΆμ colspan 3μ λλ€. ν° ν μ€νΈ νλλ colspan 6μ΄κ³ selectfieldμ datepickerλ colspan 2μμ ...
맀λ ₯μ²λΌ μλν©λλ€!
μ΄κ²μ v1.4.3μ λ€μ΄κ°λ κ²μ΄ μ’μ΅λλ€.
const styles = {
narrowCell: {
'width': '150px',
}
};
<Table>
<TableHead>
<TableRow>
<TableCell>Company Name</TableCell>
<TableCell className={classes.narrowCell} numeric>Amount</TableCell>
</TableRow>
</TableHead>
<TableBody>
<TableRow>
<TableCell> name 1 </TableCell>
<TableCell className={classes.narrowCell}> $100 </TableCell>
</TableRow>
</TableBody>
</Table>
λν λ°±λΆμ¨ λλΉλ₯Ό μ 곡 ν μ μμΌλ©° λλ¨Έμ§ μ μ λμΌνκ² νμ₯λ©λλ€.
TableHead νμμ colspan={2}
μ μ¬μ©ν΄μΌνλ κ²½μ°μ΄ μ루μ
μ μ΄λ»κ² μ¬μ©ν μ μμ΅λκΉ?
colspan={2}
μΆκ°νλ©΄ λͺ¨λ μ΄μ λλΉκ° λμΌν©λλ€. μ΄ κ°μ:
const styles = {
narrowCell: {
'width': '150px',
},
miniCell: {
'width': '75px',
},
};
<Table>
<TableHead>
<TableRow>
<TableCell>Company Name</TableCell>
<TableCell className={classes.narrowCell} numeric colspan={2}>Amounts</TableCell>
</TableRow>
</TableHead>
<TableBody>
<TableRow>
<TableCell> name 1 </TableCell>
<TableCell className={classes.miniCell}> $100 </TableCell>
<TableCell className={classes.miniCell}> $100 </TableCell>
</TableRow>
</TableBody>
</Table>
@Bowfish colspan = {2} μ λλΉλ₯Ό λ³κ²½νλ €λ©΄ μ 체 νμ κ±Έμ³μλ ν λλΉλ₯Ό λ³κ²½ν΄λ³΄μμμ€. μμ μ μ κ°λ³μ μΌλ‘ μ‘°μ ν μ μμ΅λλ€.
μ΄ μ€νμΌμ μ μ©νλ©΄ λμμ΄λμμ΅λλ€.
λλ νμ λ€λ₯Έ μ
μ λν΄ λ€λ₯Έ maxWidth
λ₯Ό μμμ§λ§ μΈλΌμΈ μ€νμΌμ μ¬μ©νμ¬ κ° μ΄μμ λμΌν©λλ€.
const styles = (theme) => ({
tableCell: {
whiteSpace: 'nowrap',
overflow: 'hidden',
textOverflow: 'ellipsis',
maxWidth: '40px',
},
});
μμ κ²μ λ μ루μ μ€ μ΄λ κ²λ μλνμ§ μμ΅λλ€. μ΄κ²μ΄ λ¬μ±νκΈ° μ΄λ €μ΄ μ΄μ λ 무μμ λκΉ?
<Table fixedHeader={false} style={{tableLayout: "auto" }}>
<colgroup>
<col width="250px" />
<col />
<col width="40px" />
<col width="40px" />
</colgroup>
<TableHead>
<TableRow>
λ λ²μ§Έ μ½λΌμ νλ μ€μ λλ€
λꡬλ μ§ μ¬μ ν μ΄κ²μ λ¬Έμ κ° μλμ§ νμ€νμ§ μμ§λ§ κ²°κ΅ withStylesλ₯Ό μ¬μ©νκ²λμκ³ μ¬κΈ°μ μμ¬ μ½λκ° μμ΅λλ€.
import {withStyles} from '@material-ui/core/styles';
const styles = theme => ({
cell: {
width:'20%'
},
cellLarge: {
width:'60%'
}
});
<Table >
<TableHead>
<TableRow>
<TableCell className={this.props.classes.cell}>header 1</TableCell>
<TableCell className={this.props.classes.cell}>header 2</TableCell>
<TableCell className={this.props.classes.cellLarge}>header 3</TableCell>
</TableRow>
</TableHead>
<TableBody>
<TableRow>
<TableCell>value 1</TableCell>
<TableCell>value 2</TableCell>
<TableCell>value 3</TableCell>
</TableRow>
</TableBody>
</Table>
export default withStyles(styles)({ComponentName})
μμ κ²μ λ μ루μ μ€ μ΄λ κ²λ μλνμ§ μμ΅λλ€. μ΄κ²μ΄ λ¬μ±νκΈ° μ΄λ €μ΄ μ΄μ λ 무μμ λκΉ?
TableHead
λλ TableBody
λν΄μλ§ width
λ§ μ€μ νκΈ° λλ¬Έμ μ΄λ»κ²ν΄μ μλνμ§ μλμ§ μ μ μμ΅λλ€! μ λλ‘ μλνλ €λ©΄ TableHead
λ° TableBody
TableCell
μ minWidth
λ° maxWidth
λ΄μ μ μν΄μΌν©λλ€. μ¬κΈ°μ μμ κ° μμ΅λλ€.
<Table>
<TableHead>
<TableRow>
<TableCell column='data1' style={{minWidth:100, maxWidth:100}}>{content}</TableCell>
<TableCell column='data2' style={{minWidth:'200px', maxWidth:'200px'}}>{content}</TableCell>
</TableRow>
</TableHead>
<TableBody>
<TableRow>
<TableCell column='data1' style={{minWidth:100, maxWidth:100}}>{content}</TableCell>
<TableCell column='data2' style={{minWidth:200, maxWidth:200}}>{content}</TableCell>
</TableRow>
</TableBody>
</Table>
보μλ€μνΌ μ μμ λ¬Έμμ΄λ‘ μ€νμΌ κ°μ λͺ¨λ μ¬μ©ν μ μμ΅λλ€. νμ§λ§ λ¬Έμμ΄μ κ²½μ° px
μ μν κ²½μ° μλ§ μλ νκ³ , minWidth:'25%'
μ κ°μ λ°±λΆμ¨μ μ¬μ©νλ©΄ μλνμ§ μμ κ²μ
λλ€. μ΄λ―Έ μλν΄ λ³΄μμ΅λλ€.
minWidth
λ° maxWidth
λͺ¨λ μ¬μ©νλ μ΄μ λ 무μμ
λκΉ? width
μλλκΉ? λλ μ΄λ―Έ κ·Έκ²μ μλνκΈ° λλ¬Έμ κ³ μ λλΉμ μ΄μ νμΈνλ €λ©΄, λΉμ μ μ¬μ©ν΄μΌ minWidth
λ° maxWidth
λμ width
. μ΄μ λ₯Ό λͺ°λμ§λ§ width
μ΄μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λμμ΄λμ§ μλ κ² κ°μ΅λλ€.
μ°Έκ³ :μ _Both TableCell
μμ TableHead
λ° TableBody
κ°μ λ°μ΄ν°λ₯Ό ν¬ν¨νλ, κ°μ μ€νμΌμ΄ μμ΄μΌν©λλ€ _!
μ΄ μ½λκ° μ¬λ¬λΆμκ² λμμ΄λκΈ°λ₯Ό λ°λλλ€.
λλ λ§ κ·Έλλ‘ width : 10 %, minWidth : 10 % λ° maxWidth : 10 %λ₯Ό ν
μ΄λΈ ν€λ μλμ κ²μ ν¬ν¨νμ¬ λͺ¨λ λ¨μΌ TableCellμ μ€μ νμ΅λλ€. κ·Έλ° λ€μ κ³μν΄μ <colgroup>..etc
μμλ₯Ό λ§λ€κ³ λμΌν μ€νμΌμ μ μ©νμ΅λλ€. λν Table μμλ₯Ό tableLayout : auto λ° width : autoλ‘ μ€μ νμ΅λλ€. μ΄ μ€λ λμμ λͺ¨λ λ¨μΌ μ루μ
μ μλνκ³ λͺ¨λμ΄ νλμ μ΅μ’
μΆλ ₯μ κ²°ν©νμ΅λλ€. λν ν¬λ‘¬μμ "μμ κ²μ¬"λꡬλ₯Ό μ¬μ©νκ³ ν
μ΄λΈμ λͺ¨λ λ¨μΌ μμλ₯Ό ν΄νΉνμ¬ λλΉ : 10 % μ΅μ λλΉ : 10 % λ° μ΅λ λλΉ : 10 %λ₯Ό μ¬μ©νμ΅λλ€. μ΄κ²μ devtoolsμ React inspecterμλ λ°μλμμ΅λλ€. λ§ κ·Έλλ‘ λͺ¨λ μμκ° "λλΉ 10 %"λ±μΌλ‘ λ³κ²½λ κ²μ 보μ¬μ£Όμμ΅λλ€.
κ²°κ³Ό : μ¬μ ν μ΄ λλΉλ₯Ό μ‘°μ νμ§ μμ΅λλ€.
μ€μ λ‘ λΆκ°λ₯ν κ²μ΄ μ‘΄μ¬νλ€κ³ κ°μ νλ κ²μ΄ μμ νλ€κ³ μκ°ν©λλ€. λ°λ‘μ΄ μ€μ μμ΅λλ€
λλ μ€μ λ‘μ΄ μ€λ λμ μ¬λλ€μ΄ μ μν κ²μ λ°νλ μΌμ λλ΄κ²λμμ΅λλ€ ... λλ autoLayoutμ μ€μ νμ΅λλ€ : λ΄ ν μ΄λΈμ κ³ μ λκ³ μλνκΈ° μμνμ΅λλ€. μ΄ ν λ§λ²μ λλ체 λμΌ
λν λλΉλ₯Ό μ€μ νλ λ° λμ μκ°μ 보λ΄κ³ μμ΅λλ€. μ ν νμΈλ λλΉλ₯Ό μ€μ ν΄μΌνμ΅λλ€ : μ μ ν λλΉλ₯Ό μ μ§νλ €λ©΄ 0.01 %, λ€λ₯Έ κ²μ μλνμ§ μμ΅λλ€.
μ΄κ²μ μ΄μ λ²μ μ κ°ν μκ³ λ°λ₯ κΈλ‘ μ΄λ €μμ κ²ͺλ μ¬λλ€μ μν΄ fixedFooter = {false}λ₯Ό @devenovil μ μ루μ μ μΆκ°νλ©΄ μ μκ² ν¨κ³Όμ μ λλ€.
@nathanmarks μ μ΄λ μ΄κ²μ λ«μ μ΄μ λ₯Ό λͺ
νν ν μ μμ΅λκΉ?
μ΄κ²μ λ§€μ° λ°λ³΅μ μΈ νμ κΈ°λ₯μ΄μ΄μΌν©λλ€.
@pbassut μ΄ λ§μ΅λλ€. μ΄κ²μ ν
μ΄λΈ κ΅¬μ± μμμ λ§€μ° κΈ°λ³Έμ μΈ κΈ°λ₯μ
λλ€. μ
λ°μ΄νΈκ° μμ΅λκΉ?
λλ ꡬννλ κ²μ΄ μ κ·Έλ κ² λ¬Έμ κ°λλμ§ μ€λͺ
...
@devenovil maxWidth
λμ %
λ₯Ό μ¬μ©νλ €λ©΄ λ€μκ³Ό κ°μ΄ width
μ¬μ©ν μ μμ΅λλ€.
<TableCell style={{ width: '35%' }}>
Table Data
</TableCell>
<TableCell>
Another Table Data
</TableCell>
λλ₯Ό μν΄ κ·Έκ²μ ν€λμ μ
μ λν΄μλ§ λλΉλ₯Ό μ€μ νλλ‘ λ
Έλ ₯νμ΅λλ€ : <TableCell width={props.colWidths[index] + '%'}>
, μ΄λ‘ μΈν΄ μ 체 ν
μ΄λΈμ μ΄μ΄ μμλλ‘ μλν©λλ€.
λ°±λΆμ¨λ‘ μ΄ λλΉλ₯Ό μ€μ νκ³ μΌμ’ μ μλνμ§λ§ μ΄λ€ μ΄μ λ‘ λ§¨ μ€λ₯Έμͺ½μ ν¬ν μ΄μ μΆκ°ν©λλ€. μμ κ²μ¬λ₯Ό ν΅ν΄ "TableStubCell"μμλ₯Ό ν μ΄λΈμ μΆκ°νλ κ²μ²λΌ 보μ λλ€. λλ κ·Έκ²μ΄ μ΄λμ μλμ§ μ ν λͺ¨λ₯Έλ€.
λ€λ₯Έ MUI ν μ΄λΈμμ λΉμ·ν λ¬Έμ κ° λ°μνμΌλ©° ν΄κ²° λ°©λ²μ΄ κ·Έλ€μ§ νλ₯νμ§ μμ΅λλ€. λͺ¨λκ°μ΄ λ¬Έμ λ₯Ό μ΄μ΄ κ³ μΉλ©΄ λ©μ§ κ²μ λλ€ ... λΆλͺ ν λ€λ₯Έ μ¬λλ€λμ΄ λ¬Έμ λ‘ μ΄λ €μμ κ²ͺκ³ μμ΅λλ€.
νΈμ§ : TableStubCellμ dx-react-grid-material-ui npm ν¨ν€μ§μμ μμΌλ―λ‘ μκ°λ½μ κ°λ¦¬ν€λ κ²μ λν΄ μ£μ‘ν©λλ€!
λ΄ ν΄κ²°μ± μ
<Table>
<TableHeader>
<TableRow>
<TableCell>
<Box width="200px">
User Fullname
</Box>
</TableCell>
{/* ...rest of the columns */}
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>
April Mintac Pineda
</TableCell>
{/* ...rest of the columns */}
</TableRow>
{/* ...rest of the rows */}
</TableBody>
</Table>
νμ§λ§ μ°λ¦¬κ° ν μ μλ€λ©΄ μ’μ κ²μ λλ€.
<Table>
<TableHeader>
<TableRow>
<TableCell width="200px">
User Fullname
</TableCell>
{/* ...rest of the columns */}
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>
April Mintac Pineda
</TableCell>
{/* ...rest of the columns */}
</TableRow>
{/* ...rest of the rows */}
</TableBody>
</Table>
μ΄κ²μ λ²μ "@material-ui/core": "4.9.0"
μμ μ μκ² ν¨κ³Όμ μ
λλ€.
<TableContainer className={classes.container}>
<Table className={classes.table} stickyHeader size="small">
<TableHead>
<TableRow>
<TableCell width="30%">User Name</TableCell>
<TableCell width="20%">Designation</TableCell>
<TableCell width="10%">Nid</TableCell>
<TableCell width="20%">Email</TableCell>
<TableCell width="10%">Mobile</TableCell>
<TableCell width="10%">Gender</TableCell>
</TableRow>
</TableHead>
<TableBody>
{props.isGridLoading && (
<TableRow>
<TableCell colSpan={6}>
<LoadingGridSpinner open={props.isGridLoading} />
</TableCell>
</TableRow>
)}
{props.profileObj.lists &&
props.profileObj.lists.map(row => (
<TableRow key={row.userProfileId} hover={true}>
<TableCell width="30%">
{row.userName}
</TableCell>
<TableCell width="20%">{row.designation}</TableCell>
<TableCell width="10%">{row.nid}</TableCell>
<TableCell width="20%">{row.email}</TableCell>
<TableCell width="10%">{row.mobile}</TableCell>
<TableCell width="10%">{row.gender}</TableCell>
</TableRow>
))}
</TableBody>
</Table>
@nazrulcsebd λ° @crizantκ° μ¬μ©ν μ κ·Ό λ°©μμ΄ μ μκ²
<TableContainer component={Paper} style={{ marginTop: 10 }}>
<Table style={{ width: 'auto', tableLayout: 'auto' }}>
<TableHead>
<TableRow>
<TableCell>Team Member</TableCell>
<TableCell align="left">Level</TableCell>
<TableCell align="left">Last Login</TableCell>
</TableRow>
</TableHead>
<TableBody>
{ tableArray.map(({ id, name, accessLevel, login }) => (
<TableRow key={id}>
<TableCell component="th" scope="row" style={{ width: '35%' }}>
{name}
</TableCell>
<TableCell align="left">{accessLevel}</TableCell>
<TableCell align="left">{login}</TableCell>
</TableRow>
))
}
</TableBody>
</Table>
</TableContainer>
μ κ²½μ°μλ ν
μ΄λΈ λμ "μ‘μ
"λ²νΌμ λ£μ μμλ κ°μ₯ μμ μ΄μ μνμ΅λλ€. TableHeadμ TableCellμ style={{ width: 1 }}
μ μΆκ°νλ©΄ νΈλ¦μ΄ λ°μνμ΅λλ€.
<TableContainer component={Paper}>
<Table className={classes.table} aria-label="simple table">
<TableHead>
<TableRow>
{header.map((th, i) => (
<TableCell key={i}>{th}</TableCell>
))}
<TableCell style={{ width: 1 }}>actions</TableCell>
</TableRow>
</TableHead>
<TableBody>
{data.map((row, i) => (
<TableRow key={i} hover>
{header.map((h, i) => (
<TableCell key={i} align="left">{row[h]}</TableCell>
))}
<TableCell>
<IconButton aria-label="edit">
<MoreHorizIcon fontSize="small" />
</IconButton>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</TableContainer>
const useStyles = makeStyles(theme => ({
table: {
"& tr:nth-child(2), & td:nth-child(2) {
width: '32px',
}
}
}));
κ·Έλ° λ€μ ν μ΄λΈμ 루νΈμμλ μ€νμΌμ μ¬μ©ν©λλ€.
<Table
....
className={classes.table}
>
μμ§ λ§μ΄ ν μ€νΈνμ§ μμμ΅λλ€ (κ³ μ ν€λ λ±).
μλ₯Ό λ€μ΄ ν μ΄λΈμ λμΌν 12 κ° μ΄ μμ€ν μ μ 곡 ν μ μλ€λ©΄ ν¨μ¬ λ μ’μ κ²μ λλ€.
<TableContainer component={Paper}>
<Table className={classes.table} aria-label="simple table">
<TableHead>
<TableRow>
<TableCell>Dessert (100g serving)</TableCell>
<TableCell align="right">Calories</TableCell>
<TableCell align="right">Fat (g)</TableCell>
<TableCell align="right">Carbs (g)</TableCell>
<TableCell align="right">Protein (g)</TableCell>
</TableRow>
</TableHead>
<TableBody>
{rows.map((row) => (
<TableRow key={row.name}>
<TableCell component="th" scope="row" xs={4}>
{row.name}
</TableCell>
<TableCell align="right" xs={2}>{row.calories}</TableCell>
<TableCell align="right" xs={2}>{row.fat}</TableCell>
<TableCell align="right" xs={2}>{row.carbs}</TableCell>
<TableCell align="right" xs={2}>{row.protein}</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</TableContainer>
μ΄μ΄ λ무 λ§μ κ²½μ° ν μ΄λΈμ x λ°©ν₯μΌλ‘ μ€ν¬λ‘€νλ λ°©λ²μ μλ μ¬λμ΄ μμ΅λκΉ? minWidth = hardcoded (μ μμλ μμ μ΄μλ μ ν©νμ§ μμ)λ₯Ό μ§μ νμ¬μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
μ΅μ λ²μ μμλ fixedHeader={false} style={{width: "auto", tableLayout: "auto"}}
μ΄ λ¬΄μ λ κ² κ°μ΅λλ€.
μ΄λ€ μμ΄λμ΄?
ν
μ΄λΈ λ΄λΆμ λͺ©λ‘ μμλ₯Ό μ¬μ©νκ³ λͺ©λ‘ νλͺ©μ λλΉλ₯Ό μ μνλ ν΄κ²° λ°©λ²μΌλ‘ λλ¬μ΅λλ€.
λ€μκ³Ό κ°μ κ² :
<TableCell>
<ul style={{ width: "150px" }}>
<li>{row.whatever}</li>
<li>{row.whatever1}</li>
<li>{row.whatever2}</li>
</ul>
</TableCell>
2020 λ μλ μ¬μ ν λ¬μ±νκΈ° μ΄λ ΅μ§λ§ κ°μ₯ μ΄μν λΆλΆμ μ΄μ λλΉλ₯Ό μ€μ νλ €κ³ νκ³ , λ€λ₯Έ μ΄μ λλΉλ₯Ό μ μν΄λ μλμΌλ‘ μ‘°μ λλ€λ κ²μ λλ€! 무μμ μ 곡ν©λκΉ? λ§μΉ ν μ΄λΈμ΄ μ 체 ν μ΄λΈμ λλΉκ° 100 %λ₯Ό λμ§ μλλ‘νλ κ²κ³Ό κ°μ΅λλ€. μ΄κ²μ λμκ² νλ μκ°μμ€λλ€. material-uiμ ν μ΄λΈμ μ¬μ©νμ§ μμλ€λ©΄ μ΄κ²μ λ§€μ° μ¬μΈ κ²μ λλ€. material UIκ° μ΄λ ΅κ² λ§λ€μ μκΉμ?
@aprilmintacpineda λ€μ΄ν°λΈ <table>
μμλ₯Ό μ¬μ©ν΄ 보μ
¨μ΅λκΉ?
@oliviertassinari κΈ°μ‘΄ μ½λλ₯Ό λ€μ΄ν°λΈ <table>
μμλ‘ λ³ννμ§ μμμ΅λλ€.
μ΄ μμ λ λͺ¨λ μ΄μ λλΉλ₯Ό μ€μ νμ¬ μλν©λλ€.
https://codesandbox.io/s/fragrant-framework-oy6uz?file=/src/App.js
κ°μ₯ μ μ©ν λκΈ
λ΄ λ°λλΌ HTML ν μ΄λΈμμ μ΄ λλΉλ λ΄μ©μ λ°λΌ μλμΌλ‘ μ€μ λ©λλ€. material-uiλ λͺ¨λ μ΄μ λμΌν λλΉλ₯Ό μ μ©νλ κ² κ°μ΅λλ€. λ°λλΌ HTML ν μ΄λΈμ²λΌ μ΄ λλΉλ₯Ό λμ μΌλ‘ μ€μ νλ λ°©λ²μ΄ μμ΅λκΉ?