您现在的位置是:网站首页> 编程资料编程资料
CSS伪类:empty让我眼前一亮(实例代码)详解css3中的伪类before和after常见用法浅谈CSS 伪元素&伪类的妙用CSS 伪类修改input选中样式的示例代码css伪类 右下角点击出现 对号角标表示选中的示例代码css选择器四大类:基本、组合、属性、伪类详解如何使用CSS3中的结构伪类选择器和伪元素选择器解决移动端跳转问题(CSS过渡、target伪类)css3 伪类选择器快速复习小结CSS新增的:where和:is伪类函数是什么
2021-09-03
1143人已围观
简介 这篇文章主要介绍了CSS伪类:empty让我眼前一亮,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
最近看过我文章的都知道:我最近在负责一个微信小程序的项目,在其中遇到了很多有趣的事和一些“奇思妙想”。本文的背景就是某天早上我看着wxml文件中一堆wx:if/else和hidden突然很烦躁,先不说wx:if导致的性能问题,就是标签上也是冗杂的。
接着上一篇文章【微信小程序自定义组件库yPicker组件分析及省市区三级联动实现】,在其中我分析了这么一个例子 —— 省市区三级联动的自定义实现,在其中有详细代码这里就不多说,说说如何调用:
我当时是这么想的:一方面出于“不在JavaScript里写太多东西”的考虑,另一方面,由于省、市、区我是分别用三个变量来实现的,所以JavaScript里就关注这三个变量,比如之间的空格或其它东西都拿到wxml文件里。就像这样:
所在位置 {{provinces}} {{citys}} {{areas}} 请选择当前位置 如有变动请修改后再次提交
(因为调用涉及到后来改动的只有在点击弹窗里的“确认”按钮时在事件中将那三个变量分别赋给这段代码中出现的三个变量 —— 否则会只要改动不管是点取消还是确认已经发生改变了,这样不妥!)
其布局是这样的:
.departments{ width: 100%; height: 96rpx; display: flex; align-items: center; font-size: 36rpx; font-weight: 347; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } .location{ position: relative; border-bottom: 1rpx solid rgba(0,0,0,.009); display: flex; align-items: flex-start; padding-top: 20rpx; } .desc{ position: absolute; right: 19rpx; bottom: 4rpx; color: rgb(63,142,255); font-size: 23rpx; } .departments .depart_title{ width: 20%; } .departments .depart_content{ margin-left: 10%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } .departments .placeholder{ width: 69%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }
在决定了要替换这里的wx:if以后,你首先要想:用什么替换?wx:if作用是判断“是否存在”,如果不存在(条件不满足)就切换到wx:else或是wx:elif的逻辑里!
OK,想到这里,你应该能想到一个css伪类::empty !它的作用和我们想要的效果一样:判断如果元素(内容)为空的话…
我迅速对代码做了改动:
所在位置 {{provinces}} {{citys}} {{areas}} 如有变动请修改后再次提交
然后在class - depart_content上加了这个伪类:
.placeholder:empty::before{ content: "请选择当前位置"; color: rgba(0,0,0,.6); }
一片空白!
经过查阅资料::empty伪类表示如果标签内容为空,那么内容区域如果带有空格,也是不会被匹配到的!
在写标签时一定要注意这一点:标签内是否有空格或换行!(换行常常被解析为一个空格)
遇到非单标签一定注意闭合标签!
最后解决办法是:在js中将三个变量用空格相连接,再渲染到页面上即可!

(其实这里是一个自定义的选择器,而自动定位就是往高德地图发送了请求获取到省市区字段而已,代码就不写了。。。)
到这里我们会发现一个事:上面我们不仅用了empty伪类,还用了before伪元素!
其实这一点很平常 —— 毕竟只有empty是添加不了内容的(似乎纵观css,只有before和after这样伪元素可以向页面中添加内容,不管是文字还是图片之类的)
我认为更应该关注到的是两个地方:
- 伪元素中没有用position定位!一般来说对一个(存在内容的)元素来说,为其设置“前置”(before)/“后置”(after)样式都需要定位:规定其显示的地方。不然大概率伪元素中的文字是显示不出来的,通过本文的empty可以猜测:他被原本存在的内容覆盖住了。
- 从第一点可以得出:
:before和:after伪元素向标签内插入内容、图形,并不会影响empty伪类的匹配!
这个特性实用的一批。
由上,可见此伪类最大的用处就是“字段缺失提示”!这是非常实用的。而且把这项任务交给CSS也可以减轻许多“(布局)负担”、体验更好、维护起来也更方便!
比如:我在项目优化时就将所有有请求的字段都加上了统一类名:
.ym-empty:empty::before{ content: "暂无数据,请重试", display: block; text-align: center; color: rgba(0,0,0,.6); /** 其它定位、字体更改操作 */ }到此这篇关于CSS伪类:empty让我眼前一亮的文章就介绍到这了,更多相关CSS伪类empty内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- css实现隐藏滚动条并可以滚动内容的实例代码CSS实现导航固定的、左右滑动的滚动条制作方法CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解CSS实现隐藏滚动条并可以滚动内容效果(三种方式)css滚动条样式修改的代码css3 实现滚动条美化效果的实例代码
- css实现0.5px线条解决移动端兼容问题(推荐)css 收货地址平行四边形的线条样式示例代码纯css实现流向性和动态线条效果的代码纯css3绘制花瓣和线条旋转加载特效线条状的CSS3多种不同颜色进度条
- CSS实现一个自适应的正方形的方法示例用css实现正方形div 的两种方法css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
- CSS 实现高度自适应铺满整屏的实现纯Css实现Div高度根据自适应宽度(百分比)调整css和css3弹性盒模型实现元素宽度(高度)自适应css 高度自适应的问题示例探讨CSS min-height IE6、IE7、FF下DIV自适应高度纯CSS无hacks的跨游览器自适应高度多列布局 推荐css textarea 高度自适应,无滚动条CSS解决未知高度的垂直水平居中自适应问题
- CSS3贝塞尔曲线示例:创建链接悬停动画效果css3悬停按钮-CSS3鼠标悬停按钮阴影缩放特效代码CSS3 实现时间轴动画CSS3实现菜单悬停效果详解CSS3:overflow属性详解css3中的伪类before和after常见用法CSS3+HTML5+JS 实现一个块的收缩与展开动画效果10种CSS3实现的loading动画,挑一个走吧?CSS3实现带剪切动画的幻灯片特效代码详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)CSS3悬停展开旋转菜单特效代码
- overflow:auto的用法详解详解CSS中zoom属性或overflow:auto属性清除浮动的作用ie7中overflow:auto无效的解决方法DIV背景图片在Firefox下不显示通过overflow:auto可解决CSS教程:导致一些问题的overflow-CSS教程-网页制作-网页教学网
- Blazor中的CSS隔离问题CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS3实现菜单悬停效果详解CSS3:overflow属性详解css3中的伪类before和after常见用法CSS3+HTML5+JS 实现一个块的收缩与展开动画效果10种CSS3实现的loading动画,挑一个走吧?CSS3实现带剪切动画的幻灯片特效代码详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)CSS3悬停展开旋转菜单特效代码纯CSS3进度条渐变加载特效代码CSS3 实现穿梭星空动画css3实现平移效果(transfrom:translate)的示例
- 详解CSS3:overflow属性详解css3中的伪类before和after常见用法CSS3+HTML5+JS 实现一个块的收缩与展开动画效果10种CSS3实现的loading动画,挑一个走吧?CSS3实现带剪切动画的幻灯片特效代码详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)CSS3悬停展开旋转菜单特效代码纯CSS3进度条渐变加载特效代码CSS3 实现穿梭星空动画css3实现平移效果(transfrom:translate)的示例CSS3新拟态图标悬停动画特效代码
- 详解在table设置max-width以及min-width兼容问题和解决方案多个div中table的tdwidth设置一样也不法对齐关于table的width:100%和margin导致溢出
