CSS实践:计算选中标签元素、多行文本溢出省略

2021-03-0510:46:04网页制作Comments1,779 views字数 1082阅读模式

CSS计算选中标签元素

这是一种社交平台的常见需求,比如说在掘金平台中让用户选择感兴趣的标签,通常都是用JS来处理已经选择了的标签数量。今天给出一个css版本:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

<p>请选择你感兴趣的标签:</p>
<input type="checkbox" id="topic1"><label for="topic1" class="topic">Vue</label>
...
<p>您已选择<span class="topic-counter"></span>个标签。</p>
复制代码

首先将checkbox隐藏起来:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

[type="checkbox"]{
    position: absolute;
    clip: rect(0 0 0 0);
}
复制代码

然后自定义label样式,接着设置CSS计算器。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

// 在body中创建或者重置计算器
body {
    counter-reset: topicCounter;
}
// 当checkbox在选中状态时递增变量
:checked + .topic {
    counter-increment: topicCounter;
}
//使用counter()函数将计算器的值添加到元素中。
.topic-counter::before {
    color: red;
    content: counter(topicCounter);
}
复制代码

效果图如下: CSS实践:计算选中标签元素、多行文本溢出省略文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

多行文本溢出省略

文本溢出省略是很常见的业务需求,然而大多数都是处理单行文本:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
复制代码

这3个CSS语句的意思是:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

  • 设置如果文字长度超出指定的宽度,则隐藏超出宽度的内容。
  • 设置文字在一行显示,不能换行。
  • 设置文本溢出时,用省略符号来代表被裁剪的文本。

那么处理多行文本又是怎么样的?这里提供一个CSS版本:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
复制代码

上面CSS语句的意思是:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

  • 设置元素为弹性伸缩盒子模型。
  • 设置显示文本的行数。
  • 设置伸缩盒子元素的子元素排列方式(以上三个要一起使用)
  • 设置文本溢出时,用省略符号来代表被裁剪的文本。

效果如下: CSS实践:计算选中标签元素、多行文本溢出省略文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

但这种方法缺点也很明显,只适用在WebKit内核的浏览器。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

作者:zhangwinwin
链接:https://juejin.cn/post/6934887428616355847
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21009.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/zhizuo/21009.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定