Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产成人精品免费视频动漫,亚洲视频第一页,日本午夜在线观看免费视频

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          CSS 選擇器總結(jié)

          CSS 選擇器總結(jié)

          SS 是用于網(wǎng)頁設(shè)計(jì)可用的最強(qiáng)大的工具之一。使用它我們可以在幾分鐘內(nèi)改變一個(gè)網(wǎng)站的界面,而不用改變頁面的標(biāo)簽。

          好一段時(shí)間不用 CSS ,有一些基礎(chǔ)知識的記憶有點(diǎn)模糊了,今天再做一次總結(jié)記錄,方便日后回顧復(fù)習(xí)。

          選擇器分類

          在 CSS 中,選擇器可分為以下幾類:

          • 基本選擇器(通配選擇器、元素選擇器、類選擇器、ID 選擇器、群組選擇器)
          • 層次選擇器
          • 屬性選擇器
          • 偽類選擇器
          • 偽元素

          基本選擇器比較好記,這里就不浪費(fèi)篇幅,主要是記錄一下后三、幾種選擇器。

          層次選擇器

          選擇器

          類型

          功能描述

          E F

          后代選擇器(包含選擇器)

          選擇匹配的F元素,且匹配的F元素被包含在匹配的E元素內(nèi)

          E>F

          子元素選擇器

          選擇匹配的F元素,且匹配的F元素所匹配的E元素的子元素

          E+F

          相鄰兄弟選擇器

          選擇匹配的F元素,且匹配的F元素緊位于匹配的E元素的后面

          E~F

          通用選擇器

          選擇匹配的F元素,且位于匹配的E元素后的所有匹配的F元素

          • 在后代選擇器中,規(guī)則左邊的選擇器一端包括兩個(gè)或多個(gè)用空格分隔的選擇器。選擇器之間的空格是一種結(jié)合符(combinator)。每個(gè)空格結(jié)合符可以解釋為“... 在 ... 找到”、“... 作為 ... 的一部分”、“... 作為 ... 的后代”,但是要求必須從右向左讀選擇器。
          • 如果不希望選擇任意的后代元素,而是希望縮小范圍,只選擇某個(gè)元素的直接子元素,請使用子元素選擇器(Child selector)。
          • 如果需要選擇緊接在另一個(gè)元素后的元素,而且二者有相同的父元素,可以使用相鄰兄弟選擇器(Adjacent sibling selector)。

          屬性選擇器

          選擇器

          功能描述

          [attribute]

          用于選取帶有指定屬性的元素。

          [attribute=value]

          用于選取帶有指定屬性和值的元素。

          [attribute~=value]

          用于選取屬性值中包含指定詞匯的元素。

          [attribute|=value]

          用于選取帶有以指定值開頭的屬性值的元素,該值必須是整個(gè)單詞。

          [attribute^=value]

          匹配屬性值以指定值開頭的每個(gè)元素。

          [attribute$=value]

          匹配屬性值以指定值結(jié)尾的每個(gè)元素。

          [attribute*=value]

          匹配屬性值中包含指定值的每個(gè)元素。

          如果希望選擇有某個(gè)屬性的元素,而不論屬性值是什么,可以使用簡單屬性選擇器:

          a[href] {}
          

          還可以根據(jù)多個(gè)屬性進(jìn)行選擇,只需將屬性選擇器鏈接在一起即可:

          a[href][title] {}
          

          除了選擇擁有某些屬性的元素,還可以進(jìn)一步縮小選擇范圍,只選擇有特定屬性值的元素:

          a[href='www.abc.com'] {}
          

          也可以把多個(gè)屬性-值選擇器鏈接在一起來選擇一個(gè)文檔:

          a[href="www.abc.com"][title="abc"] {}
          

          偽類選擇器

          動態(tài)偽類選擇器

          選擇器

          類型

          功能描述

          E:link

          鏈接偽類選擇器

          選擇匹配的E元素,而且匹配元素被定義了超鏈接并未被訪問過。常用于鏈接錨點(diǎn)上

          E:visited

          鏈接偽類選擇器

          選擇匹配的E元素,而且匹配元素被定義了超鏈接并已被訪問過。常用于鏈接錨點(diǎn)上

          E:active

          用戶行為選擇器

          選擇匹配的E元素,且匹配元素被激活。常用于鏈接錨點(diǎn)和按鈕上

          E:hover

          用戶行為選擇器

          選擇匹配的E元素,且用戶鼠標(biāo)停留在元素E上。

          E:focus

          用戶行為選擇器

          選擇匹配的E元素,而且匹配元素獲取焦點(diǎn)

          目標(biāo)偽類選擇器

          選擇器

          功能描述

          E:target

          選擇匹配E的所有元素,且匹配元素被相關(guān)URL指向

          UI元素狀態(tài)偽類選擇器

          選擇器

          類型

          功能描述

          E:checked

          選中狀態(tài)偽類選擇器

          匹配選中的復(fù)選按鈕或者單選按鈕表單元素

          E:enabled

          啟用狀態(tài)偽類選擇器

          匹配所有啟用的表單元素

          E:disabled

          不可用狀態(tài)偽類選擇器

          匹配所有禁用的表單元素

          結(jié)構(gòu)偽類選擇器

          選擇器

          功能描述

          E:first-child

          作為父元素的第一個(gè)子元素的元素E。與E:nth-child(1)等同

          E:last-child

          作為父元素的最后一個(gè)子元素的元素E。與E:nth-last-child(1)等同

          E:root

          選擇匹配元素E所在文檔的根元素。在HTML文檔中,根元素始終是html,此時(shí)該選擇器與html類型選擇器匹配的內(nèi)容相同

          E F:nth-child(n)

          選擇父元素E的第n個(gè)子元素F。其中n可以是整數(shù)(1,2,3)、關(guān)鍵字(even,odd)、可以是公式(2n+1),而且n值起始值為1,而不是0.

          E F:nth-last-child(n)

          選擇父元素E的倒數(shù)第n個(gè)子元素F。此選擇器與E:nth-child(n)選擇器計(jì)算順序剛好相反,但使用方法都是一樣的,其中:nth-last-child(1)始終匹配最后一個(gè)元素,與last-child等同

          E:nth-of-type(n)

          選擇父元素內(nèi)具有指定類型的第n個(gè)E元素

          E:nth-last-of-type(n)

          選擇父元素內(nèi)具有指定類型的倒數(shù)第n個(gè)E元素

          E:first-of-type

          選擇父元素內(nèi)具有指定類型的第一個(gè)E元素,與E:nth-of-type(1)等同

          E:last-of-type

          選擇父元素內(nèi)具有指定類型的最后一個(gè)E元素,與E:nth-last-of-type(1)等同

          E:only-child

          選擇父元素只包含一個(gè)子元素,且該子元素匹配E元素

          E:only-of-type

          選擇父元素只包含一個(gè)同類型子元素,且該子元素匹配E元素

          E:empty

          選擇沒有子元素的元素,而且該元素也不包含任何文本節(jié)點(diǎn)

          否定偽類選擇器

          選擇器

          功能描述

          E:not(F)

          匹配所有除元素F外的E元素

          總結(jié)

          CSS 可以說是前端的基本技能,希望我們都能夠通過 CSS 為自己繪制色彩繽紛的前端生涯!

          ~

          ~

          ~ 本文完

          學(xué)習(xí)有趣的知識,結(jié)識有趣的朋友,塑造有趣的靈魂!

          大家好!我是〖編程三昧〗的作者 隱逸王,我的公眾號是『編程三昧』,歡迎關(guān)注,希望大家多多指教!

          知識與技能并重,內(nèi)力和外功兼修,理論和實(shí)踐兩手都要抓、兩手都要硬!

          章目錄

          一 bootstrap 時(shí)間日期日歷控件datetimepicker

          應(yīng)用

          涉及的樣式

          圖片樣式展示

          pc

          手機(jī)

          屬性及使用示例

          可用屬性列表

          示例1:2017-03-30 上午 09:50

          示例2:2017-03-30

          示例3:僅選擇時(shí)間

          2.3 weekStart 一周從那一天開始

          2.4 startDate 開始時(shí)間

          2.5 endDate 結(jié)束時(shí)間

          2.6 daysOfWeekDisabled 一周禁用的日期

          2.7 autoclose 是否自動關(guān)閉日期選擇器

          2.8 startView 日期時(shí)間選擇器打開之后首先顯示的視圖。

          2.9 minView 日期時(shí)間選擇器所能提供的最精確的時(shí)間選擇視圖

          2.10 maxView 日期選擇器最高能展示的范圍視圖

          2.11 todayBtn 是否顯示'today'按鈕

          2.12 todayHighlight 當(dāng)天日期高亮

          2.13 keyboardNavigation 方向鍵改變?nèi)掌?/p>

          2.14 language 語言

          2.15 forceParse 強(qiáng)制解析

          2.16 minuteStep 步進(jìn)值

          2.17 pickerPosition 選擇框的位置

          2.18 showMeridian 是否顯示上午/下午

          2.19 initialDate 初始化日期時(shí)間

          3.1綁定輸入框,并設(shè)置format選項(xiàng)

          3.2作為組件使用:

          3.3時(shí)間范圍選擇聯(lián)動

          具體屬性展示

          一 bootstrap 時(shí)間日期日歷控件datetimepicker

          應(yīng)用

          手機(jī)

          pc

          涉及的樣式

          <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

          <link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet">


          <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

          <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

          <script src="static/js/moment-with-locales.js"></script>

          <script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

          1

          2

          3

          4

          5

          6

          7

          圖片樣式展示

          pc

          <div class="col-sm-4">

          <div class="input-group">

          <span class="input-group-addon">開始日期</span>

          <a class='input-group date' id='datetimepicker3'>

          <input type='text' class="form-control" id="startDate" readonly/>

          <span class="input-group-addon">

          <span class="glyphicon glyphicon-calendar"></span>

          </span>

          </a>

          <span class="input-group-addon">~</span>

          <span class="input-group-addon">結(jié)束日期</span>

          <a class='input-group date' id='datetimepicker4'>

          <input type='text' class="form-control" id="endDate" readonly/>

          <span class="input-group-addon">

          <span class="glyphicon glyphicon-calendar"></span>

          </span>

          </a>


          </div>

          </div>


          <div class="form-group col-lg-6">

          <div class="input-group">

          <span class="input-group-addon">活動結(jié)束日期</span>

          <a class='input-group date' id='datetimepicker2'>

          <input type='text' class="form-control" id="activityEnd" name="activityEnd"/>

          <span class="input-group-addon">

          <span class="glyphicon glyphicon-calendar"></span>

          </span>

          <span class="input-group-addon" style="color:#F00">*</span>

          </a>

          </div>

          </div>


          手機(jī)

          <div class="form-group">

          <div class="input-group date form_date" id="datepicker" data-date="" data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd" style="width:92%;">

          <input class="form-control" size="16" type="text" value="${initialDate}" name="PARAM9" readonly="readonly" id="PARAM9">

          <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>

          </div>

          <input type="hidden" id="dtp_input2" value="" />

          </div>

          1

          2

          3

          4

          5

          6

          7

          屬性及使用示例

          <input type="text" readonly class="date" data-link-field="date" />

          <input type="hidden" id="date" />

          $('.date').datetimepicker();

          1

          2

          3

          選中的日期會被存放在id為date的input里。

          //設(shè)置日期時(shí)間控件

          $('#datetimepicker1').datetimepicker({

          language: 'zh-CN',//顯示中文

          format: 'yyyy-mm-dd hh:ii:ss',//顯示格式

          minView: 0,//設(shè)置只顯示到月份

          initialDate: new Date(),

          autoclose: true,//選中自動關(guān)閉

          todayBtn: true,//顯示今日按鈕

          locale: moment.locale('zh-cn')

          });

          要:在本文中,將重點(diǎn)關(guān)注網(wǎng)頁的初始渲染,即它從解析 HTML 開始。 我將探索可能導(dǎo)致高渲染時(shí)間的問題,以及如何解決它們。

          本文分享自華為云社區(qū)《頁面首屏渲染性能指南-云社區(qū)-華為云》,作者:Ocean2022。

          我們知道渲染頁面是一個(gè)將服務(wù)器的響應(yīng)內(nèi)容翻譯成圖片的過程。但是,如果你頁面的渲染性能比較糟糕的話,可能會帶來相對較高的跳出率。

          在本文中,我將重點(diǎn)關(guān)注網(wǎng)頁的初始渲染,即它從解析 HTML 開始。 我將探索可能導(dǎo)致高渲染時(shí)間的問題以及如何解決它們。

          關(guān)鍵渲染路徑(CRP)

          關(guān)鍵渲染路徑 (CRP) 是瀏覽器將代碼轉(zhuǎn)換為屏幕上可顯示像素的過程。 它有幾個(gè)階段,其中一些可以并行執(zhí)行以節(jié)省時(shí)間,但有些部分必須依次完成。 如下圖所示:

          首先,一旦瀏覽器得到響應(yīng),它就會開始解析它。 當(dāng)它遇到依賴項(xiàng)時(shí),它會嘗試下載它。 如果它是一個(gè)樣式表文件,瀏覽器必須在渲染頁面之前完全解析它,這就是為什么 CSS 會阻塞渲染的原因。

          如果是腳本,瀏覽器必須:停止解析,下載腳本,然后運(yùn)行。 只有在那之后它才能繼續(xù)解析,因?yàn)?JavaScript 程序可以改變網(wǎng)頁的內(nèi)容(尤其是 HTML)。 這就是為什么 JS 會阻塞解析的原因。

          完成所有解析后,瀏覽器將構(gòu)建文檔對象模型 (DOM) 和級聯(lián)樣式表對象模型 (CSSOM)。 將它們組合在一起得到渲染樹。 頁面的不顯示部分不會進(jìn)入渲染樹,因?yàn)樗话L制頁面所需的數(shù)據(jù)。

          倒數(shù)第二步是將渲染樹進(jìn)行布局, 這個(gè)階段也稱為回流:就是計(jì)算每個(gè)渲染樹節(jié)點(diǎn)的每個(gè)位置及其大小的地方。

          最后一步是繪制。 它會根據(jù)瀏覽器在前一階段計(jì)算得到的數(shù)據(jù)對像素進(jìn)行著色。

          優(yōu)化相關(guān)結(jié)論

          因此,根據(jù)這一過程,我們在優(yōu)化性能方面,得出了一些結(jié)論。如果你要提升頁面初始化渲染的性能,你需要:

          • 減少傳輸?shù)臄?shù)據(jù)量
          • 減少瀏覽器必須下載的資源數(shù)量(尤其是阻塞的資源)
          • 減小 CRP 的長度

          同時(shí),我們會根據(jù)下面 3 個(gè)指標(biāo)來衡量優(yōu)化的效率:

          • FP(First Paint)
          • FCP(First Contentful Paint)
          • FMP(First Meaningful Paint)

          除了渲染時(shí)間之外,還有其他一些因素也需要考慮。例如,你的頁面使用了多少阻塞資源以及下載它們需要多長時(shí)間

          性能優(yōu)化策略

          鑒于我們在上面得出的結(jié)論,我們得出網(wǎng)站性能優(yōu)化有三種主要策略:

          1. 盡量減少通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量;
          2. 減少通過網(wǎng)絡(luò)傳輸?shù)馁Y源總數(shù);
          3. 縮短關(guān)鍵渲染路徑;

          1. 減少要傳輸?shù)臄?shù)據(jù)量

          首先,移除所有未使用的部分,例如 JavaScript 中無法訪問的函數(shù)、帶有從不匹配任何元素的選擇器的樣式以及被 CSS 永遠(yuǎn)隱藏的 HTML 標(biāo)簽。 其次,刪除所有重復(fù)項(xiàng)。

          然后,我建議建立一個(gè)自動壓縮過程。 例如,它應(yīng)該從你的后端服務(wù)中刪除所有注釋(但不是源代碼)以及每個(gè)不包含附加信息的字符(例如 JS 中的空白字符)。

          完成后,我們剩下的可以是文本字符串。 這意味著我們可以安全地應(yīng)用諸如 GZIP(大多數(shù)瀏覽器都理解)之類的壓縮算法。

          最后,還有緩存。 瀏覽器第一次呈現(xiàn)頁面時(shí)它不會有幫助,但它會在以后的訪問中節(jié)省很多。 但是,記住兩點(diǎn)至關(guān)重要:

          • 如果你使用 CDN,請確保支持緩存并在正確設(shè)置。
          • 與其等待資源的到期,不如 將文件的“指紋”嵌入到其 URL 中,以使本地緩存無效。

          當(dāng)然,應(yīng)該為每個(gè)資源定義緩存策略。 有些可能很少改變或根本不會改變,有的則是變化的很快,還有些文件包含敏感的信息(可以使用 “private” 防止 CDN 緩存私有數(shù)據(jù))

          2. 減少關(guān)鍵資源的總數(shù)

          “關(guān)鍵”僅指網(wǎng)頁正確呈現(xiàn)所需的資源。 因此,我們可以直接跳過所有流程中沒有涉及的樣式以及腳本文件。

          樣式

          為了告訴瀏覽器不需要特定的 CSS 文件,我們應(yīng)該為所有引用樣式表的鏈接設(shè)置媒體屬性。 使用這種方法,瀏覽器將只根據(jù)需要處理與當(dāng)前媒體(設(shè)備類型、屏幕尺寸)匹配的資源同時(shí)降低所有其他樣式表的優(yōu)先級。 例如,如果你將 media=“print” 屬性添加到引用樣式以打印頁面的樣式標(biāo)記,則這些樣式不會在不打印媒體時(shí)干擾你的關(guān)鍵渲染路徑

          為了進(jìn)一步改進(jìn)該過程,你還可以將一些樣式內(nèi)聯(lián)這可以為我們節(jié)省了至少一次到服務(wù)器的往返行程

          腳本

          如上所述,腳本會阻塞解析,因?yàn)樗鼈兛梢愿淖?DOM 和 CSSOM。 為了避免這一點(diǎn),所有腳本標(biāo)簽都必須用屬性標(biāo)記——異步或延遲。

          標(biāo)有 async 的腳本不會阻塞 DOM 構(gòu)建或 CSSOM,因?yàn)樗鼈兛梢栽?CSSOM 構(gòu)建之前執(zhí)行。 但請記住,內(nèi)聯(lián)腳本無論如何都會阻止 CSSOM,除非你將它們放在 CSS 之上。

          相比之下,標(biāo)有 defer 的腳本將在頁面加載結(jié)束時(shí)進(jìn)行執(zhí)行

          換句話說,使用 defer,腳本直到頁面加載事件被觸發(fā)后才會執(zhí)行,而 async 讓腳本在文檔被解析時(shí)就會在后臺運(yùn)行。

          3.縮短關(guān)鍵渲染路徑長度

          最后,應(yīng)將 CRP 長度縮短到可能的最小值。

          作為樣式標(biāo)簽屬性的媒體查詢將減少必須下載的資源總數(shù)。 script 標(biāo)簽屬性 defer 和 async 將防止相應(yīng)的腳本阻塞解析。

          使用 GZIP 壓縮、壓縮和歸檔資源將減少傳輸數(shù)據(jù)的大小(從而也減少數(shù)據(jù)傳輸時(shí)間)。

          內(nèi)聯(lián)一些樣式和腳本也可以減少瀏覽器和服務(wù)器之間的往返次數(shù)。

          按照最新的最佳性能實(shí)踐理念,一個(gè)網(wǎng)站應(yīng)該做的最快的第一件事就是展示 ATF 內(nèi)容。 ATF 代表首屏這是立即可見的區(qū)域,無需滾動。 因此,最好以首先加載所需樣式和腳本的方式重新排列與渲染相關(guān)的所有內(nèi)容,而其他所有內(nèi)容都停止(既不解析也不渲染)。

          結(jié)尾

          總而言之,網(wǎng)站性能優(yōu)化包含了網(wǎng)站響應(yīng)的各個(gè)方面,例如緩存、設(shè)置 CDN、重構(gòu)、資源優(yōu)化等,但是所有這些都可以逐步完成。 作為 Web 開發(fā)人員,你可以將本文作為參考,并始終記住在實(shí)驗(yàn)之前和之后測量性能。

          瀏覽器開發(fā)人員盡最大努力優(yōu)化你訪問的每個(gè)頁面的網(wǎng)站性能,這就是瀏覽器通常實(shí)現(xiàn)所謂的“預(yù)加載器”的原因。 這部分程序會在你以 HTML 格式請求的資源之前進(jìn)行掃描,以便一次發(fā)出多個(gè)請求并讓它們并行運(yùn)行。 這就是為什么在 HTML(逐行)以及腳本標(biāo)簽中保持樣式標(biāo)簽彼此靠近的原因。

          此外,嘗試批量更新 HTML 以避免多個(gè)布局事件這些事件不僅由 DOM 或 CSSOM 中的更改觸發(fā),而且在設(shè)備方向更改和窗口大小調(diào)整時(shí)也會觸發(fā)。

          點(diǎn)擊下方,第一時(shí)間了解華為云新鮮技術(shù)~

          華為云博客_大數(shù)據(jù)博客_AI博客_云計(jì)算博客_開發(fā)者中心-華為云


          主站蜘蛛池模板: 国产不卡视频一区二区三区| 日韩精品一区二区三区视频| 国产精品亚洲专区一区| 国产一区二区三区不卡在线观看 | 99在线精品一区二区三区| 国产三级一区二区三区| 无码国产精品一区二区免费式直播 | 一区二区不卡久久精品| 亚洲欧美日韩国产精品一区 | 中文字幕无码一区二区三区本日 | 色狠狠AV一区二区三区| 国产亚洲欧洲Aⅴ综合一区| 日本一区二区三区中文字幕| 日韩精品一区二区三区中文版| 亚洲av无码片区一区二区三区| 成人免费区一区二区三区| 国产精华液一区二区区别大吗| 国产AV国片精品一区二区| 一本色道久久综合一区| 人妻体内射精一区二区| 无码AⅤ精品一区二区三区| 国产在线观看一区二区三区四区| 日本一区二区三区四区视频| 国内精品视频一区二区三区| 天美传媒一区二区三区| 国产午夜精品一区二区三区极品 | 精品国产不卡一区二区三区| 一区二区精品久久| 波多野结衣的AV一区二区三区 | 日韩AV无码一区二区三区不卡毛片| 色视频综合无码一区二区三区| 免费人妻精品一区二区三区| 日韩精品一区二区午夜成人版| 一区二区三区四区精品| 中文字幕不卡一区| 日本一区二区在线播放| 亚洲色偷精品一区二区三区| 日韩精品电影一区| 国产亚洲一区二区三区在线不卡| 久久久91精品国产一区二区三区| 久久人妻av一区二区软件|