当前位置: 首页 > 面试题库 >

边框半径是否应该剪切内容?

明越
2023-03-14
问题内容

容器装好后,不应该将容器中的物品切掉border-radius吗?

示例HTML和CSS:

.progressbar { height: 5px; width: 100px; border-radius: 5px; }

.buffer { width: 25px; height: 5px; background: #999999; }


<div class="progressbar">

    <div class="buffer"></div>

</div>

如您所见,我border- radius在容器(.progressbar)上使用,但内容(.buffer)在容器的“外部”。我在Google
Chrome上看到了这个。

这是预期的行为吗?

PS这不是关于如何修复它,而是关于它是否应该像这样工作。


问题答案:

这是预期的行为吗?

是的,听起来确实很疯狂。原因如下:

默认overflow<div>元素(和大多数其他的东西)是visible和规范说这约overflow:visible

visible
此值指示未裁剪内容,即,内容可能在块框外呈现。

反过来,“背景和边框”模块中的第5.3节“边角修剪”表示:

框的背景而不是其边框图像被裁剪为适当的曲线(由“ background-clip”确定)。
修剪到边框或填充边缘的其他效果(例如“可见”以外的“溢出”)也必须修剪到曲线。
替换元素的内容始终会修剪到内容边缘曲线。同样,边界边缘曲线之外的区域也不接受代表该元素的鼠标事件。

我已经特别强调了一句提到,overflow盒子的值必须大于其他的东西visible(这意味着autohiddenscroll等),以便边角裁剪其子。

如果该框被定义为具有可见的溢出(就像我说的是大多数视觉元素的默认值),则该内容根本不应被剪切。这就是为什么的直角.buffer超过的圆角的原因.progressbar

因此,最简单的.buffer裁剪内部.progressbar圆角的方法是为其添加overflow:hidden样式.progressbar



 类似资料:
  • 问题内容: 我有以下在Fi​​refox,Chrome和Safari中可用的工具。但不是在IE9中。它在td的左上和右上应用圆角。我想念什么? 问题答案: 您是否已将其放在HTML文档的顶部(在标记上方) IE9要求此网站显示新的HTML5 / CSS3内容 编辑:或许多其他Doctype(XHTML等,但这是最短和最容易记住的)

  • 问题内容: 我在弄清楚为什么在使用chrome而不是firefox或ie9时为什么#screen元素的边框半径消失了? 对于每个浏览器,我都有所有不同的前缀以及标准的border-radius: 保存图片的上方内容框称为#screen 屏幕css的副本粘贴: 是因为chrome无法正确处理图像的“裁剪”吗?我认为这只是一个问题,当您在圆角容器中包含实际标签时,而不是通过css将img称为背景图像时

  • 问题内容: 我有一个div,其border-radius设置为某个值(比方说10px),还有一个嵌套的div,它是其父级的完整宽度和高度。 我注意到,尽管溢出被设置为隐藏,但父母并没有将孩子夹在圆角上。另一个stackoverflow线程指示此行为是“设计使然”: …我不禁注意到“拐角裁剪”部分中的以下描述: 剪切到边框或填充边缘的其他效果(例如“可见”以外的“溢出”)也必须剪切到曲线。替换元素的

  • 问题内容: 在具有背景的元素上(图像或纯色并不重要): 我正在尝试使用SVG应用剪切路径。为了实现这一点,我将SVG内联到如下相同的元素中: 您可以运行下面的代码片段或检查JSFiddle。您可以看到原始的SVG图像(黑色)被插入行内,底部有弯曲,并且反应灵敏。相比之下,红色矩形显示的是与应用(或未应用)相同的图像。 我猜我误解了一个或一些属性,尽管在这里找不到确切的错误。任何帮助,将不胜感激。

  • 我想创建一个透明的圆形按钮,点击它应该有条带边框。我想用HTML、CSS或者必要的java脚本来实现这一点。 以下是一个示例:https://jsfiddle.net/chrichrichri/a9dpg582/38/ 结合: 到目前为止,我在Firefox中对其进行了测试-边框图像考虑了边框半径,但始终存在边框颜色覆盖-如果我有50%的透明度,我会看到条带和选定的颜色-但我只想要条带…如果我使用

  • 我用以下超文本标记语言制作了页脚: 当我把它设置为固定时,一切都很完美。但是当我把页脚设置为不固定时,它不在页面底部(浮动),并且有边框半径。如何将它设置为页面底部(不固定)并删除边框半径? 任何指导都将非常感激。