Html 即使Flex shirnk设置为0,宽度收缩时Flex项目也会消失
我正在构建一个ReactJS网格组件,它允许我调整其宽度。通过单击组件的Html 即使Flex shirnk设置为0,宽度收缩时Flex项目也会消失,html,css,reactjs,flexbox,Html,Css,Reactjs,Flexbox,我正在构建一个ReactJS网格组件,它允许我调整其宽度。通过单击组件的夹点div并向左或向右拖动,可以调整大小。我的代码: class Cell extends Component { handleGrip = event => { if (this.props.onGrip) this.props.onGrip(event); }; render() { let gripComponent = ( <div onMous
夹点
div并向左或向右拖动,可以调整大小。我的代码:
class Cell extends Component {
handleGrip = event => {
if (this.props.onGrip) this.props.onGrip(event);
};
render() {
let gripComponent = (
<div
onMouseDown={this.handleGrip}
className="cell-grip"
/>
);
let width = this.props.width;
return (
<div
className={"cell-container"}
style={{ width: width }}
>
<div className="cell-content">{this.props.children}</div>
{gripComponent}
</div>
);
}
}
export default Cell;
(此处未显示完整的widht计算和事件处理)
除了一件事,一切都很好。夹点
组件在位于其内容右侧的flexbox中渲染。当宽度变小时,夹点
不会被渲染,因此我无法再选择它。如果单元格太小,这会导致我无法调整单元格大小,因为没有显示要选择的夹点。检查之前和之后的图像:
之前:
调整大小后:
当单元格宽度小于内容宽度(单元格内容
)时,夹点
将消失(第一个弹性项不显示)
如何防止这种情况发生,并保证夹点将显示在任何宽度上?您是否能够在JSFIDLE/codepen中重现该问题?这里的答案有用吗?
.cell-container {
width: 100%;
border: 1px solid $ux-theme-color-border;
margin: 0 -1px 0 0;
background-color: $ux-theme-color-white;
display: flex;
flex-direction: row;
}
.cell-content {
flex-shrink: 1;
width: 100%;
padding: 5px;
font-size: 12px;
}
.cell-grip {
flex-shrink: 0;
width: 5px;
min-width: 5px;
cursor: ew-resize;
background-color: $ux-theme-color-border;
}