use*_*173 6 html css reactjs material-design
我正在使用React Material UI中的响应式抽屉([Documentation] [1])
我正在尝试改变它,以便抽屉的高度始终为100%.为此,我尝试更改当前设置为430的根类的高度.但是,当我将其设置为百分比时,它只是默认为可能的最小高度.
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { withStyles } from 'material-ui/styles';
import Drawer from 'material-ui/Drawer';
import AppBar from 'material-ui/AppBar';
import Toolbar from 'material-ui/Toolbar';
import List from 'material-ui/List';
import { MenuItem } from 'material-ui/Menu';
import TextField from 'material-ui/TextField';
import Typography from 'material-ui/Typography';
import Divider from 'material-ui/Divider';
import { mailFolderListItems, otherMailFolderListItems } from './tileData';
const drawerWidth = 240;
const styles = theme => ({
root: {
width: '100%',
height: 430,
marginTop: theme.spacing.unit * 3,
zIndex: 1,
overflow: 'hidden',
},
appFrame: {
position: 'relative',
display: 'flex',
width: '100%',
height: '100%',
},
appBar: {
position: 'absolute',
width: `calc(100% - ${drawerWidth}px)`,
},
'appBar-left': {
marginLeft: drawerWidth,
},
'appBar-right': {
marginRight: drawerWidth,
},
drawerPaper: {
position: 'relative',
height: '100%',
width: drawerWidth,
},
drawerHeader: theme.mixins.toolbar,
content: {
backgroundColor: theme.palette.background.default,
width: '100%',
padding: theme.spacing.unit * 3,
height: 'calc(100% - 56px)',
marginTop: 56,
[theme.breakpoints.up('sm')]: {
height: 'calc(100% - 64px)',
marginTop: 64,
},
},
});
class PermanentDrawer extends React.Component {
state = {
anchor: 'left',
};
handleChange = event => {
this.setState({
anchor: event.target.value,
});
};
render() {
const { classes } = this.props;
const { anchor } = this.state;
const drawer = (
<Drawer
type="permanent"
classes={{
paper: classes.drawerPaper,
}}
anchor={anchor}
>
<div className={classes.drawerHeader} />
<Divider />
<List>{mailFolderListItems}</List>
<Divider />
<List>{otherMailFolderListItems}</List>
</Drawer>
);
let before = null;
let after = null;
if (anchor === 'left') {
before = drawer;
} else {
after = drawer;
}
return (
<div className={classes.root}>
<TextField
id="permanent-anchor"
select
label="Anchor"
value={anchor}
onChange={this.handleChange}
margin="normal"
>
<MenuItem value="left">left</MenuItem>
<MenuItem value="right">right</MenuItem>
</TextField>
<div className={classes.appFrame}>
<AppBar className={classNames(classes.appBar, classes[`appBar-${anchor}`])}>
<Toolbar>
<Typography type="title" color="inherit" noWrap>
Permanent drawer
</Typography>
</Toolbar>
</AppBar>
{before}
<main className={classes.content}>
<Typography type="body1">
{'You think water moves fast? You should see ice.'}
</Typography>
</main>
{after}
</div>
</div>
);
}
}
PermanentDrawer.propTypes = {
classes: PropTypes.object.isRequired,
};
export default withStyles(styles)(PermanentDrawer);
[1]: https://material-ui-next.com/demos/drawers/
Run Code Online (Sandbox Code Playgroud)
Nod*_*ios 10
您可能已经解决了这个问题,但我遇到了同样的问题.我有一种预感,高度问题在#root id之内.所以我将我的根div id更改为另一个(我使用的应用程序)并设置高度如下:
appFrame: {
...
height: '100vh',
}
Run Code Online (Sandbox Code Playgroud)
它起作用了.所以一个疯狂的猜测是他们为#root id定义了一个样式.当我抓住一些时间时,我会试着找出这是否正确
好吧,泰德说的是对的。它必须一直是海龟(或者在这种情况下是 100% 一直向下:P)。我将样式更改为以下样式(请注意,我从响应式抽屉示例开始,看起来您正在使用永久抽屉,但适用相同的原则):
const styles = theme => ({
root: {
width: '100%',
marginTop: 0,
zIndex: 1,
height: '100%',
overflow: 'hidden',
},
appFrame: {
position: 'relative',
display: 'flex',
width: '100%',
height: '100%',
},
content: {
backgroundColor: theme.palette.background.default,
width: '100%',
padding: theme.spacing.unit * 3,
height: 'calc(100% - 56px)',
marginTop: 56,
[theme.breakpoints.up('sm')]: {
height: 'calc(100% - 64px)',
marginTop: 64,
},
'overflow-x': 'scroll',
},
gridRoot: {
flexGrow: 1,
},
gridPaper: {
padding: theme.spacing.unit * 2,
height: '100%',
},
});
Run Code Online (Sandbox Code Playgroud)
这仍然不起作用 - 对我来说,关键是将我的 html 和 body 高度(以及根目录上方的所有其他父级)更改为 100% 高度(因此我的 react 应用程序呈现的 html、body 和 #app)。这是我的 app.scss:
html {
height: 100%;
}
body {
height: 100%;
margin: 0px;
}
#app {
height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
10434 次 |
| 最近记录: |