gpt4 book ai didi

css - 如何增加 Material UI FormLabel 和 Slider 之间的垂直间距?

转载 作者:行者123 更新时间:2023-11-28 19:25:12 27 4
gpt4 key购买 nike

我正在制作一张 map ,其中的图像叠加层具有可调节的不透明度。这是组件代码:

import React from 'react'
import PropTypes from 'prop-types'
import { MapWithGroundOverlay } from './MapWithGroundOverlay'
import { withStyles } from '@material-ui/core/styles'
import Box from '@material-ui/core/Box'
import FormLabel from '@material-ui/core/FormLabel'
import Slider from '@material-ui/lab/Slider'
import Grid from '@material-ui/core/Grid'
import Paper from '@material-ui/core/Paper'

const styles = theme => ({
root: {
flexGrow: 1,
},
paper: {
padding: theme.spacing(2),
textAlign: 'center',
color: theme.palette.text.secondary,
},
label: {
padding: theme.spacing(3),
}
})

class AdjustableGroundoverlay extends React.PureComponent {
constructor(props, context) {
super(props, context)
this.state = {opacity: 0.5}
this.handleChange = this.handleChange.bind(this);
}

handleChange(event, value) {
this.setState(state => ({
opacity: value
}));
}

render() {
return (
<Grid container className={this.props.classes.root} spacing={2}>
<Grid item xs={12}>
<MapWithGroundOverlay
googleMapURL={`https://maps.googleapis.com/maps/api/js?key=${process.env.REACT_APP_GOOGLE_MAPS_API_KEY}&v=3.exp&libraries=geometry,drawing,places`}
loadingElement={<div style={{ height: `100%` }} />}
containerElement={<div style={{ height: `600px` }} />}
mapElement={<div style={{ height: `100%` }} />}
opacity={this.state.opacity}
/>
</Grid>
<Grid item xs={6}>
<Paper className={this.props.classes.paper}>
<Box flexDirection="column">
<FormLabel className={this.props.classes.label}>Overlay opacity</FormLabel>
<Slider
value={this.state.opacity}
min={0}
max={1}
onChange={this.handleChange}
/>
</Box>
</Paper>
</Grid>
</Grid>
);
}
}

AdjustableGroundoverlay.propTypes = {
classes: PropTypes.object.isRequired,
}

export default withStyles(styles)(AdjustableGroundoverlay)

问题是 FormLabelSlider 靠得太近了。如果我将鼠标悬停在它们上面,我会看到 Slider 的负边距为 -24px:

enter image description here

看起来 FormLabel 的内容因此直接位于它之上:

enter image description here

我试图根据 https://material-ui.com/api/slider/#css 将这些 classes 添加到组件来更改 Slider 的样式:

          <Slider
classes={{container: {marginTop: -12}}}
value={this.state.opacity}
min={0}
max={1}
onChange={this.handleChange}
/>

FormLabelSlider 之间的间距保持不变。知道这个实现有什么问题吗?

更新我在控制台中注意到有这个错误:

enter image description here

我不确定为什么 key “container”无效,因为它在 https://material-ui.com/api/slider/#css 中提到过.

最佳答案

我通过将 slider 放入 Box 并将 mt 设置为 1 来解决此问题:

      <Paper className={this.props.classes.paper}>
<Box flexDirection="column">
<FormLabel className={this.props.classes.label}>Overlay opacity</FormLabel>
<Box mt={1}>
<Slider
value={this.state.opacity}
min={0}
max={1}
onChange={this.handleChange}
/>
</Box>
</Box>
</Paper>

现在标签和 slider 之间的间距更大了:

enter image description here

关于css - 如何增加 Material UI FormLabel 和 Slider 之间的垂直间距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56397772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com