css - 如何将 div 屏蔽到其父维度?

标签 css

我有一个圆 Angular 矩形作为背景,想在上面放置另一个形状。叠加的形状应该掩盖下面的形状,最好在边缘没有任何奇怪的颜色。

我试图通过匹配形状尺寸来完成这项工作,但是 border-radius 属性无法与圆形边缘重叠的较暗背景完美对齐。

左边颜色不完美:

body {
	margin: 100px;
}

#outer-shape {
	height: 25px;
	width: 100%;
	border-radius: 12.5px;
	background-color: #191932;
}

#inner-shape {
	height: 25px;
	width: 50%;
	border-radius: 12.5px 0 0 12.5px;
	background-color: #fa6400;
}
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Overlapping Shapes</title>
	</head>
	<body>
		<div id="outer-shape">
			<div id="inner-shape"></div>
		</div>
	</body>
</html>

有没有办法让我的子 div 保持矩形,然后剪裁父 div?重点是隐藏任何落在底层形状边界之外的东西。

是否可以将矩形剪裁到父形状?

body {
	margin: 100px;
}

#outer-shape {
	height: 25px;
	width: 100%;
	border-radius: 12.5px;
	background-color: #191932;
}

#inner-shape {
	height: 25px;
	width: 50%;
	opacity: 25%;
	background-color:rgba(250, 100, 0, 0.75);
}
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Overlapping Shapes</title>
	</head>
	<body>
		<div id="outer-shape">
			<div id="inner-shape"></div>
		</div>
	</body>
</html>

编辑:

也许,我应该提到重点是将设计转换为进度条;这意味着我需要更新叠加形状(橙色)的宽度。应该可以设置从 0% 到 100% 的宽度,同时仍然显示两个形状之间的明显分离(无渐变过渡)。

除此之外,我试图回答我最初的问题:是否可以将矩形剪裁到父形状?

如果仔细观察,形状 1) 和形状 2) 在边缘处略有不同。第一个有一个底层较暗的背景颜色,可以通过观察稍微粗糙的边缘看到。第二张图片只是相同的形状,下面没有任何层。这确实很挑剔,但我无法避免在应用舍入的第一个示例中看到不完美的边缘。

有没有办法保持底层的较暗颜色并具有第二个示例中所示的平滑圆 Angular 边缘?

enter image description here

最佳答案

尝试在父元素中添加overflow: hidden

body {
	margin: 100px;
}

#outer-shape {
	height: 25px;
	width: 100%;
	border-radius: 12.5px;
	background-color: #191932;
	overflow: hidden;
}

#inner-shape {
	height: 25px;
	width: 50%;
	background-color: #fa6400;
}
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<title>Overlapping Shapes</title>
	</head>
	<body>
		<div id="outer-shape">
			<div id="inner-shape"></div>
		</div>
	</body>
</html>

关于css - 如何将 div 屏蔽到其父维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62020973/

相关文章:

html - iOS Safari 上主页上的文字颜色不同

javascript - 如何隐藏基于一系列父元素的 HTML 元素

javascript - 是否可以对 CSS 动画进行排队(示例)?

html - IE9 不渲染元素的边框

html - 更改图像的边距值未生效

html - 单击提交按钮移动它的位置

css - Joomla:重新启动列表项编号

html - 我的带有 display flex 属性的 css div 在换行时如何右对齐?

html - 列出样式 css,在列表中获取 a) 而不是 a

jquery - slider 生成的填充