分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

文本溢出显示省略号,CSS未加载时a标签仍可用处理方法

发布时间:2023-09-06 02:03责任编辑:郭大石关键词:CSS

一、文本溢出打点

(1)单行文本

overflow: hidden;text-overflow:ellipsis;white-space: nowrap;

(2)多行文本

  1. overflow : hidden;
  2. text-overflow: ellipsis;
  3. display: -webkit-box;
  4. -webkit-line-clamp: 2;
  5. -webkit-box-orient: vertical;

适用范围:
因使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;

注:

  1. -webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:
  2. display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  3. -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

跨浏览器兼容的方案

比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;

p { ???position:relative; ???line-height:1.4em; ???/* 3 times the line-height to show 3 lines */ ???height:4.2em; ???overflow:hidden;}p::after { ???content:"..."; ???font-weight:bold; ???position:absolute; ???bottom:0; ???right:0; ???padding:0 20px 1px 45px; ???background:url(http://newimg88.b0.upaiyun.com/newimg88/2014/09/ellipsis_bg.png) repeat-y;}

这里注意几点:

  1. height高度真好是line-height的3倍;
  2. 结束的省略号用了半透明的png做了减淡的效果,或者设置背景颜色;
  3. IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如用<span class="line-clamp">...</span>去模拟;
  4. 要支持IE8,需要将::after替换成:after
p{
  position: relative;
  line-height: 20px;
  max-height: 40px;
  overflow: hidden;
}p::after{
  content: "...";
  position: absolute;
  bottom: 0;
  right: 0;
  padding-left: 40px;  background: -webkit-linear-gradient(left, transparent, #fff 55%);  background: -o-linear-gradient(right, transparent, #fff 55%);  background: -moz-linear-gradient(right, transparent, #fff 55%);  background: linear-gradient(to right, transparent, #fff 55%);}

适用范围:
该方法适用范围广,但文字未超出行的情况下也会出现省略号,可结合js优化该方法。

注:

  1. 将height设置为line-height的整数倍,防止超出的文字露出。
  2. 给p::after添加渐变背景可避免文字只显示一半。
  3. 由于ie6-7不显示content内容,所以要添加标签兼容ie6-7(如:<span>…<span/>);兼容ie8需要将::after替换成:after。

2.jQuery插件-jQuery.dotdotdot

这个使用起来也很方便:

$(document).ready(function() { ???$("#wrapper").dotdotdot({ ???????// ???configuration goes here ???});});

二、CSS未加载时a标签仍可用的处理方法

(1)利用上面的文字溢出处理方式

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>面向对象的拖拽和继承</title> ???<style> ???????a{ ???????????background: url(timg.jpg) center no-repeat; ???????????background-size: 100px 200px; ???????????display: inline-block; ???????????height: 100px; ???????????width: 200px; ???????????overflow: hidden; ???????????????????????text-indent: 200px; ???????????white-space: nowrap; ???????} ???</style></head><body> ???<a href="http://www.taobao.com">淘宝网</a></body></html> 

(2)利用padding

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>面向对象的拖拽和继承</title> ???<style> ???????a{ ???????????background: url(timg.jpg) center no-repeat; ???????????background-size: 100px 200px; ???????????display: inline-block; ???????????height: 0px; ???????????width: 200px; ???????????padding-top: 100px; ???????????overflow: hidden; ???????????????????} ???</style></head><body> ???<a href="http://www.taobao.com">淘宝网</a></body></html> 

三、P元素包裹块级元素会被截断

文本溢出显示省略号,CSS未加载时a标签仍可用处理方法

原文地址:https://www.cnblogs.com/phoebeyue/p/9302225.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved