CSS ist nicht unbedingt meine starke Farbe, aber ich habe keine Ahnung, warum ich diese beiden Elemente nicht zum Stapeln bringen kann? Ich setze die Elternposition auf relative
und das Kind auf absolute
Ich gebe dem Kind auch eine höhere z-index
, aber es kann einfach nicht funktionieren. Die <Icon />
ist immer nach rechts versetzt.Kann Elemente nicht zum Stack bekommen
-Code
import React from 'react';
import PropTypes from 'prop-types';
import styled from 'styled-components';
const propTypes = {
iconName: PropTypes.string,
color: PropTypes.string,
};
const defaultProps = {
iconName: 'add_box',
color: '#27B678',
};
const MaterialIcon = props => (
<i className={`material-icons ${props.className}`}>
{props.iconName.replace(/['"]+/g, '')}
</i>
);
const Icon = styled(MaterialIcon)`
color: ${props => props.color.replace(/['"]+/g, '')};
font-size: 36px;
position: absolute;
z-index: 10;
top: 10%;
left: 0;
right: 0;
bottom: 0;
`;
const Divider = props => (
<div
className="mx2"
style={{ position: 'relative', border: '1px solid #ececec' }}
>
<Icon
iconName={props.iconName}
color={props.color}
/>
</div>
);
Divider.propTypes = propTypes;
Divider.defaultProps = defaultProps;
export default Divider;
Wenn das übergeordnete Element eine relative Position hat und absolutes Element für jedes andere Element innerhalb des übergeordneten Elements verwendet, benötigen Sie keinen z-index. Verwenden Sie einfach top, left, right, bottom, um das Element zu positionieren – Keith