【发布时间】:2018-09-11 21:11:56
【问题描述】:
如何使用 CSS-in-JS 实现绝对居中?当我使用以下代码时,我的组件会在屏幕上移动。我猜翻译被应用了很多次而不是一次。发生了什么,如何在不使用库的情况下修复它?
render() {
return (<ComponentASD
style={{
position: 'absolute', left: '50%', top: '50%',
transform: 'translate(-50%, -50%)'
}} />);
}
【问题讨论】:
-
你的组件父级的
position属性是什么? -
需要查看组件及其正在渲染的父组件以帮助您。如果组件被分段或包装在非 DOM 元素中,则并非所有组件都可以将样式 1 映射到 1。绝对定位的元素也将流向具有
relative位置的第一个父元素。 -
父级位于
relative。这是一个普通的div。渲染的组件是 MUI CircularProgress - material-ui.com/demos/progress。 @mattdevio 提出了一个很好的观点,即它没有被包裹在 DOM 元素中,所以我将CircularProgress包裹在一个 div 中,并将绝对样式应用于 div,这很有效! -
使 div 居中是在 CSS 中完成的,而不是在 React 中。所以,这个问题就变成了“如何在 CSS 中居中元素”。 What React Does (and Doesn't Do)
标签: javascript css reactjs