如何以百分比设置元素的边框宽度?我尝试了语法
border-width:10%;
但这是行不通的。
我要设置border-width
百分比的原因是我有一个width: 80%;
和元素height: 80%;
,并且希望该元素覆盖整个浏览器窗口,因此我想将所有边框设置为10%。我不是使用两个元素方法来执行此操作的,因为一个元素将放置在另一个元素的后面并充当边框,因为该元素的背景是透明的,而将元素放置在它的后面会影响其透明度。
我知道这可以通过JavaScript来完成,但是如果有可能,我正在寻找仅CSS方法。
正如其他人指出的CSS规范,边框不支持百分比:
'border-top-width',
'border-right-width',
'border-bottom-width',
'border-left-width'
Value: <border-width> | inherit
Initial: medium
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual
Computed value: absolute length; '0' if the border style is 'none' or 'hidden'
正如你可以看到它说
百分比:N / A 。
您可以使用包装器元素模拟百分比边界,您可以在其中进行以下操作:
background-color
为所需的边框颜色padding
百分比(因为它们受支持)background-color
为白色(或任何需要的颜色)这将以某种方式模拟您的百分比边界。这是使用此技术的具有25%宽度侧 边框
的元素的示例。
示例中使用的HTML
.faux-borders {
background-color: #f00;
padding: 1px 25%; /* set padding to simulate border */
}
.content {
background-color: #fff;
}
<div class="faux-borders">
<div class="content">
This is the element to have percentage borders.
</div>
</div>
问题:
您必须意识到,当您的元素具有某些复杂的背景时,这将变得更加复杂……尤其是如果该背景是从祖先DOM层次结构继承而来的。但是,如果您的用户界面足够简单,则可以采用这种方式。
@BoltClock提到了脚本解决方案,您可以在其中以编程方式根据元素大小计算边框宽度。
这是一个使用jQuery非常简单的脚本的示例。
var el = $(".content");
var w = el.width() / 4 | 0; // calculate & trim decimals
el.css("border-width", "1px " + w + "px");
.content { border: 1px solid #f00; }
<div class="content">
This is the element to have percentage borders.
</div>
但是您必须知道,每次 容器大小更改* (即,浏览器窗口调整大小)时,都必须 调整
边框宽度。我使用wrapper元素的第一个解决方法似乎要简单得多,因为它会在这些情况下自动调整宽度。 *
脚本解决方案的积极方面是,它不会遇到我先前的非脚本解决方案中提到的背景问题。
问题内容: 我一直在绞尽脑汁使用以下命令在CSS中创建垂直对齐方式 尽管这似乎适用于这种情况,但令我感到惊讶的是,当我增加或减小基本div的宽度时,垂直对齐方式会对齐。我期望当我设置padding- top属性时,会将填充值作为父容器高度的百分比(在我们的示例中为基数),但是上述50%的值是按宽度。:( 有没有一种方法可以将填充和/或边距设置为高度的百分比,而无需使用JavaScript? 问题答
当前结果:下边框为灰色 所需结果:所有边框均为白色 问题:CSS中的边框颜色设置为白色
问题内容: 我正在使用MongoDB开发地理空间网络应用程序。我在具有不同类别(,等)的集合上有很多多边形,我想知道哪个是某个多边形,但是在某些情况下,邻居的边界碰到了多边形的边界,所以当我查询十字路口,我有2个国家。 我想计算该州与两个国家之间的重叠百分比,以了解哪个是父级。我一直在寻找,但是我没有找到具有这种操作的任何库,并且我做这种算法不是很好。 编辑:添加更多上下文 这是我正在使用的模型
我正在尝试将圆角边框设置为我的,为此,我正在设置一个来形状属性的,问题是它没有效果。 代码: 结果:
问题内容: 在当前的工作中,我需要在容器上产生一个双边框。边框样式:double;做到这一点,但是我的客户希望外部边界更厚,内部边界具有正常的厚度。 除了创建2个div之外,还有1个嵌套在另一个div中,外部div具有更大的厚度,或者通过使用边框图像,有什么方法可以用CSS来实现,而仅使用1 div?指定边框样式:double; 并且仍然能够使外边界更厚。 问题答案: 轮廓包含在CSS3规范中,并
问题内容: Test A long string blah blah blah 上面的方法不起作用。如何使用百分比设置表格单元格的最大宽度? 问题答案: 根据CSS 2.1规范中max-width的定义,“’min-width’和’max-width’对表,内联表,表单元格,表列和列组的影响是不确定的。” 因此,您不能直接在td元素上设置最大宽度。 如果只希望第二列最多占用67%,则可以将宽度(对