CSS边框不到1px

Wiz*_*ard 97 css border

可能重复:
HTML:子像素边框

border:1px太大了 我希望它有一半的尺寸,但我不知道该怎么做.border: 0.5px solid;不起作用.我知道有一个解决方案border:1px,但使用CSS会更快.

Yan*_*hon 142

像素是用于渲染某物的最小单位值.但是你可以通过修改颜色来欺骗厚度.(眼睛也只能看到一定的分辨率.)

这是一个证明这一点的测试:

div { border-color: blue; border-style: solid; margin: 2px; }

div.b1 { border-width: 1px; }
div.b2 { border-width: 0.1em; }
div.b3 { border-width: 0.01em; }
div.b4 { border-width: 1px; border-color: rgb(160,160,255); }
Run Code Online (Sandbox Code Playgroud)
<div class="b1">Some text</div>
<div class="b2">Some text</div>
<div class="b3">Some text</div>
<div class="b4">Some text</div>
Run Code Online (Sandbox Code Playgroud)

产量

在此输入图像描述

这给人一种错觉,即最后DIV一个边框宽度较小,因为蓝色边框与白色背景混合得更多.


编辑:替代解决方案

Alpha值也可用于模拟相同的效果,而无需计算和操纵RGB值.

.container {
  border-style: solid;
  border-width: 1px;
  
  margin-bottom: 10px;
}

.border-100 { border-color: rgba(0,0,255,1); }
.border-75 { border-color: rgba(0,0,255,0.75); }
.border-50 { border-color: rgba(0,0,255,0.5); }
.border-25 { border-color: rgba(0,0,255,0.25); }
Run Code Online (Sandbox Code Playgroud)
<div class="container border-100">Container 1 (alpha = 1)</div>
<div class="container border-75">Container 2 (alpha = 0.75)</div>
<div class="container border-50">Container 3 (alpha = 0.5)</div>
<div class="container border-25">Container 4 (alpha = 0.25)</div>
Run Code Online (Sandbox Code Playgroud)

  • 对于任何试图这样做的人,但不知道如何混合你的颜色,我发现这个页面真的很有帮助:http://meyerweb.com/eric/tools/color-blend/确保你选择超过1个中点,并且选择你最喜欢的. (14认同)
  • @Yanik 如今大多数用户都是移动用户,而且大多数移动设备当然都是高分辨率的。无法指定“0.5px”是令人沮丧的,在问题得到解决之前,这个问题肯定会被更多人访问。 (3认同)

小智 5

在屏幕上画一条比一个像素还细的线是不可能的。尝试为边框使用更微妙的颜色。

  • 使用对比度更高的边框会给人一种更厚的印象,而与背景更融合(褪色)的颜色会给人一种轻盈(更薄)的印象 (6认同)
  • 在 hidpi 显示器上情况并非如此。1px 可以转换为 2 或 3 个物理设备像素。 (2认同)