嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

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偽類表示如果標簽內容為空,那么內容區域如果帶有空格,也是不會被匹配到的!

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

最后解決辦法是:在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.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 亚洲欧美日韩国产中文| 亚洲人成在线观看| 精品成人一区二区三区| 欧美精品v日韩精品v韩国精品v| 欧美一区二区免费观在线| 亚洲伦理久久| 一区二区电影免费观看| av成人动漫| 亚洲一本大道在线| 午夜精品网站| 欧美一区激情| 国产欧美一区在线| 国产精品久久久久久影视| 国产精品嫩草99a| 99精品99| 亚洲午夜精品久久久久久浪潮 | 欧美国产高清| 欧美三区视频| 国产精品色午夜在线观看| 国产精品有限公司| 在线观看中文字幕不卡| 亚洲精品国产精品乱码不99| 正在播放欧美视频| 久久成人资源| 亚洲人成网站色ww在线| 午夜在线观看免费一区| 欧美+亚洲+精品+三区| 欧美超级免费视 在线| 国产精品女人网站| 亚洲日韩第九十九页| 久久久亚洲一区| 一区二区免费在线观看| 欧美精品乱人伦久久久久久 | 亚洲夜晚福利在线观看| 欧美裸体一区二区三区| 香蕉亚洲视频| 日韩香蕉视频| 欧美激情国产精品| 在线精品亚洲一区二区| 午夜免费在线观看精品视频| 日韩视频免费观看高清在线视频| 欧美自拍偷拍午夜视频| 国产一区二区久久久| 亚洲综合国产精品| 中文国产一区| 91久久线看在观草草青青| 欧美在线3区| 国产亚洲成av人在线观看导航| 日韩亚洲一区二区| 日韩性生活视频| 国产欧美精品久久| 乱人伦精品视频在线观看| 久久久久九九九九| 精品91在线| 日韩一区二区高清| 国产毛片一区| 亚洲精品黄网在线观看| 欧美日韩1区2区3区| 亚洲欧美国产毛片在线| 午夜精品国产精品大乳美女| 狠狠88综合久久久久综合网| 亚洲国产精品久久久久秋霞影院| 欧美日韩一区免费| 亚洲图片欧洲图片日韩av| 国产欧美精品一区aⅴ影院| 欧美a级大片| 国产精品亚洲一区二区三区在线| 久久久久久久久伊人| 欧美精品一区二区三| 久久久人成影片一区二区三区观看| 牛牛影视久久网| 欧美伊人精品成人久久综合97| 久久久久久久一区二区三区| 欧美一区二区三区四区夜夜大片| 美女国产一区| 欧美成人一区二免费视频软件| 国产精品美女一区二区在线观看| 久久性色av| 国产精品欧美久久久久无广告| 久久久人成影片一区二区三区观看 | 久久青青草综合| 欧美视频在线观看免费网址| 亚洲黄页视频免费观看| 曰韩精品一区二区| 久久女同精品一区二区| 亚洲第一精品夜夜躁人人躁 | 久久―日本道色综合久久| 亚洲精品久久久久中文字幕欢迎你| 性欧美大战久久久久久久免费观看 | 蜜乳av另类精品一区二区| 久久综合图片| 亚洲欧洲在线免费| 欧美黄色一区二区| 一区二区三区你懂的| 久久久久久久综合狠狠综合| 一区免费观看| 国产精品www.| 六十路精品视频| 亚洲在线观看视频网站| 裸体歌舞表演一区二区| 一区二区三区欧美成人| 好吊一区二区三区| 欧美日韩成人免费| 国产精品一区免费在线观看| 久久久久久久国产| 亚洲综合999| 久久久久久久综合| 亚洲一级电影| 欧美人体xx| 欧美精品自拍| 久久免费的精品国产v∧| 久久福利资源站| 久久久之久亚州精品露出| 国产乱码精品一区二区三| 亚洲国产精品激情在线观看| 亚洲性xxxx| 一区二区激情视频| 欧美激情欧美狂野欧美精品 | 久久久亚洲一区| 午夜精品福利视频| 亚洲一区二区在线播放| 99热免费精品在线观看| 欧美韩日一区| 久久精品国产清高在天天线| 久久伊人精品天天| 亚洲日本欧美天堂| 欧美激情成人在线| 免费不卡亚洲欧美| 欧美寡妇偷汉性猛交| 欧美高清在线观看| 亚洲欧洲一二三| 欧美电影打屁股sp| 亚洲国产aⅴ天堂久久| 亚洲国内精品| 一区二区三欧美| 亚洲欧美资源在线| 久久国产成人| 欧美日韩高清在线一区| 国产精品www.| 在线成人h网| 亚洲视频一区在线| 美女尤物久久精品| 一区二区三区四区国产| 午夜精品一区二区三区在线播放 | 国产日韩一区| 夜夜嗨av一区二区三区中文字幕| 国产精品日日摸夜夜摸av| 欧美欧美全黄| 亚洲第一中文字幕在线观看| 一区二区三区视频在线播放| 久久激情五月婷婷| 亚洲视频免费观看| 欧美高清在线一区二区| 黄色av一区| 美女久久一区| 久久精品亚洲一区二区三区浴池| 欧美性jizz18性欧美| 夜夜嗨av一区二区三区中文字幕| 久久日韩精品| 久久经典综合| 国内成+人亚洲| 香蕉成人久久| 欧美专区日韩专区| 国产欧美日韩精品丝袜高跟鞋| 亚洲视频一起| 亚洲无亚洲人成网站77777| 欧美日韩国产一级| 亚洲天堂成人在线视频| 亚洲美女在线看| 国产精品激情| 麻豆成人在线播放| 欧美高清视频在线播放| 亚洲天堂av在线免费观看| 欧美一区2区三区4区公司二百| 国产精品免费一区二区三区在线观看| 亚洲专区一区二区三区| 亚洲一区二区不卡免费| 激情一区二区三区| 亚洲欧美日韩在线| 91久久国产综合久久| 亚洲一区久久久| 狠狠色噜噜狠狠色综合久| 欧美成人第一页| 欧美午夜不卡| 亚洲国产成人在线| 国产精品一区二区你懂得| 亚洲国产二区| 国产精品亚洲综合色区韩国| 蜜臀a∨国产成人精品 | 久久久国产视频91| 久久av一区二区三区亚洲| 麻豆成人在线播放| 久久精品国语| 国产精品视频1区| av成人免费观看| 99在线精品视频在线观看| 久久成人资源| 欧美一区日韩一区| 国产精品进线69影院| 一区二区三区黄色|