编辑CSS“下划线”属性的线宽


117

由于您可以在CSS中加下划线,如下所示:

H4 {text-decoration: underline;}

然后,您又如何编辑绘制的“线”,您轻松地将在线上获得的颜色指定为“颜色:红色”,但是如何编辑线的高度(即粗细)呢?


10
h4 {border-bottom: 10px solid #000;}
普拉纳夫

@PranavKapoor-太好了!太好了,非常感谢。我现在如何将该边框的宽度设置为“ auto”,以使其仅与H4标签毗邻,而不与包含div的整个宽度毗邻?

您可以添加display:inline-block以确保设置了宽度,但是,在内部使用元素<h4>并设置内部元素的样式会更好。在下面检查我的答案。
普拉纳夫

1
@PranavKapoor-再次正确!您就像一个CSS忍者。谢啦。我使用了您在评论中给出的答案,而不是下面发布的答案。我认为这样比较好,因为您不需要将文本包装在另一个<u>标记中。您可以从CSS方面完全控制它。

Answers:


91

这是实现此目的的一种方法:

HTML:

<h4>This is a heading</h4>

<h4><u>This is another heading</u></h4>

CSS:

 u {
    text-decoration: none;
    border-bottom: 10px solid black;
  }​

这是一个示例:http : //jsfiddle.net/AQ9rL/


91
...或者多行文本
CFX

在这种情况下,您必须在换行之前和之后从每行换行,然后在其中加上<span>边框底。但是,这种解决方法在非硬编码的情况下可能会很痛苦。
法比安

@cfx,如果可以的话,您仍然可以使用display: inline;它(但是它将不再是任何种类的块了,尽管可以帮助某人)
jave.web

你让我今天一整天都感觉很好。感谢
Tessaracter

这将导致布局发生变化。边框会迫使其他元素移动,而下划线则不会。
Joel Karunungan

51

最近,我不得不处理FF,该FF的底线太粗了,与FF中的文本相距太远,并找到了一种更好的方法来使用一对盒子阴影来处理它:

.custom-underline{
    box-shadow: inset 0 0px 0 white, inset 0 -1px 0 black
}

第一个阴影位于第二个阴影的顶部,这就是您可以通过更改两个阴影的“ px”值来控制第二个阴影的方法。

加:各种颜色,厚度和下划线位置

减号:不能在非实心背景上使用

在这里,我举了几个例子:http : //jsfiddle.net/xsL6rktx/


4
真干净 关于边框底部的一个优点(对我来说至少是这样)是,“线”的粗细朝着文本方向增长,这使得文本和线之间的间隙变小了。
维克多·黑格奎斯特(VictorHäggqvist)2015年

这样做时,除了底线外,我还有半像素的垂直线。
yeahdixon

似乎在某一点上是一个完美的答案,但是我在Chrome 66的元素的每一侧都得到了非常细的垂直线
小矮个子

代替白色,使用透明将在任何背景下起作用。
Jay Dadhania

这是最好的答案。无需更改HTML和纯CSS解决方案,该解决方案不会像边框那样改变位置。
Joel Karunungan

15

非常容易...在“ span”元素外部具有较小的字体和下划线,在“ font”元素内部具有较大的字体。

<span style="font-size:1em;text-decoration:underline;">
 <span style="font-size:1.5em;">
   Text with big font size and thin underline
 </span>
</span>


8
如果用<font>标签替换过时的span标签,则这将是实际解决该问题的唯一答案。
matteo

11

另一种方法是在要加下划线的元素上使用“:after”(伪元素)。

h2{
  position:relative;
  display:inline-block;
  font-weight:700;
  font-family:arial,sans-serif;
  text-transform:uppercase;
  font-size:3em;
}
h2:after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  right:0;
  margin:auto;
  background:#000;
  height:1px;

}

10

还有text-decoration-thickness,目前的部分CSS文本装饰模块4级。它处于“编辑草稿”阶段- 正在进行中,可能随时更改。从2020年1月开始,仅Firefox和Safari支持它

text-decoration-thickness CSS属性设置装饰线的粗细或宽度,该装饰线用于元素中的文本,例如直通,下划线或上划线。

a {
  text-decoration-thickness: 2px;
}

Codepen:https://codepen.io/mrotaru/pen/yLyLOgr (仅Firefox)


还有text-decoration-color,这是CSS Text Decoration Module Level 3的一部分。这是更成熟的(候选推荐书),并且在大多数主流浏览器中都受支持(Edge和IE除外)。当然,它不能用于更改线条的粗细,但可以用于获得更“静音”的下划线(也显示在代码笔中)。


如果用户使用的是Firefox,则可以在以下位置访问所有文本修饰内容 text-decoration。我不知道是否计划将这些内容包括在所有这些内容中,但是如果这样的话,将来会非常好。编辑:这是支持此工作的草案text-decoration
受暴风雨

9

我将做一些简单的事情:

.thickness-underline {
    display: inline-block;
    text-decoration: none;
    border-bottom: 1px solid black;
    margin-bottom: -1px;
}
  • 您可以使用line-heightpadding-bottom在它们之间设置位置
  • 您可以display: inline在某些情况下使用

演示: http : //jsfiddle.net/5580pqe8/

CSS下划线


不幸的是,底边距不能得到负值。
soleshoe

5
@soleshoe这是不正确的,您可以在元素底部添加负边距。
亚历克斯

7

background-image还可以用来创建一个下划线。

它必须向下移动background-position并水平重复。可以使用调整线宽background-size(背景仅限于元素的内容框)。

.underline
{
    --color: green;
    font-size: 40px;
    background-image: linear-gradient(var(--color) 0%, var(--color) 100%);
    background-repeat: repeat-x;
    background-position: 0 1.05em;
    background-size: 2px 5px;
}
<span class="underline">
     Underlined<br/>
     Text
</span>


5

a {
  text-decoration: none;
  position: relative;
}

a.underline {
  text-decoration: underline;
}

a.shadow {
   box-shadow: inset 0 -4px 0 white, inset 0 -4.5px 0 blue;
}
<h1><a href="#" class="underline">Default: some text alpha gamma<br>the quick brown fox</a></h1>
<p>Working:</p>
<h1><a href="#" class="shadow">Using Shadow: some text alpha gamma<br>the quick brown fox<br>even works with<br>multiple lines</a></h1>
<br>

最终解决方案:http : //codepen.io/vikrant-icd/pen/gwNqoM

a.shadow {
   box-shadow: inset 0 -4px 0 white, inset 0 -4.5px 0 blue;
}

1
问题在于下划线是由不同的浏览器呈现的。
Joel Karunungan

2

我的解决方案:https : //codepen.io/SOLESHOE/pen/QqJXYj

{
    display: inline-block;
    border-bottom: 1px solid;
    padding-bottom: 0;
    line-height: 70%;
}

您可以使用线高值调整下划线位置,使用边框底线调整下划线粗细和样式。

如果要在href上加下划线,请当心禁用默认的下划线行为。


2

借助新的CSS选项的神奇功能,现在可以在本地进行以下操作:

a {
  text-decoration: underline;
  text-decoration-thickness: 5px;
  text-decoration-skip-ink: auto;
  text-underline-offset: 3px;
}

截至目前,支持相对较差。但是最终它将在ff之外的其他浏览器中使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.