CSS更好利用text-decoration属性显示文字特效

text-decoration属性可以做很多事情,我们来学习这个属性实现更多细致的样式。

文字可以有更多装饰

例如:

a {
  text-decoration: underline overline;
}

可以看到在Almanac 中text-decoration修饰的内容,更具体点,它给子属性text-decoration-line添加多个属性值。

改变装饰的颜色

下划线的颜色默认为文本设置color的属性值,但你可以改变:

a {
  text-decoration-color: #f06d06;
}

观察在Almanac中 text-decoration-color修饰的内容。

注意在Gecko里下划线是呈现在字体的下面,然而在WebKit/Blink里下划线呈现在字体的上面:

如今处理彩色下划线普遍使用border来代替text-decoration。边框可以比text-decoration更好的独立控制下划线的颜色,宽度以及位置。

但有一些事情border是做不了的,就像......

改变装饰的样式

border无法实现下面的样式!

a {
  text-decoration-style: wavy;
}

观察Almanac 中text-decoration-style修饰的内容。

它会变得更好

现如今已经有很多方法可以更好的实现带下划线的文本。例如,使用skip可以更好的增强阅读性,就像下面一样:

上面例子是用 text-decoration-skip实现的,可是并不是所有浏览器都支持。同时,使用较宽松的下划线以及减少contrast-y的值可能会更好,这里使用了rgba():

text-decoration

隐藏下划线只是它的(text-decoration)的一个功能,此外,你也可以用skip修饰一些行内元素,空格,甚至控制edges。

需要注意的是Safari/iOS浏览器似乎会使用默认的skip值。

汇总

html

<div class="style">
  line:
  <button>underline</button>
  <button>line-through</button>
  <button>overline</button>
</div>
<div class="color">
  color:
  <button>black</button>
  <button>red</button>
  <button>gray</button>
</div>
<div class="skip">
  skip:
  <button>objects</button>
  <button>spaces</button>
  <button>ink</button>
  <button>edges</button>
  <button>box-decoration</button>
  <button>trailing-spaces</button>
</div>
<p class="solid">text-decoration-style: solid;</p>
<p class="double">text-decoration-style: double;</p>
<p class="dotted">text-decoration-style: dotted;</p>
<p class="dashed">text-decoration-style: dashed;</p>
<p class="wavy">text-decoration-style: wavy;</p>

CSS

.solid { 
  text-decoration-style: solid; 
}
.double { 
  text-decoration-style: double;
}
.dotted { 
  text-decoration-style: dotted; 
}
.dashed { 
  text-decoration-style: dashed; 
}
.wavy { 
  text-decoration-style: wavy; 
}
/* styling for Pen, unrelated to text-decoration-style */
body { 
  font-family: sans-serif;
}
p {
  text-decoration: underline;
  font-size: 2em;
}
div {
  line-height: 1.5;
}
JS
$(".style button").on("click", function() {
  $("p").css("text-decoration-line", $(this).text());
});
$(".color button").on("click", function() {
  $("p").css("text-decoration-color", $(this).text());
});
$(".skip button").on("click", function() {
  $("p").css("text-decoration-skip", $(this).text());
});

text-decoration属性变成了属性简写

跟着最新的CSS规范,text-decoration现在的写法是这样的:

a {
  text-decoration: overline aqua wavy;
}

text-decoration属性现在需要用三种属性值来表示了:text-decoration-line, text-decoration-color, and text-decoration-style.

但不幸的是,目前只有火狐浏览器实现了对这些新属性的支持。

你可以用火狐浏览器试一试下面的演示:
HTML代码

<a href="#" id="a">IT'S LIKE WATER, PEOPLE

(You should see a wavy line on top. Currently works only in Firefox)

CSS代码

body {
  padding: 30px;
  text-align: center;
  font-family: Arial, sans-serif;
}

a, a:visited {
  color: blue;
  background: aqua;
  -moz-text-decoration-color: aqua;
  -moz-text-decoration-line: overline;
  -moz-text-decoration-style: wavy;
  text-decoration-color: aqua;
  text-decoration-line: overline;
  text-decoration-style: wavy;
}

演示


在这演示中,我们没有使用简写形式,而是分开描述每个属性。这是可以更好的保证浏览器的向后兼容,使那些目前不支持这种写法的浏览器也不受影响。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索css
, 浏览器
, this
, 属性
font-family
css text decoration、css a textdecoration、css3 text decoration、css中text decoration、csstextdecoration,以便于您获取更多的相关知识。

时间: 2024-09-26 18:15:49

CSS更好利用text-decoration属性显示文字特效的相关文章

ListViewItem的Text属性显示不全

问题描述 使用ListView控件展示数据时,在SmallIcon视图下显示的各个ListViewItem项的Text属性显示不完整,有的少字,有的不少?怎么让Text显示完整. 解决方案 解决方案二:设置长度固定的字符串格式如果1个是123456另1个123那么...补齐,或者截断显示也可以,点击链接可以查看明细!解决方案三:引用1楼fox123871的回复: 设置长度固定的字符串格式如果1个是123456另1个123那么...补齐,或者截断显示也可以,点击链接可以查看明细! 问题是同样四个汉

详细学习CSS中的网页布局的属性

css|网页 布局(Layout)属性: 在以前的HTML里,元素的位置只能靠元素的依次排列觉得,而在CSS里你可以更精确的定位元素.Netscape曾提出过Layer标记,它对于精确布局很有好处,但是并没有被W3C承认,W3C在CSS提出了类似于Layer标记的功能. position属性: position属性用来决定元素的位置类型,详见属性: 属性名称: 'position'属性值: absolute | relative | static初始值: static适合对象: 所有元素是否继承

如何将经纬度利用Google Map API显示C# VS2005 Sample Code

原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上,这个做法有两种,最简单的就是直接传值到Google Maps上.   举例来说,当我们知道经纬度后,只要将数据套到以下网址即可. http://maps.google.com/maps?q=25.048346%2c121.516396 在参数q=后面,就可以加上经纬度了. 25.048346是La

CSS手册简编:颜色背景属性

css CSS属性: 4.颜色和背景(Color and Background)属性: 这里介绍有关CSS中前景色和背景颜色.图片的设定方法. color属性: color属性用于设定元素的前景色: 属性名称: 'color'属性值: <color>初始值: 根据用户的初始值而定适合对象: 所有元素是否继承: yes百分比备注: 被禁止 color属性的值可以是十六进制数值.rgb()函数或CSS承认的颜色名称.如: EM { color: red }EM { color: rgb(255,0

优化JS和CSS更快地下载网页图片

文章简介:我关注JS和CSS的重点也是如何能够更快地下载图片.图片是用户可以直观看到的.他们并不会关注JS和CSS.确实,JS和CSS会影响图片内容的展示,尤其是会影响图片的展示方式(比如图片轮播,CSS背景图和媒体查询).但是我认为JS和CSS只是展示图片的方式.在页面加载的过程 我的大部分性能优化工作都集中在JavaScript和CSS上,从早期的Move Scripts to the Bottom和Put Stylesheets at the Top规则.为了强调这些规则的重要性,我甚至说

利用Page.IsPostBack属性保持用户输入的Framework

利用Page.IsPostBack属性保持用户输入的Framework                             Batman    在大型应用中考虑到用户在进行大量输入工作时候,有可能要遇到下面这种情况.例如用户输入的信息中的某几项信息检测失败,服务器不得不把用户输入的信息重新返回给用户修改.这时就需要服务器把前面用户输入的信息重新返回给客户端,而不是简单的让用户再次重新输入烦琐的信息内容.    在ASP+中,存在一种不同于以前的新的控件-服务器控件,它的原理是可以通过<Hid

magento -- 修改代码让后台属性组合里的属性显示中文

Magento后台属性组合管理里的各个属性显示的是属性的code,也就是说,即便给每个属性加上了中文的标签(label),这里显示的依然是大片的英文,对一个不懂技术的后台管理者来说,这样多的英文时他们不愿意看到的,所以要想办法变一下.   打开/app/code/local/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php文件,找到几个用来显示的代码,替换成如下所示 public function getGroupTreeJs

System.Text.Encoding属性为何显示出来总是灰的?

问题描述 System.Text.Encoding属性是系统默认的DataObject的共有属性,一般都不在属性浏览器中显示的,当我用PublicOverloadsPropertyEncodingasSystem.Text.Encoding的方式重载它之后,它能显示出来,但却是灰的?能让它成为可点击选择的吗? 解决方案 解决方案二:路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f

TextBox.Text这个属性.是如何知道我输入的值的?

问题描述 我在网页上放了一个Textbox控件和一个BUTTON控件.打开网页后.我在Lable控件中输入了一个值.然后按Button按钮.Button的事件处理代码是response.write(TextBox1.Text);然后网页上就会输出我输入的值.我想问.TextBox1.Text这个属性.是如何知道我输入的值的? 解决方案 解决方案二:TextBox1最后在html中显示为<inputtype="text",,,,>,你输入文字,然后form提交后,它的值就发送