<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      前端一些概念知識及參考鏈接

       1、為什么瀏覽器解析 css 選擇器是從右到左的

      參考:https://github.com/zwwill/blog/issues/2

       

      2、偽元素和偽類的單冒號和雙冒號

      2.1、偽類(:)

      偽類是用于定義元素特殊狀態的。

      示例:

      //未訪問的連接
      a:link{
          color:black;
      };
      //已訪問的連接
      a:visited{
          color:gray;
      };
      //鼠標懸浮在鏈接上
      a:hover{
          color:red;
      };
      //已選擇的鏈接
      a:active{
          color:blue;
      };

       

      2.2、偽元素(::)

      CSS共右5個偽元素,分別是:

      1. ::before 在元素之前插入內容
      2. ::after 在元素之后插入內容
      3. ::first-letter 選取首個字母
      4. ::first-line 選取元素首行
      5. ::selection 匹配被用戶選取的部分

       

      3、重排(Reflow)和重繪(Repaint)

      當渲染樹中的一些元素需要更新屬性,而這些屬性只是影響元素的外觀、風格,而不會影響布局的操作,比如 background -color,我們將這樣的操作稱為重繪。

      當渲染樹中的一部分(或全部)因為元素的規模尺寸、布局、隱藏等改變而需要重新構建的操作,會影響到布局的操作,這樣 的操作我們稱為重排。

      任何會改變元素幾何信息(元素的位置和尺寸大小)的操作,都會觸發重排。

      1. 添加或者刪除可見的 DOM 元素;
      2. 元素尺寸改變——邊距、填充、邊框、寬度和高度
      3. 內容變化,比如用戶在 input 框中輸入文字
      4. 瀏覽器窗口尺寸改變——resize事件發生時
      5. 計算 offsetWidth 和 offsetHeight 屬性
      6. 設置 style 屬性的值
      7. 當你修改網頁的默認字體時。

      重排必定會引發重繪,但重繪不一定會引發重排。重排所需的成本比重繪高的多,改變父節點里的子節點很可能會導致父節點的一系列重排。

       

      3.1、如何避免重排和重繪

      避免措施:

      1. 使用 visibility 代替 display:hidden、none。
      2. 使用 absolute 或 fixed 脫離文檔流。
      3. 使用 class 去修改樣式,減少直接操作 dom 元素。
      4. 盡量減少 table使用,table 屬性的變化會直接導致布局重排或者重繪。

       

      4、JS操作動畫和css動畫的區別

      參考:https://blog.csdn.net/qinlulucsdn/article/details/80664183http://www.rzrgm.cn/simba-lkj/p/6139066.html

       

      5、CSS選擇器優先級

      !important > 行內樣式 > ID選擇器 > 類 = 偽類  = 屬性選擇器 > 標簽 = 偽元素 > 通配符 > 繼承

      為什么CSS是從右到左解析的,參考:http://www.rzrgm.cn/zhaodongyu/p/3341080.html

       

      6、BFC布局規則

      BFC,即塊級格式化上下文(Block Formatting Context,簡稱BFC),獨立渲染區域,不會影響邊界外的元素。可以理解為按照塊級元素從上到下,行內元素從左到右的規則布局。

      擁有 BFC 元素的塊級子元素符合 BFC 規則,屬于同一個BFC內的塊級元素的布局符合 BFC 布局規則。

      BFC 元素內的塊級子元素也可以是一個 BFC,該子元素還是會符合BFC父元素的布局規則,但該子元素里面的子元素即子子元素就和外面的BFC的子元素不屬于同一個BFC了。

      下面的第一個P元素和第二個P元素不屬于同一個 BFC 內:

      <body>
        <p>Haha</p>
        <div class="wrap">
           <p>Hehe</p>
        </div>
      </body>
      .wrap {
          overflow: hidden;
      }

       

      6.1、擁有 BFC 元素具有的特性

      BFC 元素的特性如下:

      1. 內部的 Box 會在垂直方向,一個接一個地放置。
      2. 盒子垂直方向的距離由margin決定。同一個BFC的兩個相鄰盒子margin會重疊
      3. BFC中,margin-left會觸碰到border-left(對于從左至右的方式,反之)
      4. BFC 區域不會與浮動的盒子產生交集,而是緊貼邊緣浮動
      5. 計算BFC高度時,會自動檢測浮動的盒子高度

       

      6.2、擁有BFC的元素

      滿足下列條件之一該元素即擁有 BFC 特性:

      1. 根元素 html
      2. 脫離文檔流:float 屬性不為 none
      3. position為 absolute 或 fixed
      4. display 為 inline-block, table-cell, table-caption, flex, inline-flex
      5. overflow 不為 visible

       

      6.3、BFC的作用

      1. 解決外邊距合并問題
      2. 解決因子元素浮動而父元素高度塌陷的問題。父元素設置為BFC可以清除子元素的浮動(最常用overflow: hidden,在IE6上需加上*zoom:1),因為計算BFC高度時會檢測浮動子盒子高度
      3. 右側盒子自適應:BFC區域不會與浮動盒子產生交集,而是緊貼浮動邊緣

       

      7、瀏覽器前綴

      參考:https://blog.csdn.net/jlj_cs/article/details/44204863

       

      8、css性能優化

      8.1、慎重選擇高消耗的樣式

      高消耗屬性在繪制前需要瀏覽器進行大量計算,比如:box-shadows、border-radius、transparency、transforms、CSS filters(性能殺手)

      8.2、避免頻繁重排

      當發生重排的時候,瀏覽器需要重新計算布局位置與大小,常見的重排元素:width、height、padding、margin、display、border-width、position、top、left、right、bottom、

      8.3、不泛濫使用float

      Float在渲染時計算量比較大,盡量減少使用。

      8.4、合理使用選擇器

      CSS選擇器的匹配是從右向左進行的,所以有些看似很高效的選擇器實際對性能消耗很高,比如:

      #header>a {font-size: bold}    子選擇器,瀏覽器必須遍歷頁面中所有的 a 元素并且確定其父元素的 id 是否為 header 。
      #header a {font-size: bold}    后代選擇器開銷更大,在遍歷頁面中所有 a 元素后還需向其上級遍歷直到根節點。

      所以應該合理使用選擇器:

      • 保持簡單,不要使用嵌套過多過于復雜的選擇器。
      • 通配符和屬性選擇器效率最低,需要匹配的元素最多,盡量避免使用。
      • 避免使用標簽或 class 選擇器限制 id 選擇器
      • 不要為了追求速度而放棄可讀性與可維護性。

      8.5、通過CSS繼承減少代碼量

      常見的可以繼承的屬性比如:color,字體font系列,visibility,文本系列text-indent、text-align等等。

      不可繼承的比如:position,display,float,background等

      8.6、使用link加載樣式表,而不是@import方式

      使用@import引入CSS會影響瀏覽器對樣式表的并行下載。使用@import引用的CSS文件只有在引用它的那個css文件被下載、解析之后,瀏覽器才會知道還有另外一個css需要下載,這時才去下載,然后下載后開始解析、構建render tree等一系列操作。這就導致瀏覽器無法并行下載所需的樣式文件。

      8.7、精簡樣式文件,刪除沒用樣式

      參考:http://baijiahao.baidu.com/s?id=1603253323416106525&wfr=spider&for=pc

       

      9、ASCII 、UTF-8、Unicode編碼的區別

      ASCII 編碼是計算機一開始使用的編碼,用一個字節來表示一個字符。由于計算機是美國人發明的,因此,最早只有127個字符被編碼到計算機里,也就是大小寫英文字母、數字和一些符號。

      后面為了統一各個國家的使用的編碼規則,Unicode應運而生。Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。(亂碼問題主要是使用的編碼不同導致)

      參考:http://www.rzrgm.cn/angelye/p/8249711.html#top

       

      10、defer和async區別

      html文件都是按順序執行的,script標簽中沒有加defer和async時,瀏覽器在解析文檔時遇到script標簽就會停止解析阻塞文檔解析,先加載JS文件,加載完之后立即執行,執行完畢后才能繼續解析文檔。 而在script標簽中寫入defer或者async時,就會使JS文件異步加載,即html執行到script標簽時,JS加載和文檔解析同時進行,而async是在JS加載完成后立即執行JS腳本,阻塞文檔解析,而defer則是JS加載完成后,在文檔解析完成后執行JS腳本。
       
       
      posted @ 2019-03-31 11:55  wenxuehai  閱讀(318)  評論(0)    收藏  舉報
      //右下角添加目錄
      主站蜘蛛池模板: 人妻中文字幕不卡精品| 中文字幕久久人妻熟人妻| 国产JJIZZ女人多水喷水| 乱子伦视频在线看| 国产三级精品片| 老熟妇乱子交视频一区| 少妇和邻居做不戴套视频| 亚洲色成人网站www永久男男| 久播影院无码中文字幕| 精品视频一区二区三区不卡| 欧美成人精品三级网站| 麻豆亚洲精品一区二区| 国产免费高清69式视频在线观看| 少妇午夜啪爽嗷嗷叫视频| 色综合色天天久久婷婷基地| 亚洲av精选一区二区| 少妇人妻偷人精品免费| 一边捏奶头一边高潮视频| 亚洲鸥美日韩精品久久| 精品黄色av一区二区三区| 国产精品毛片一区二区| 成人3D动漫一区二区三区| 国产极品美女高潮抽搐免费网站 | 妺妺窝人体色www看美女| 色综合一本到久久亚洲91| 久久一区二区中文字幕| 色国产视频| 国产精品久久无码不卡黑寡妇| 男人天堂亚洲天堂女人天堂| 十九岁的日本电影免费观看| 欧洲中文字幕国产精品| 国产成人午夜在线视频极速观看| 午夜av高清在线观看| 正在播放酒店约少妇高潮| 免费国产精品黄色一区二区| 少妇人妻真实偷人精品| 国产欧美日韩精品丝袜高跟鞋| 国产内射性高湖| 国产高清视频一区二区三区| 亚洲国产日韩欧美一区二区三区| 亚洲欧美综合中文|