CSS 问题解决

本文最后更新于:2024年3月18日 凌晨

CSS 问题解决

CSS单行/多行文本溢出显示省略号

单行文本溢出显示省略号

  • 解决方法:使用text-overflow属性。
1
2
3
4
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
/**/

多行文本溢出显示省略号

webkit浏览器或移动端的页面

  • 解决方法:在webkit浏览器或移动端(绝大部分是webkit内核的浏览器)可以直接使用webkit的css扩展属性(webkit是私有属性)-webkit-line-clamp;
1
2
3
4
5
overflow:hidden;
text-overflow:ellipsis;
display:-webkit-box; /*必须结合的属性,将对象作为弹性伸缩盒子模型展示*/
-webkit-line-clamp:2;
-webkit-box-orient:vertical; /*必须结合的属性,设置或检索伸缩盒对象的子元素的排列方式*/
  • -webkit-line-clamp用来限制在一个块元素显示的文本行数,为了实现效果,需要与webkit属性结合使用。
  • 注意:这是一个不规范的属性,它没有在CSS的规范草案中。

跨浏览器兼容的方案

  • 解决方法:比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
p{
position:relative;
line-height:1.4em;
/*设置容器高度为3倍行高就是显示3行*/
height:4.2em;
overflow:hidden;
}
p::after{
content:'...';
font-weight:bold;
position:absolute;
bottom:0;
right:0;
padding:0 20px 1px 45px;
background:#fff;
}
  • 注意:IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如去模拟;要支持IE8,需要将::after替换为:after

JavaScript解决方案

  • 解决方法:使用js也可以根据上面的思路去模拟,实现也很简单,推荐两个做类似工作的成熟小工具。
    • clamp.js
    • jquery.dotdotdot

设置图片不可拖动的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>css居中对齐</title>
<style>
div{
width: 500px;
height: 500px;
border: 1px solid red;}

img {
-webkit-user-drag: none;
}
</style>
</head>
<body>
<div>
<img src="img/3.jpg">
</div>
</body>
</html>

隐藏滚动条

1
2
3
::-webkit-scrollbar {
display: none;
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!