lengua
Soy un novato en Material UI, ahora mi ícono y texto no están alineados:
Mis resultados deseados:
mi código es:
<div style={{
display: 'inline-flex',
VerticalAlign: 'text-bottom',
BoxSizing: 'inherit',
textAlign: 'center',
AlignItems: 'center'
}}>
<LinkIcon className={classes.linkIcon} />
revolve
</div>
Probé cuadrícula y fila, pero no funcionó. ¿Alguien puede ayudarme?
pedro moisés
¡Esto funciona perfectamente!
<div style={{
display: 'flex',
alignItems: 'center',
flexWrap: 'wrap',
}}>
<LinkIcon />
<span>revolve</span>
</div>
-
Usé el estilo pero los apliqué a un solo
Typography
así que no necesitaba elp
elemento. Funciona de maravilla conv4.0.2
.– hsimah
5 de junio de 2019 a las 23:42
tinmarfrutos
Necesitas usar Grid. Algo así debería funcionar:
<Grid container direction="row" alignItems="center">
<Grid item>
<LinkIcon className={classes.linkIcon} />
</Grid>
<Grid item>
revolve
</Grid>
</Grid>
-
Perfecto, si el texto es más largo que la fila de forma predeterminada, la cuadrícula comienza a ajustarse, lo que significa que el texto estará debajo del ícono, para evitar esto, puede agregar
wrap="nowrap"
– Shikyō
10 de mayo de 2019 a las 8:48
-
👍🏾 Se siente más como la forma ‘MUI’, usando sus componentes. POR CIERTO,
direction="row"
no debería ser necesario. Bastante seguro de que es el predeterminado.– CódigoFinity
8 mayo 2022 a las 20:38
Esto se puede lograr fácilmente en MUI v5 usando un Stack
y establecer alignItems
apoyar a center
:
import Stack from '@mui/material/Stack';
import Typography from '@mui/material/Typography';
import AddCircleIcon from '@mui/icons-material/AddCircle';
<Stack direction="row" alignItems="center" gap={1}>
<AddCircleIcon />
<Typography variant="body1">text</Typography>
</Stack>
Pruebe el siguiente código. Puedes usar variant
según su requerimiento.
const useStyles = makeStyles(theme => ({
wrapIcon: {
verticalAlign: 'middle',
display: 'inline-flex'
}
}));
<Typography variant="subtitle1" className={classes.wrapIcon}>
<LinkIcon className={classes.linkIcon} /> revolve
</Typography>
solución alternativa sencilla
<Grid container direction="row" alignItems="center">
<SearchIcon /> example
</Grid>
-
Estoy confundido por qué esto funciona, ya que el Interfaz de usuario de materiales Los ejemplos siempre tienen un
<Grid item
justo debajo de un<Grid container
pero aquí solo usaste<Grid container
. Mi caso es si agrego<Grid container><Grid item>
elalignItems="center"
no funciona, el ícono aún no está alineado verticalmente, pero con esta solución finalmente funciona. yo tambien encuentro<Grid container item
trabajo también. Dado que Material UI menciona que los elementos secundarios del contenedor son elementos, creo que es canónico tener amboscontainer
yitem
.– Shawn
20/04/2022 a las 19:01
-
Creo que por eso han introducido Stack en V5
– Thomas P1988
21 de abril de 2022 a las 8:28
estilos
const styles = theme => ({
icon: {
position: "relative",
top: theme.spacing.unit,
width: theme.typography.display1.fontSize,
height: theme.typography.display1.fontSize
}
});
JSX
<Typography variant="display1">
<Icon className={this.props.classes.icon}/>Your Text
</Typography>
podrías reemplazar display1
con display3
u otro variante de tipografía en los 3 lugares para elegir el tamaño del texto. El
asegura que su texto no se rompa entre palabras cuando se ajusta.
Para mí, esto puede hacer que se vea así
con display3
y algunos otros estilos agregados para el color.
-
Estoy confundido por qué esto funciona, ya que el Interfaz de usuario de materiales Los ejemplos siempre tienen un
<Grid item
justo debajo de un<Grid container
pero aquí solo usaste<Grid container
. Mi caso es si agrego<Grid container><Grid item>
elalignItems="center"
no funciona, el ícono aún no está alineado verticalmente, pero con esta solución finalmente funciona. yo tambien encuentro<Grid container item
trabajo también. Dado que Material UI menciona que los elementos secundarios del contenedor son elementos, creo que es canónico tener amboscontainer
yitem
.– Shawn
20/04/2022 a las 19:01
-
Creo que por eso han introducido Stack en V5
– Thomas P1988
21 de abril de 2022 a las 8:28
Christos Lytras
Teniendo ListItemIcon
y ListItemText
envuelto dentro de un ListItem
lo mantendrá en una línea y evitará que se rompa:
import ListItem from '@material-ui/core/ListItem';
import ListItemIcon from '@material-ui/core/ListItemIcon';
import ListItemText from '@material-ui/core/ListItemText';
<ListItem >
<ListItemIcon><AccessAlarmIcon color="secondary" /></ListItemIcon>
<ListItemText>Updated 1 hour ago</ListItemText>
</ListItem>
Imagen de demostración:
-
¿Puedes agregar un poco más de contexto con la respuesta?
– Rigin Oommen
16 oct 2019 a las 9:32
-
Por favor, simplemente coloque un enlace a la imagen que estaba tratando de adjuntar y explique por qué.
ListItem
resuelve el problema– CPH Python
16 oct 2019 a las 10:21
-
@Sabareesh, veo que eres nuevo en Stack Overflow, así que te damos la bienvenida a la comunidad. Al responder preguntas, es útil explicar por qué su respuesta funciona. No estoy seguro de cómo el
AccessAlarmIcon
está mágicamente alineado verticalmente, así que explique por qué funciona.– PatS
1 de noviembre de 2019 a las 20:00