如何将borderTop添加到React Material UI表?

时间:2018-05-16 14:38:17

标签: reactjs material-design material-ui

enter image description here

我想要做的是在上表中添加上边框。

我试过

const styles = theme => {
    root : { borderTopWidth: 1, borderColor: 'red'}
}

...

class TableComponent ...

{ classes } = this.props; 

<Table className={classes.root}>
</Table

export default withStyles(styles)(TableComponent)

我认为这不是语法问题,因为其他选项如background: 'red' working properly.也许我错过了一些东西。如何在此表中实现topBorder?

2 个答案:

答案 0 :(得分:3)

您忘了定义borderStyle属性

const styles = theme => {
    root : { borderTopWidth: 1, borderColor: 'red',borderStyle: 'solid'} // or borderTop: '1px solid red'
}

...

class TableComponent ...

{ classes } = this.props; 

<Table className={classes.root}>
</Table

export default withStyles(styles)(TableComponent)

或者你可以添加内联样式,如

<Table style={{borderTop: '1px solid red'}}>
</Table>

答案 1 :(得分:0)

@Shrroy已经回答了这个问题。但是我在如何仅添加Right Border而不是在单元格中添加任何其他边界的过程中苦苦挣扎。我将在这里分享它,假设它可能会对其他人有所帮助(@Shrroy的回答有所帮助)。同样,您可以使用顶部边框或任何其他组合(例如,仅右边框和左边框)。

如何将边框仅添加到单元格的一侧。

const styles = theme => {
    tableRightBorder : { borderWidth: 0, borderWidth: 1, borderColor: 'red',borderStyle: 'solid'} // or borderTop: '1px solid red'
}

...

class TableComponent ...

{ classes } = this.props; 

<Table >
    <TableHead>
        <TableRow >
            <TableCell>Column 1</TableCell>
            <TableCell>Column 2</TableCell>
        </TableRow>
    </TableHead>
    <TableBody>
        <TableRow>
            <TableCell className={classes.tableRightBorder}>Cell 1</TableCell>
            <TableCell>Cell 2</TableCell>
        </TableRow>
    </TableBody>
</Table>

export default withStyles(styles)(TableComponent)

它看起来像这样。 enter image description here


有关上图的完整工作组件,请尝试此表

import React from 'react';
import PropTypes from 'prop-types';
import { makeStyles } from '@material-ui/styles';

import {
    Table,
    TableBody,
    TableCell,
    TableHead,
    TableRow,
} from '@material-ui/core';
import { connect } from 'react-redux';

const useStyles = makeStyles(theme => ({
    root: {},
    tableRightBorder: {
        borderWidth: 0,
        borderRightWidth: 1,
        borderColor: 'black',
        borderStyle: 'solid',
    },
}));

const DataTable = props => {
    const classes = useStyles();

    return (
        <Table>
            <TableHead>
                <TableRow>
                    <TableCell>
                        Column 1
                    </TableCell>
                    <TableCell>Column 2</TableCell>
                </TableRow>
            </TableHead>
            <TableBody>
                <TableRow>
                    <TableCell className={classes.tableRightBorder}>
                        Cell 1
                    </TableCell>
                    <TableCell>Cell 2</TableCell>
                </TableRow>
            </TableBody>
        </Table>
    );
};

DataTable.propTypes = {
    className: PropTypes.string,
};

function mapStateToProps() {}

export default connect(mapStateToProps, {})(DataTable);