【发布时间】:2021-12-09 22:14:19
【问题描述】:
我想根据子内容为父 div 分配高度(这里 SVG 是我的孩子,它有不同的大小数据)。我无法分配固定高度,因为数据是动态的。我尝试给出高度:自动但没有用。我想要在我的情况下是方形框的整个数据应该采用黑色或红色背景。由于我将 SVG 的属性设为 ("overflow", "visible"),因此内容是可见的,但不幸的是背景没有增加。
注意:我的问题是我无法为整个数据提供背景颜色,因为高度没有定义。如果我不为 SVG(child) 提供溢出属性,那么数据(方形框)也会被裁剪为背景的一半。
这是我的代码 sn-p。
React.useEffect(() => {
// calling legend function and passing div id to function
colorLegend("#legend");
}, [dep]);
function colorLegend(legend: string) {
// logic
select(legend)
.append("svg")
.attr("overflow","visible")
.attr("width", 150 + "px");
}
return (
<div style={{position: "absolute",right: 16,top: 10,backgroundColor: "red",borderRadius:"5px",padding:
"10px"}}>
<label style={{ color: "#6F6F6F" }}>{name}</label>
<div id="legend" style={{backgroundColor: "black"}}></div>
</div>
);
【问题讨论】:
-
在询问 HTML 和 CSS 问题时,您应该发布呈现的标记而不是 React 代码。最重要的是,这是一个古老问题的重复,但我没有时间去寻找。
-
@Rob 我同意。当我最近开始在堆栈溢出中提出问题时,我没有意识到这一点,但从下一次开始会记住。虽然它看起来像重复和陈旧,但在 SVG 方面并不那么容易。
-
@Rob 你有时间能帮我解决这个问题吗?这是小提琴链接:jsfiddle.net/shru90/wvph9tx5/15。黑色或红色背景应覆盖整个内容。还要记住不要给出固定的高度,因为 SVG 内容可能会有所不同。
标签: css svg height overflow background-color