CSS 搞怪的 text-decoration

栏目: CSS · 发布时间: 6年前

内容简介:今天在改一个项目的时候却遇到了一个莫名其妙的属性:text-decoration,这个属性,其实就只是用来把一段文字加上上横线、删除线或底线的属性罢了,通常会用在移除超链接的底线、或一些特殊强调的效果里头,但是这么容易的属性,为什么会莫名其妙呢?就让我们继续看下去~在我的项目里头遇到的问题如下,一个div里头包了一个span,我要“除了这个span之外,其他所有的文字都有底线”,通常看到这个问题一定觉得很简单,只要照下面的CSS写法一定可以达成:理论上应该前一段会有底线,后一段会没有底线,但是实际上却是一条

今天在改一个项目的时候却遇到了一个莫名其妙的属性:text-decoration,这个属性,其实就只是用来把一段文字加上上横线、删除线或底线的属性罢了,通常会用在移除超链接的底线、或一些特殊强调的效果里头,但是这么容易的属性,为什么会莫名其妙呢?就让我们继续看下去~

项目里遇到的问题

在我的项目里头遇到的问题如下,一个div里头包了一个span,我要“除了这个span之外,其他所有的文字都有底线”,通常看到这个问题一定觉得很简单,只要照下面的CSS写法一定可以达成:

div{
    font-size:20px;
    text-decoration: underline;
}
div span{
    text-decoration: none;
}

理论上应该前一段会有底线,后一段会没有底线,但是实际上却是一条底线通到底…..

CSS 搞怪的 text-decoration

不过我不信邪,怕是哪里CSS权重出了问题,直接加上万恶的important试试看,结果发现结果还是一模一样!天呀!是见到鬼了吗!

div{
    font-size:20px;
    text-decoration: underline;
}
div span{
    text-decoration: none!important;
}

CSS 搞怪的 text-decoration

由于实在是太诡异了,必须要查明原因,于是我换个角度思考,来改一下颜色试试看吧!一改才发现不得了,为什么底线会是红色的呀?!

div{
    font-size:20px;
    color:#f00;
    text-decoration: underline;
}
div span{
    color:#00f;
    text-decoration: none!important;
}

CSS 搞怪的 text-decoration

text-decoration属性定义

看到这边我已经大概知道原因了,最有可能的原因应该就是出在text-decoration这个属性的定义,经过一番追根究柢,总算看到W3C的说法,主要是因为text-decoration会把整个父元素加上底线,而整个父元素,当然就包含了子元素,因为同样颜色的缘故,就以为子元素也被加上底线了,(实际上子元素没有被加上底线),不过后来又看了这个专门分析兼容性问题的网站说明,其实text-decoration会根据不同的display属性,而决定父元素的底线是否延伸,举例来说吧!如果今天我把span的display改成inline-block,就会得到不同的结果:

div{
    font-size:20px;
    color:#f00;
    text-decoration: underline;
}
div span{
    display:inline-block;
    color:#00f;
    text-decoration: none!important;
}

CSS 搞怪的 text-decoration

小结

不过由于各家浏览器的渲染不同,加上已经明白了个中原理,这里就不做太多的测试,只要记得下次如果又遇到这种问题,可能就是父元素和子元素互相干扰所造成,自己也要特别留心。最后,好像也可以利用这种方法,做出莫名其妙的效果…

HTML

<div>
    <span><span><span>真是很莫名其妙的效果<span></span></span>
</div>

CSS

div{
    font-size:30px;
    color:#f00;
    text-decoration:overline;
}
div span{
    color:#00f;
    text-decoration: line-through;
}
div span span{
    color:#0f0;
    text-decoration: underline;
}
div span span span{
    color:#000;
    text-decoration: none;
}

CSS 搞怪的 text-decoration

CSS 搞怪的 text-decoration


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创投之巅——中国创投精彩案例

创投之巅——中国创投精彩案例

投资界网站 / 人民邮电出版社 / 2018-11 / 69.00

中国的科技产业发展,与创投行业密不可分。在过去的几十年间,资本与科技的结合,缔造了众多创业“神话”。回顾这些科技巨头背后的资本路径,可以给如今的国内创业者很多有益的启发。 本书从风险投资回报率、投资周期、利润水平、未来趋势等多个维度,筛选出了我国过去几十年中最具代表性的创业投资案例,对其投资过程和企业成长过程进行复盘和解读,使读者可以清晰地看到优秀创业公司的价值与卓越投资人的投资逻辑。一起来看看 《创投之巅——中国创投精彩案例》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具