92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

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://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
久久亚洲导航| 欧美午夜精品久久久久久超碰| 欧美三级网页| 老**午夜毛片一区二区三区| 久久久久久99| 欧美高清不卡| 日本午夜精品一区二区三区| 97在线观看免费观看高清| 欧洲av在线精品| 久久偷看各类wc女厕嘘嘘偷窃| 6699嫩草久久久精品影院| 希岛爱理av免费一区二区| 日韩欧美精品在线观看| 欧美国产日韩视频| 99久久精品情趣| 91激情在线视频| 中文字幕日韩精品在线| 国产精品一级片| 午夜精品福利一区二区三区蜜桃| 亚洲一区欧美一区| 美女国产精品久久久| 欧美成人中文| 国产天堂亚洲国产碰碰| 5g国产欧美日韩视频| 亚洲高清影视| 日韩欧美激情电影| 亚洲性图久久| 天堂va久久久噜噜噜久久va| 色综合久久中文字幕综合网| 狠狠久久五月精品中文字幕| 开心九九激情九九欧美日韩精美视频电影| 免费在线观看av| 网红女主播少妇精品视频| 蜜桃视频日韩| 96sao精品免费视频观看| 国产有码一区二区| 色悠久久久久综合欧美99| 超碰在线caoporn| 尤物九九久久国产精品的特点| 国产欧美精品xxxx另类| 日本小视频在线免费观看| 亚洲理论在线观看| 91免费视频网| 美国十次了思思久久精品导航| 亚洲va欧美va人人爽午夜| 好吊色欧美一区二区三区视频| 亚洲综合丁香婷婷六月香| av天在线观看| 亚洲精品白浆高清| 日本在线观看一区二区三区| 日韩精品亚洲专区| 欧美日韩蜜桃| 国产欧美日韩一区二区三区四区| 91情侣在线视频| 米奇777在线欧美播放| 青草影视电视剧免费播放在线观看| 久久久久久久国产精品视频| 亚洲女女做受ⅹxx高潮| 99久久久国产精品美女| 无遮挡动作视频在线观看免费入口| 97精品国产97久久久久久久久久久久| 亚洲第一区色| 不用播放器成人网| 中文字幕精品一区二区精品| 一区二区三区在线观看动漫| 综合久久久久| 国产精品中文字幕亚洲欧美| 少妇免费毛片久久久久久久久| 日韩一区二区在线看| 色在线视频观看| 成人欧美一区二区三区1314| 同产精品九九九| 日韩一区二区福利| 亚洲同性同志一二三专区| 亚洲精品美女久久7777777| 在线不卡国产精品| 精品一区二区三区中文字幕老牛| av福利在线播放| 国产亚洲精品激情久久| 成年人在线视频| 女人香蕉久久**毛片精品| 久久影院午夜论| 欧美激情网站在线观看| 精品一区二区三区电影| 自拍网站在线观看| 国产.精品.日韩.另类.中文.在线.播放| 九色porny自拍视频在线播放| 精品精品导航| 成人一区在线看| **国产精品| 一区二区三区久久精品| 久久精品91久久久久久再现| 在线观看v片| 国产精品久99| 综合日韩在线| 色狠狠久久av五月综合|| 制服丝袜日韩| 精品av一区二区| 国产一区日韩欧美| 欧美先锋影音| 99xxxx成人网| 久久成人麻豆午夜电影| 日韩激情视频在线播放| 亚洲精品中文字幕在线观看| 亚洲免费福利一区| 亚洲v精品v日韩v欧美v专区| 欧美视频精品| 福利片一区二区| 精品久久久久久中文字幕| 亚洲天堂男人| 奇米影视一区二区三区小说| 日韩精品免费视频人成| 成年人黄视频在线观看| 欧美无乱码久久久免费午夜一区| 欧美群妇大交群的观看方式| 国产农村妇女精品一二区| 精品国产综合区久久久久久| 欧美亚洲第一区| 欧美日韩亚洲三区| 91www在线| 国产精品av电影| 亚洲欧美激情精品一区二区| 国产精品电影一区二区三区| 久久福利网址导航| 国产suv一区二区三区88区| 亚洲天堂导航| 国产乱子伦视频一区二区三区| 成人日韩视频| 成人美女在线视频| 国产日产欧美精品| 国产精品一区二区久久精品爱涩| 又爽又大又黄a级毛片在线视频| 色婷婷av一区二区三区gif| 欧美日韩一区不卡| 国产精品久久久一区二区三区| 国产主播一区| 成人女人免费毛片| 欧美一区二区视频在线观看| 国产一区二区导航在线播放| 日韩国产精品久久久| 农村少妇一区二区三区四区五区| 粉嫩一区二区三区国产精品| 蜜桃av噜噜一区二区三| 黄色在线免费看| 国产欧美中文在线| 欧美1级2级| 国产精品视频一| 精品国精品国产尤物美女| 日韩在线观看免费全| 久久精品免视看| 中文字幕佐山爱一区二区免费| 国产日韩高清在线| 99这里只有久久精品视频| 国产亚洲成aⅴ人片在线观看| 欧美日韩中国免费专区在线看| 国产精品高潮呻吟久久av黑人| 日韩中文在线视频| 国产精品嫩草99av在线| 日日av拍夜夜添久久免费| 在线一区视频观看| h片在线观看视频免费免费| 亚洲精品美女久久久久| 日韩中文字幕精品视频| 99精品国产一区二区三区|