99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

CSS偽類:empty讓我眼前一亮

2020-11-4    前端達人

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


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

我當時是這么想的:一方面出于“不在JavaScript里寫太多東西”的考慮,另一方面,由于省、市、區我是分別用三個變量來實現的,所以JavaScript里就關注這三個變量,比如之間的空格或其它東西都拿到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

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

其布局是這樣的:

.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,想到這里,你應該能想到一個css偽類::empty !它的作用和我們想要的效果一樣:判斷如果元素(內容)為空的話…
我迅速對代碼做了改動:

<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
一片空白!

經過查閱資料::empty偽類表示如果標簽內容為空,那么內容區域如果帶有空格,也是不會被匹配到的!

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

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


到這里我們會發現一個事:上面我們不僅用了empty偽類,還用了before偽元素!

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

我認為更應該關注到的是兩個地方:

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

這個特性實用的一批。


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

比如:我在項目優化時就將所有有請求的字段都加上了統一類名:

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


作者:,轉載


日歷

鏈接

個人資料

藍藍設計的小編 http://www.lapeinture.cn

存檔

国产精品1024永久免费视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品久久久久久中文字幕一区| 黄视频网站在线免费观看| 精品国产一级毛片| 欧美国产日韩在线| 国产美女在线一区二区三区| 黄视频网站免费看| 一本高清在线| 超级乱淫黄漫画免费| 欧美国产日韩一区二区三区| 一级女性全黄生活片免费| 成人a级高清视频在线观看| 国产成人欧美一区二区三区的| 韩国三级视频网站| 亚欧视频在线| 日本免费乱理伦片在线观看2018| 欧美另类videosbestsex久久| 91麻豆精品国产自产在线观看一区| a级精品九九九大片免费看| 日韩免费在线| 999久久久免费精品国产牛牛| 免费国产一级特黄aa大片在线| 黄视频网站免费看| 国产不卡高清| 99久久精品国产麻豆| 国产福利免费观看| 精品在线观看一区| 精品视频在线看| 国产美女在线一区二区三区| 成人高清护士在线播放| 欧美激情一区二区三区在线 | 999精品视频在线| 国产成人精品综合久久久| 国产a毛片| 久久99中文字幕| 可以免费看毛片的网站| 成人免费观看男女羞羞视频| 你懂的日韩| 成人a级高清视频在线观看| 成人免费网站视频ww| 毛片成人永久免费视频| 韩国三级视频网站| 亚飞与亚基在线观看| 国产一区二区精品久久| 97视频免费在线观看| 国产一级生活片| 精品久久久久久中文| 久久99中文字幕久久| 欧美一区二区三区在线观看| 99久久网站| 欧美激情一区二区三区视频高清 | 精品在线观看国产| 精品国产一区二区三区免费 | 久久国产影视免费精品| 国产伦久视频免费观看视频| 国产伦久视频免费观看视频| 亚洲 男人 天堂| 欧美另类videosbestsex久久| 午夜欧美成人香蕉剧场| 国产亚洲精品aaa大片| 日日夜人人澡人人澡人人看免| 青青青草影院| 久久精品欧美一区二区| 你懂的国产精品| 欧美激情影院| 九九精品久久| 日韩中文字幕在线观看视频| 日韩专区亚洲综合久久| 欧美国产日韩久久久| 国产91精品一区二区| 一级毛片视频免费| 欧美激情一区二区三区视频 | 国产a毛片| 美女免费毛片| 久久成人亚洲| 天天色成人网| 精品久久久久久中文| 韩国三级视频在线观看| 久久久久久久男人的天堂| 黄视频网站在线看| 欧美另类videosbestsex高清 | 久久久久久久久综合影视网| 成人a大片在线观看| 国产成+人+综合+亚洲不卡| 午夜欧美成人久久久久久| 日日夜人人澡人人澡人人看免| 国产伦理精品| 国产网站在线| 国产高清在线精品一区a| 日日爽天天| 久久99中文字幕| 国产91丝袜高跟系列| 色综合久久天天综合绕观看| 91麻豆精品国产综合久久久| 青青久久精品| 欧美爱爱网| | 国产91丝袜高跟系列| 日日夜夜婷婷| 四虎论坛| 成人免费网站视频ww| 精品视频免费在线| 亚洲 激情| 免费一级片在线观看| 日韩中文字幕一区二区不卡| 免费的黄色小视频| 香蕉视频久久| 亚欧成人乱码一区二区| 欧美大片aaaa一级毛片| 99久久视频| 国产福利免费视频| 高清一级片| 毛片成人永久免费视频| 欧美激情影院| 黄色免费三级| 香蕉视频一级| 台湾毛片| 精品久久久久久中文| 亚洲第一色在线| 日本在线不卡免费视频一区| 亚洲天堂免费观看| 沈樵在线观看福利| 国产精品1024永久免费视频| 国产激情一区二区三区| 国产成a人片在线观看视频| 一级女人毛片人一女人| 天堂网中文字幕| 免费一级片在线观看| 亚洲 激情| 一 级 黄 中国色 片| 91麻豆国产| 久久国产精品自由自在| 亚洲精品久久玖玖玖玖| 国产高清视频免费| 亚洲精品中文一区不卡| 国产a视频| 午夜在线亚洲| 日本免费乱理伦片在线观看2018| 亚洲天堂免费观看| 可以在线看黄的网站| 久久国产一区二区| 国产91精品一区| 精品视频在线看| 青青久久网| 你懂的国产精品| 黄色短视频网站| 国产视频久久久| 国产成人精品综合| 久久精品欧美一区二区| 成人免费网站久久久| 亚洲爆爽| 成人高清视频免费观看| 91麻豆精品国产高清在线 | 精品视频一区二区三区免费| 日日夜夜婷婷| 国产成人精品综合久久久| 欧美一级视| 日韩一级黄色| 欧美1区| 国产一区二区精品在线观看| 亚洲 欧美 成人日韩| a级毛片免费观看网站| 国产麻豆精品免费视频| 成人免费观看男女羞羞视频| 久久久久久久免费视频| 欧美激情影院| 欧美爱色| 精品国产香蕉伊思人在线又爽又黄| 九九九国产| 青青久在线视频| 国产视频在线免费观看| 你懂的日韩| 香蕉视频一级| 日本在线不卡免费视频一区| 成人免费观看男女羞羞视频| 美女免费精品视频在线观看| 欧美日本免费| 国产不卡在线看| 你懂的国产精品| 国产精品自拍在线| 亚洲 男人 天堂| 99色视频在线| 一级女性全黄生活片免费| 亚洲精品久久玖玖玖玖| a级黄色毛片免费播放视频| 色综合久久天天综合绕观看| 国产一区国产二区国产三区| 成人影院一区二区三区| 国产综合成人观看在线| 欧美另类videosbestsex高清 | 九九久久国产精品大片| 夜夜操天天爽| 九九热国产视频| 黄视频网站免费看| 99久久精品国产免费| 国产91精品一区二区| 欧美α片无限看在线观看免费| a级毛片免费全部播放| 99色视频|