使用以下HTML,我需要:
确保target div
(粉红色)的wrapper-target
边框与红色边框div 相邻。
必须在任何边界半径值上工作。
考虑到:
box-sizing: border-box;
但也可以重置为默认值。border-radius
属性target
。*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
<div id="wrapper-target" style="position:absolute;top:100px;left:100px;width:250px;height:250px;border-radius:50px;border:25px solid red;">
<div id="target" style="position:relative;width:100%;height:100%;background-color:plum;border-radius:inherit">
</div>
</div>
笔记:
问题的第1部分:( 孩子在原始演示中成为一轮)
问题是由于box-sizing: border- box
。当设定,在限定的高度,箱(250×250像素)的宽度被认为是包括的宽度的border
和padding
。因此,元素的实际内容区域仅为200px
x 200px(水平和垂直边框不包括50px)。
因此,子级div
的大小仅为200px x 200px( 可以在Dev工具中验证 )。当border-radius
of
100px
是从父项继承而来时,由于其尺寸的一半,因此变为圆形。
因此,border-radius
如果必须保持形状,则不能为孩子继承。应将其设置为80px
(近似值)。(
起初,我提到过一个76px的值可以更好地工作,并且我试图找出它的原因-请参阅第2部分 。)
*,
*:after,
*:before {
-html" target="_blank">webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
<div id="wrapper-target"
style="position:absolute;
top:100px;left:100px;
width:250px;height:250px;
border-radius:100px;
border:25px solid red;">
<div id="target"
style="position:relative;
width:100%;height:100%;
background-color:plum;
border-radius:76px;">
</div>
</div>
问题的第2部分:( 即使删除了边框框,它也留下了空白)
这是因为指定的border-radius
是外边界的半径,而不是内边界的半径。所述 内圆角半径 被计算为外边界半径减去边框厚度。
根据规格:
填充边缘(内部边界)半径是外部边界半径减去相应的边界厚度。
因此,孩子的border-radius
需要等于父母的 内边界半径 。也就是说,孩子的边框border- radius
应该是75px
(100px-25px的边框厚度)。
这也就是为什么border-radius
76px的a 比前面提到的80px更好的原因。76px比80px更接近75px :)
不更改目标边界半径的解决方案:
如果border-radius: inherit
不能更改子对象(目标),则唯一的选择是使子对象与父对象具有相同的尺寸(使用calc
),放置子对象,然后剪辑父对象中的溢出。
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
<div id="wrapper-target" style="position:absolute;
top:100px;left:100px;
width:250px;height:250px;
border-radius:100px;
border:25px solid red;
overflow: hidden;">
<div id="target" style="position:relative;
width:calc(100% + 50px);height: calc(100% + 50px);
top: -25px; left: -25px;
background-color:plum;
border-radius:inherit;">
</div>
</div>
问题内容: 我在弄清楚为什么在使用chrome而不是firefox或ie9时为什么#screen元素的边框半径消失了? 对于每个浏览器,我都有所有不同的前缀以及标准的border-radius: 保存图片的上方内容框称为#screen 屏幕css的副本粘贴: 是因为chrome无法正确处理图像的“裁剪”吗?我认为这只是一个问题,当您在圆角容器中包含实际标签时,而不是通过css将img称为背景图像时
问题内容: 我有以下在Firefox,Chrome和Safari中可用的工具。但不是在IE9中。它在td的左上和右上应用圆角。我想念什么? 问题答案: 您是否已将其放在HTML文档的顶部(在标记上方) IE9要求此网站显示新的HTML5 / CSS3内容 编辑:或许多其他Doctype(XHTML等,但这是最短和最容易记住的)
问题内容: jQuery中 是否有办法为Webkit和Mozilla浏览器中的css3 border-radius 属性设置动画? 我还没有找到可以做到的插件。 问题答案: 我本来希望像… …会工作。但是,我错了:Webkit允许您通过 设置 所有四个角的值,但不允许您重新读取它- 因此,使用上面的代码,动画将始终从0开始而不是从10开始。IE具有相同的功能问题。Firefox 将 让您将其读回,
问题内容: 我对CSS边框有一个快速的问题。 我需要创建一个单色插入边框。这是我正在使用的CSS: 不幸的是,这会创建3D脊状边框(忽略正方形和深色说明框) 有任何想法吗? 问题答案: 您可以使用,可能是: 这样的好处是它将覆盖的背景图像,但是当然会模糊(正如您希望从属性中看到的那样)。要建立阴影的阴影,您当然可以添加其他阴影: 编辑 因为我意识到,我是个白痴,忘了提供简单的解决方案 首先 ,它是
问题内容: 我正在尝试使用CSS创建一个圆, …只有一个div: 并仅使用CSS定义。不允许使用SVG,WebGL,DirectX等。 我尝试绘制一个完整的圆,然后将另一个圆与另一个圆淡化div,它确实起作用,但是我正在寻找一种更优雅的选择。 问题答案: 您可以使用border-top-left-radius和border-top-right- radius属性根据框的高度(和添加的边框)在框上四
问题内容: 我正在尝试为HTML中的div元素添加边框。下面是我的代码。 由于某些原因,边框不会显示。我在这里看过一个类似的问题,但我不知道为什么边框没有出现。有什么建议吗? 注意:此代码段是HTML页面的一部分。可根据要求提供其他代码 问题答案: 默认值是。您需要为边框设置不同的值。