text-overflow 之我的理解

  我们在制作网站的过程中,经常会遇到 如 新闻标题过长但我们又不想让标题换行的情况,那么我们就会用到一个常用的属性:text-overflow 来单行裁剪文本;

  w3school上是这样说明的:

  我在第一次使用这个属性的时候是无效的,属性值写clip、ellipsis都没有任何效果,感觉很苦恼,后来查阅资料以及实践后,我得出要使用text-overflow 来实现单行文本裁剪的话要满足以下3个条件:

  1.display: block;  元素须为块级元素,inline-block都不行,所以span或者a里的文本如果想要单行裁剪就需要设置display:block; p则不需要;

  2.white-space: nowrap;  规定文本不会换行,文本会在在同一行上继续。这是想要实现单行文本裁剪的必要条件,但这个属性可以被<br>标签打破;

  3.overflow: hidden;  想要裁剪文本实质就是把多余的部分隐藏掉,所以这也是必须属性。

  那么,满足以上3个条件之后我们就可以使text-overflow生效了,我们一般是给ellipsis把多余部分裁剪为...的省略号,裁剪位置为元素宽度,所以当元素宽度等于浏览器宽度的时候且文本足够多就会随浏览器宽度而裁剪;

  使用情境经常是我们虽然看到的是一个省略的标题,而我们又希望查看完整的标题,这在w3school上有例子,为了不愿意再去查的同学我就写在下面了:

  在给元素设置以上属性之后,只需要写如下hover伪类即可实现鼠标放到元素上即查看完整文本的效果

  div:hover{

    text-overflow:inherit;
    overflow:visible;
  }

引申:

  为什么  text-overflow 我们常用在单行文本裁剪,而w3school只是说明这个属性是用来修剪文本,而且我们还会遇到需要裁剪段落的情况:

  其实这种情况多为后台限制编辑字数来实现,但是我们前端依然是可以实现的:

 {  display: -webkit-box;

   -webkit-box-orient:vertical;

  -webkit-line-clamp:4;   }//上述代码涉及到盒模型弹性布局,这里就不赘述讨论了,因为我还现在还没太明白 2333。上述代码只有webkit  的浏览器支持,而且目前为止并不是规范的CSS属性,所以大家还是不要盲目使用。(测试过-o- / -moz- 前缀,O和火狐还是无效) 而 单行文本裁剪是可以放心使用的,且不用担心兼容性,我亲测到 IE7 都没问题。

以上是我对 text-overflow 属性的理解,欢迎大家讨论,共同学习。(另:代码大都是手打,如有差错,欢迎指出。还有是首次发博文,渣排版,请谅解)
时间: 2024-10-13 16:23:08

text-overflow 之我的理解的相关文章

理解 CSS 布局和块级格式上下文

前言 BFC 的概念始于 CSS2,是个蛮古老的 CSS 话题了,网上也到处能搜到 BFC 的介绍,但是都不够简洁.本文系翻译自 Rachel Andrew 女士的博文 Understanding CSS Layout And The Block Formatting Context,内容足够简洁明了. 本文的目的是介绍一些概念,来帮你增强 CSS 码力.如标题所示,这篇文章主要是讲块级格式上下文(BFC,Block Formatting Context).你可能没听过这个术语,但只要你曾经使用

STM32启动过程的理解

对于STM32启动的过程,想象中应该是这样的上电--->启动---->main() 由于现在的集成开发环境,对于C语言之下的东西似乎都被屏蔽了,另外用编程也大都用封装好的库函数,连对寄存器的了解都少了一大步,但是这样总是让人觉得根基不够稳重.今天就整理下启动代码的理解,补充一下. 1.STM32存储器的组织 STM32作为32bit的操作系统,自然是2^32的寻址范围,所以正好是4GB的空间,再看一下对这个4GB是怎么分配的 8*512MB=4GB,图上很清晰了,一共分为  Code区  SR

学习js,遇到坑爹的combobox的text值的清空问题

今天被combobox的text值的清空问题虐的体无完肤,下面进入正题: md.drugView.cleanSearch = function() { s = s1 = ""; md.drugView.datagrid.datagrid('load', {});//重新加载数据,无需读数据,传给后台的值为空 md.drugView.searchform.find('input').val('');//找到searchform表单下的所有input标签,并清空 }; 以上是将form中的

KMP字符串匹配算法——用最容易理解的方式描述

看了数据结构书上对于快速模式匹配算法KMP的介绍,感觉云里雾里.本文根据自己理解,并查资料整理了一种非常清晰简单的字符串匹配算法,并给予实现,自诩原创吧. 字符串匹配是我们经常要用到的一种算法,与普通的匹配算法相比KMP算法效率更高,时间复杂度为O(m+n).下面给予详细讲解: 概念详解 设原字符串为"BBC ABCDAB ABCDABCDABDE",待匹配字符串为"ABCDABD". 首先,字符串"BBC ABCDAB ABCDABCDABDE"

Sublime Text自定义snippet

Sublime Text自定义snippet snippet可以理解为代码片段, 在自定义好snippet后就可以快带生成相应的代码片段 安装sass snippet插件 (支持该功能的插件,sublime 2和3都可以使用该功能) 查看snippet功能是否可用 新建一个html文件,按ctrl+shift+p 后输入snippet,看是否有相应的snippet字段.如果有,则表示snippet可正常使用 查看对应文件的scope snippet功能通过键入关键词后按tab完成代码不全,但是很

CSS 布局和 BFC

什么是 BFC 在一个Web页面的CSS渲染中,块级格式化上下文 (Block Fromatting Context)是按照块级盒子布局的.W3C对BFC的定义如下:浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不为“visiable”的块级盒子,都会为他们的内容创建新的BFC(块级格式上下文).BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个 BFC 中

第5章 scrapy爬取知名问答网站

第五章感觉是第四章的练习项目,无非就是多了一个模拟登录. 不分小节记录了,直接上知识点,可能比较乱. 1.常见的httpcode: 2.怎么找post参数? 先找到登录的页面,打开firebug,输入错误的账号和密码,观察post_url变换,从而确定参数. 3.读取本地的文件,生成cookies. 1 try: 2 import cookielib #py2 3 except: 4 import http.cookiejar as cookielib #py3 4.用requests登录知乎

全球最牛的100家AI创企:有多少独角兽?

全球最牛的100家AI创企:有多少独角兽? 自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?其中有多少家独角兽公司?中国企业表现如何呢? 近期,CB Insights发布了一份全球"AI 100"名单.该名单从全球1650家AI企业中评选出了100家最具创新实力.最有前途的公司.这些公司来自11个国家和地区,处于不同的发展阶段,自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?

[学习笔记]day02&amp;CSS

一,什么是CSS? Cascading Style Sheets层叠样式表 层叠:就是层层覆盖叠加,如果有多种样式对同一html标签进行修饰,样式有冲突的部分应用优先级高,不冲突的部分共同作用 样式表:就是css属性样式的集合 CSS的作用 1. 对html页面进行美化和修饰 2. 将html的内容和样式进行了分离,让文档看起来更清晰 3. 提高代码复用性 ? 1. CSS的选择器(三种) 一,基本选择器(三种) 1.ID选择器 ? (1)id选择器 id唯一性 语法:#id的值{css属性}

javascript——面向对象程序设计(2)

1 <script type="text/javascript"> 2 //1.理解原型对象 3 //2.原型与in操作符 4 //3.更简单的原型语法 5 //4.原型的动态性 6 //5.原生对象原型 7 //6.原型对象的问题 8 9 //1.无论什么时候,只要创建了一个函数,就会根据一组特定的规则,为该函数创建一个prototype属性,该属性指向函数的原型对象 10 //在默认情况下,所有的原型对象都会自动获得一个constructor(构造函数)属性,这个属性包