某些场合下(例如表单填写、需要打印手写签字等地方)需要给文字或者div增加下划线,这里记录下我遇到的几种实现方案。
文字下划线
给文字添加下划线其实比较简单,使用如下属性:
text-decoration 属性
这个属性可以给文字设置一下装饰效果,比如删除线,下划线啥的。
- text-decoration: overline 上划线
- text-decoration: line-through 贯穿线
- text-decoration: underline 下划线
- text-decoration: blink 闪烁
- text-decoration: none 无效果
最常用的就是去掉a标签的默认下划线样式。
示例如下:
<html>
<head>
<style type="text/css">
h1 {
text-decoration: overline
}
h2 {
text-decoration: line-through
}
h3 {
text-decoration: underline
}
h4 {
text-decoration: blink
}
a {
text-decoration: none
}
</style>
</head>
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<h3>这是标题 3</h3>
<h4>这是标题 4</h4>
<p>
<a href="http://www.w3school.com.cn/index.html">这是一个链接</a>
</p>
</body>
</html>
以上给文本用text-decoration: underline 做下划线有几个问题,一是下划线距离文本太近,二是下划线都是跟着文本的,不能比文本长,三是下划线的粗细、颜色都是固定的,且不方便所以调整。
下面介绍使用border-bottom来增加下划线,可以解决以上提到的2个问题点。
border-bottom 是通过设置盒子的下边框,可以起到模拟下划线的作用,且定制能力比较强,示例如下:
border-bottom: 1px solid #dbdbdb; border-top:0px; border-left:0px; border-right:0px;
第三种方式:
linear-gradient()
linear-gradient() 函数用于创建一个线性渐变的 "图像"。
为了创建一个线性渐变,你需要设置一个起始点和一个方向(指定为一个角度)的渐变效果。你还要定义终止色。终止色就是你想让Gecko去平滑的过渡,并且你必须指定至少两种,当然也会可以指定更多的颜色去创建更复杂的渐变效果。
为了创建一个线性渐变,你需要设置一个起始点和一个方向(指定为一个角度)的渐变效果。你还要定义终止色。终止色就是你想让Gecko去平滑的过渡,并且你必须指定至少两种,当然也会可以指定更多的颜色去创建更复杂的渐变效果。
这个css的函数不算常见,它的作用其实说白了就是创造一张图片。
用渐变函数来模拟下划线,其实是设置背景图片,然后设置宽高,让它看起来像是一个下划线。
示例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>untitled</title>
<style>
.test::after {
content: "";
display: block;
background: linear-gradient(to right, #188eee, #999);
width: 100%;
height: 1px;
}
</style>
</head>
<body>
<div class='test'>
<p class='box'>内容</p>
</div>
</body>
</html>
文章评论