午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

CSS偽類:empty讓我眼前一亮

2020-11-4    前端達人

最近看過我文章的都知道:我最近在負責(zé)一個微信小程序的項目,在其中遇到了很多有趣的事和一些“奇思妙想”。本文的背景就是某天早上我看著wxml文件中一堆wx:if/elsehidden突然很煩躁,先不說wx:if導(dǎo)致的性能問題,就是標簽上也是冗雜的。


接著上一篇文章【微信小程序自定義組件庫yPicker組件分析及省市區(qū)三級聯(lián)動實現(xiàn)】,在其中我分析了這么一個例子 —— 省市區(qū)三級聯(lián)動的自定義實現(xiàn),在其中有詳細代碼這里就不多說,說說如何調(diào)用:

我當時是這么想的:一方面出于“不在JavaScript里寫太多東西”的考慮,另一方面,由于省、市、區(qū)我是分別用三個變量來實現(xiàn)的,所以JavaScript里就關(guān)注這三個變量,比如之間的空格或其它東西都拿到wxml文件里。就像這樣:

<view class="departments location" bindtap="fixedshow"> <view class="depart_title">所在位置</view> <view wx:if="{{provinces&&citys&&areas}}" class="placeholder depart_content">{{provinces}} {{citys}} {{areas}}</view> <view class="placeholder depart_content befselect" wx:else>請選擇當前位置</view> <view class="desc">如有變動請修改后再次提交</view> </view> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(因為調(diào)用涉及到后來改動的只有在點擊彈窗里的“確認”按鈕時在事件中將那三個變量分別賦給這段代碼中出現(xiàn)的三個變量 —— 否則會只要改動不管是點取消還是確認已經(jīng)發(fā)生改變了,這樣不妥!)

其布局是這樣的:

.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; } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

location


在決定了要替換這里的wx:if以后,你首先要想:用什么替換?
wx:if作用是判斷“是否存在”,如果不存在(條件不滿足)就切換到wx:else或是wx:elif的邏輯里!

OK,想到這里,你應(yīng)該能想到一個css偽類::empty !它的作用和我們想要的效果一樣:判斷如果元素(內(nèi)容)為空的話…
我迅速對代碼做了改動:

<view class="departments location" bindtap="fixedshow"> <view class="depart_title">所在位置</view> <view class="placeholder depart_content">{{provinces}} {{citys}} {{areas}}</view> <view class="desc">如有變動請修改后再次提交</view> </view> 
  • 1
  • 2
  • 3
  • 4
  • 5

然后在class - depart_content上加了這個偽類:

.placeholder:empty::before{ content: "請選擇當前位置"; color: rgba(0,0,0,.6); } 
  • 1
  • 2
  • 3
  • 4

wx
一片空白!

經(jīng)過查閱資料::empty偽類表示如果標簽內(nèi)容為空,那么內(nèi)容區(qū)域如果帶有空格,也是不會被匹配到的!

在寫標簽時一定要注意這一點:標簽內(nèi)是否有空格或換行!(換行常常被解析為一個空格)
遇到非單標簽一定注意閉合標簽!

最后解決辦法是:在js中將三個變量用空格相連接,再渲染到頁面上即可!
wx-position
(其實這里是一個自定義的選擇器,而自動定位就是往高德地圖發(fā)送了請求獲取到省市區(qū)字段而已,代碼就不寫了。。。)


到這里我們會發(fā)現(xiàn)一個事:上面我們不僅用了empty偽類,還用了before偽元素!

其實這一點很平常 —— 畢竟只有empty是添加不了內(nèi)容的(似乎縱觀css,只有before和after這樣偽元素可以向頁面中添加內(nèi)容,不管是文字還是圖片之類的)

我認為更應(yīng)該關(guān)注到的是兩個地方:

  1. 偽元素中沒有用position定位!一般來說對一個(存在內(nèi)容的)元素來說,為其設(shè)置“前置”(before)/“后置”(after)樣式都需要定位:規(guī)定其顯示的地方。不然大概率偽元素中的文字是顯示不出來的,通過本文的empty可以猜測:他被原本存在的內(nèi)容覆蓋住了。
  2. 從第一點可以得出::before 和 :after 偽元素向標簽內(nèi)插入內(nèi)容、圖形,并不會影響empty偽類的匹配!

這個特性實用的一批。


由上,可見此偽類最大的用處就是“字段缺失提示”!這是非常實用的。而且把這項任務(wù)交給CSS也可以減輕許多“(布局)負擔(dān)”、體驗更好、維護起來也更方便!

比如:我在項目優(yōu)化時就將所有有請求的字段都加上了統(tǒng)一類名:

.ym-empty:empty::before{ content: "暫無數(shù)據(jù),請重試", display: block; text-align: center; color: rgba(0,0,0,.6); /** 其它定位、字體更改操作 */ }


作者:,轉(zhuǎn)載


日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://m.gerard.com.cn

存檔

主站蜘蛛池模板: 强奸美女老师 | 亚洲合集综合久久性色 | 91天仙tv嫩模福利 | 美女的jj | 人妻无码AV中文系列 | 国产在线观看免费观看 | 久久偷拍人 | 最新国产亚洲亚洲精品视频 | 肉色无边(高h)| 杨幂被视频在线观看 | 久久超碰色中文字幕 | 色狠狠一区二区 | 精品人伦一区二区三区潘金莲 | 调教女M屁股撅虐调教 | 美国色情三级欧美三级纸匠情挑 | 506070老熟肥妇bbwxx视频 4虎最新网址 | 揉抓捏打抽插射免费视频 | 国产91无毒不卡在线观看 | 国产99精品视频一区二区三区 | 国产精品高清在线观看地址 | www.av色| 久久人妻AV一区二区软件 | 精品成人在线视频 | 深夜释放自己在线观看 | 久久久久久久久久毛片精品美女 | 娇妻中日久久持久久 | 高h乱一受多攻男男 | 奶头好翘是不是想要了 | 蜜桃成熟时2在线观看完整版hd | 最近中文字幕完整版高清 | 草民电影网午夜伦理电影网 | 日韩欧美三区 | 国产AV天堂一区二区三区 | 久久精品免费电影 | 富婆大保健嗷嗷叫普通话对白 | 国产亚洲精品久久77777 | 国产电影午夜成年免费视频 | 白丝制服被啪到喷水很黄很暴力 | 在线视频一区二区三区在线播放 | 国内精品伊人久久久影院 | 色综合a在线|