精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

2021 年你需要知道的 CSS 工程化技術(shù)

開發(fā) 前端
最近業(yè)務(wù)調(diào)整,組內(nèi)開啟了前端工程化方面的基建,我主要負責(zé) CSS 技術(shù)選型這一塊,針對目前業(yè)界主流的幾套方案進行了比較完善的調(diào)研與比較,分享給大家。

 最近業(yè)務(wù)調(diào)整,組內(nèi)開啟了前端工程化方面的基建,我主要負責(zé) CSS 技術(shù)選型這一塊,針對目前業(yè)界主流的幾套方案進行了比較完善的調(diào)研與比較,分享給大家。

目前整個 CSS 工具鏈、工程化領(lǐng)域的主要方案如下:

而我們技術(shù)選型的標準如下:

  •  開發(fā)速度快
  •  開發(fā)體驗友好
  •  調(diào)試體驗友好
  •  可維護性友好
  •  擴展性友好
  •  可協(xié)作性友好
  •  體積小
  •  有最佳實踐指導(dǎo)

目前主要需要對比的三套方案:

  •  Less/Sass + PostCSS 的純 CSS c側(cè)方案
  •  styled-components / emotion 的純 CSS-in-JS 側(cè)方案
  •  TailwindCSS 的以寫輔助類為主的 HTML 側(cè)方案

純 CSS 側(cè)方案

介紹與優(yōu)點

維護狀態(tài):一般

Star 數(shù):16.7K

支持框架:無框架限制

項目地址:https://github.com/less/less.js

Less/Sass + PostCSS 這種方案在目前主流的組件庫和企業(yè)級項目中使用很廣,如 ant-design 等

它們的主要作用如下:

  •  為 CSS 添加了類似 JS 的特性,你也可以使用變量、mixin,寫判斷等
  •  引入了模塊化的概念,可以在一個 less 文件中導(dǎo)入另外一個 less 文件進行使用
  •  兼容標準,可以快速使用 CSS 新特性,兼容瀏覽器 CSS 差異等

這類工具能夠與主流的工程化工具一起使用,如 Webpack,提供對應(yīng)的 loader 如 sass-loader,然后就可以在 React/Vue 項目中建 .scss 文件,寫 sass 語法,并導(dǎo)入到 React 組件中生效。

比如我寫一個組件在響應(yīng)式各個斷點下的展示情況的 sass 代碼: 

  1. .component {  
  2.   width: 300px;  
  3.   @media (min-width: 768px) {  
  4.     width: 600px;  
  5.     @media  (min-resolution: 192dpi) {  
  6.       background-image: url(/img/retina2x.png);  
  7.     }  
  8.   }  
  9.   @media (min-width: 1280px) {  
  10.     width: 800px;  
  11.   }  

或?qū)胍恍┯糜跇藴驶癁g覽器差異的代碼: 

  1. @import "normalize.css";   
  2. // component 相關(guān)的其他代碼 

不足

這類方案的一個主要問題就是,只是對 CSS 本身進行了增強,但是在幫助開發(fā)者如何寫更好的 CSS、更高效、可維護的 CSS 方面并沒有提供任何建議。

  •  你依然需要自己定義 CSS 類、id,并且思考如何去用這些類、id 進行組合去描述 HTML 的樣式
  •  你依然可能會寫很多冗余的 Less/Sass 代碼,然后造成項目的負擔(dān),在可維護性方面也有巨大問題

優(yōu)化

  •  可以引入 CSS 設(shè)計規(guī)范:BEM 規(guī)范,來輔助用戶在整個網(wǎng)頁的 HTML 骨架以及對應(yīng)的類上進行設(shè)計
  •  可以引入 CSS Modules,將 CSS 文件進行 “作用域” 限制,確保在之后維護時,修改一個內(nèi)容不會引起全局中其他樣式的效果

BEM 規(guī)范

B (Block)、E(Element)、M(Modifier),具體就是通過塊、元素、行為來定義所有的可視化功能。

拿設(shè)計一個 Button 為例: 

  1. /* Block */  
  2. .btn {}  
  3. /* 依賴于 Block 的 Element */  
  4. .btn__price {}  
  5. /* 修改 Block 風(fēng)格的 Modifier */  
  6. .btn--orange {}  
  7. .btn--big {} 

遵循上述規(guī)范的一個真實的 Button: 

  1. <a class="btn btn--big btn--orange" href="#">  
  2.   <span class="btn__price">$3</span>  
  3.   <span class="btn__text">BIG BUTTON</span>  
  4. </a> 

可以獲得如下的效果:

CSS Modules

CSS Modules 主要為 CSS 添加局部作用域和模塊依賴,使得 CSS 也能具有組件化。

一個例子如下: 

  1. import React from 'react';  
  2. import style from './App.css';  
  3. export default () => {  
  4.   return (  
  5.     <h1 className={style.title}>  
  6.       Hello World  
  7.     </h1>  
  8.   );  
  9. };  
  1. .title {  
  2.   composes: className;  
  3.   color: red;  

上述經(jīng)過編譯會變成如下 hash 字符串: 

  1. <h1 class="_3zyde4l1yATCOkgn-DBWEL">  
  2.   Hello World 
  3. </h1>  
  1. ._3zyde4l1yATCOkgn-DBWEL {  
  2.   color: red;  
  3.  

CSS Modules 可以與普通 CSS、Less、Sass 等結(jié)合使用。

純 JS 側(cè)方案

介紹與優(yōu)點   

維護狀態(tài):一般

Star 數(shù):35.2K

 支持框架:React ,通過社區(qū)支持 Vue 等框架

項目地址:https://github.com/styled-components/styled-components

使用 JS 的模板字符串函數(shù),在 JS 里面寫 CSS 代碼,這帶來了兩個認知的改變:

  •  不是在根據(jù) HTML,然后去寫 CSS,而是站在組件設(shè)計的角度,為組件寫 CSS,然后應(yīng)用組件的組合思想搭建大應(yīng)用
  •  自動提供類似 CSS Modules 的體驗,不用擔(dān)心樣式的全局污染問題

同時帶來了很多 JS 側(cè)才有的各種功能特性,可以讓開發(fā)者用開發(fā) JS 的方式開發(fā) CSS,如編輯器自動補全、Lint、編譯壓縮等。

比如我寫一個按鈕: 

  1. const Button = styled.button`  
  2.   /* Adapt the colors based on primary prop */  
  3.   background: ${props => props.primary ? "palevioletred" : "white"};  
  4.   color: ${props => props.primary ? "white" : "palevioletred"};  
  5.   font-size: 1em; 
  6.   margin: 1em;  
  7.   padding: 0.25em 1em;  
  8.   border: 2px solid palevioletred;  
  9.   border-radius: 3px;  
  10. `;  
  11. render(  
  12.   <div>  
  13.     <Button>Normal</Button>  
  14.     <Button primary>Primary</Button>  
  15.   </div>  
  16. ); 

可以獲得如下效果:

還可以擴展樣式: 

  1. // The Button from the last section without the interpolations  
  2. const Button = styled.button` 
  3.   color: palevioletred;  
  4.   font-size: 1em;  
  5.   margin: 1em;  
  6.   padding: 0.25em 1em;  
  7.   border: 2px solid palevioletred;  
  8.   border-radius: 3px;  
  9. `;  
  10. // A new component based on Button, but with some override styles  
  11. const TomatoButton = styled(Button)`  
  12.   color: tomato;  
  13.   border-color: tomato;  
  14. `;  
  15. render(  
  16.   <div> 
  17.     <Button>Normal Button</Button>  
  18.     <TomatoButton>Tomato Button</TomatoButton>  
  19.   </div>  
  20. ); 

可以獲得如下效果:

不足

雖然這類方案提供了在 JS 中寫 CSS,充分利用 JS 的插值、組合等特性,然后應(yīng)用 React 組件等組合思想,將組件與 CSS 進行細粒度綁定,讓 CSS 跟隨著組件一同進行組件化開發(fā),同時提供和組件類似的模塊化特性,相比 Less/Sass 這一套,可以復(fù)用 JS 社區(qū)的最佳實踐等。

但是它仍然有一些不足:

  •  仍然是是對 CSS 增強,提供非常大的靈活性,開發(fā)者仍然需要考慮如何去組織自己的 CSS
  •  沒有給出一套 “有觀點” 的最佳實踐做法
  •  在上層也缺乏基于 styled-components 進行復(fù)用的物料庫可進行參考設(shè)計和使用,導(dǎo)致在初始化使用時開發(fā)速度較低
  •  在 JS 中寫 CSS,勢必帶來一些本屬于 JS 的限制,如 TS 下,需要對 Styled 的組件進行類型注釋
  •  官方維護的內(nèi)容只兼容 React 框架,Vue 和其他框架都由社區(qū)提供支持

整體來說不太符合團隊協(xié)作使用,需要人為總結(jié)最佳實踐和規(guī)范等。

優(yōu)化

  •  尋求一套寫 CSS 的最佳實踐和團隊協(xié)作規(guī)范
  •  能夠擁有大量的物料庫或輔助類等,提高開發(fā)效率,快速完成應(yīng)用開發(fā)

偏向 HTML 側(cè)方案

介紹與優(yōu)點

 

維護狀態(tài):積極

Star 數(shù):48.9K

支持框架:React、Vue、Svelte 等主流框架

項目地址:https://github.com/tailwindlabs/tailwindcss

典型的是 TailwindCSS,一個輔助類優(yōu)先的 CSS 框架,提供如 flex 、pt-4 、text-center 、rotate-90 這樣實用的類名,然后基于這些底層的輔助類向上組合構(gòu)建任何網(wǎng)站,而且只需要專注于為 HTML 設(shè)置類名即可。

一個比較形象的例子可以參考如下代碼: 

  1. <button class="btn btn--secondary">Decline</button>  
  2. <button class="btn btn--primary">Accept</button>  

上述代碼應(yīng)用 BEM 風(fēng)格的類名設(shè)計,然后設(shè)計兩個按鈕,而這兩個類名類似主流組件庫里面的 Button 的不同狀態(tài)的設(shè)計,而這兩個類又是由更加基礎(chǔ)的 TailwindCSS 輔助類組成: 

  1. .btn {  
  2.   @apply text-base font-medium rounded-lg p-3;  
  3.  
  4. .btn--primary {  
  5.   @apply bg-rose-500 text-white;  
  6.  
  7. .btn--secondary {  
  8.   @apply bg-gray-100 text-black;  

上面的輔助類包含以下幾類:

  •  設(shè)置文本相關(guān):text-base 、font-medium 、text-white 、text-black
  •  設(shè)置背景相關(guān)的:bg-rose-500 、bg-gray-100
  •  設(shè)置間距相關(guān)的:p-3
  •  設(shè)置邊角相關(guān)的:rounded-lg

通過 Tailwind 提供的 @apply 方法來對這些輔助類進行組合構(gòu)建更上層的樣式類。

上述的最終效果展示如下:

可以看到 TailwindCSS 將我們開發(fā)網(wǎng)站的過程抽象成為使用 Figma 等設(shè)計軟件設(shè)計界面的過程,同時提供了一套用于設(shè)計的規(guī)范,相當(dāng)于內(nèi)置最佳實踐,如顏色、陰影、字體相關(guān)的內(nèi)容,一個很形象的圖片可以說明這一點:

TailwindCSS 為我們規(guī)劃了一個元素可以設(shè)置的屬性,并且為每個屬性給定了一組可以設(shè)置的值,這些屬性+屬性值組合成一個有機的設(shè)計系統(tǒng),非常便于團隊協(xié)作與共識,讓我們開發(fā)網(wǎng)站就像做設(shè)計一樣簡單、快速,但是整體風(fēng)格又能保持一致。

TailwindCSS 同時也能與主流組件庫如 React、Vue、Svelte 結(jié)合,融入基于組件的 CSS 設(shè)計思想,但又只需要修改 HTML 上的類名,如我們設(shè)計一個食譜組件: 

  1. // Recipes.js  
  2. import Nav from './Nav.js'  
  3. import NavItem from './NavItem.js'  
  4. import List from './List.js'  
  5. import ListItem from './ListItem.js'  
  6. export default function Recipes({ recipes }) { 
  7.    return (  
  8.     <div className="divide-y divide-gray-100">  
  9.       <Nav>  
  10.         <NavItem href="/featured" isActive>Featured</NavItem>  
  11.         <NavItem href="/popular">Popular</NavItem>  
  12.         <NavItem href="/recent">Recent</NavItem>  
  13.       </Nav>  
  14.       <List>  
  15.         {recipes.map((recipe) => (  
  16.           <ListItem key={recipe.id} recipe={recipe} />  
  17.         ))}  
  18.       </List>  
  19.     </div>  
  20.   )  
  21.  
  22. // Nav.js  
  23. export default function Nav({ children }) {  
  24.   return (  
  25.     <nav className="p-4">  
  26.       <ul className="flex space-x-2">  
  27.         {children}  
  28.       </ul>  
  29.     </nav>  
  30.   )  
  31.  
  32. // NavItem.js  
  33. export default function NavItem({ href, isActive, children }) {  
  34.   return (  
  35.     <li>  
  36.       <a  
  37.         href={href}  
  38.         className={`block px-4 py-2 rounded-md ${isActive ? 'bg-amber-100 text-amber-700' : ''}`}  
  39.       >  
  40.         {children}  
  41.       </a>  
  42.     </li>  
  43.   )  
  44.  
  45. // List.js  
  46. export default function List({ children }) {  
  47.   return (  
  48.     <ul className="divide-y divide-gray-100">  
  49.       {children}  
  50.     </ul>  
  51.   )  
  52.  
  53. //ListItem.js  
  54. export default function ListItem({ recipe }) {  
  55.   return ( 
  56.     <article className="p-4 flex space-x-4">  
  57.       <img src={recipe.image} alt="" className="flex-none w-18 h-18 rounded-lg object-cover bg-gray-100" width="144" height="144" />  
  58.       <div className="min-w-0 relative flex-auto sm:pr-20 lg:pr-0 xl:pr-20">  
  59.         <h2 className="text-lg font-semibold text-black mb-0.5">  
  60.           {recipe.title}  
  61.         </h2>  
  62.         <dl className="flex flex-wrap text-sm font-medium whitespace-pre">  
  63.           <div>  
  64.             <dt className="sr-only">Time</dt> 
  65.             <dd>  
  66.               <abbr title={`${recipe.time} minutes`}>{recipe.time}m</abbr>  
  67.             </dd>  
  68.           </div>  
  69.           <div>  
  70.             <dt className="sr-only">Difficulty</dt>  
  71.             <dd> · {recipe.difficulty}</dd>  
  72.           </div>  
  73.           <div>  
  74.             <dt className="sr-only">Servings</dt>  
  75.             <dd> · {recipe.servings} servings</dd>  
  76.           </div>  
  77.           <div className="flex-none w-full mt-0.5 font-normal">  
  78.             <dt className="inline">By</dt>{' '}  
  79.             <dd className="inline text-black">{recipe.author}</dd>  
  80.           </div>  
  81.           <div class="absolute top-0 right-0 rounded-full bg-amber-50 text-amber-900 px-2 py-0.5 hidden sm:flex lg:hidden xl:flex items-center space-x-1">  
  82.             <dt className="text-amber-500">  
  83.               <span className="sr-only">Rating</span>  
  84.               <svg width="16" height="20" fill="currentColor">  
  85.                 <path d="M7.05 3.691c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.372 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.539 1.118l-2.8-2.034a1 1 0 00-1.176 0l-2.8 2.034c-.783.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.363-1.118L.98 9.483c-.784-.57-.381-1.81.587-1.81H5.03a1 1 0 00.95-.69L7.05 3.69z" /> 
  86.                </svg>  
  87.             </dt>  
  88.             <dd>{recipe.rating}</dd>  
  89.           </div>  
  90.         </dl>  
  91.       </div>  
  92.     </article>  
  93.   )  

上述食譜的效果如下:

可以看到我們無需寫一行 CSS,而是在 HTML 里面應(yīng)用各種輔助類,結(jié)合 React 的組件化設(shè)計,既可以輕松完成一個非?,F(xiàn)代化且好看的食譜組件。

除了上面的特性,TailwindCSS 在響應(yīng)式、新特性支持、Dark Mode、自定義配置、自定義新的輔助類、IDE 方面也提供非常優(yōu)秀的支持,除此之外還有基于 TailwindCSS 構(gòu)建的物料庫 Tailwind UI ,提供各種各樣成熟、好看、可用于生產(chǎn)的物料庫:

因為需要自定的 CSS 不多,而需要自定義的 CSS 可以定義為可復(fù)用的輔助類,所以在可維護性方面也是極好的。

不足

  •  因為要引入一個額外的運行時,TailwindCSS 輔助類到 CSS 的編譯過程,而隨著組件越來越多,需要編譯的工作量也會變大,所以速度會有影響
  •  過于底層,相當(dāng)于給了用于設(shè)計的最基礎(chǔ)的指標,但是如果我們想要快速設(shè)計網(wǎng)站,那么可能還需要一致的、更加上層的組件庫
  •  相當(dāng)于引入了一套框架,具有一定的學(xué)習(xí)成本和使用成本

優(yōu)化

  •  Tailwind 2.0 支持 JIT[1],可以大大提升編譯速度,可以考慮引入
  •  基于 TailwindCSS,設(shè)計一套符合自身風(fēng)格的上層組件庫、物料庫,便于更加快速開發(fā)
  •  提前探索、學(xué)習(xí)和總結(jié)一套教程與開發(fā)最佳實踐
  •  探索 styled-components 等結(jié)合 TailwindCSS 的開發(fā)方式 

 

責(zé)任編輯:龐桂玉 來源: 前端大全
相關(guān)推薦

2021-11-16 08:13:30

CSS 技巧工程化技術(shù)

2013-03-04 09:34:48

CSSWeb

2023-01-09 17:23:14

CSS技巧

2022-04-28 12:17:26

瀏覽器連字符hyphens

2022-08-10 09:03:35

TypeScript前端

2011-09-20 10:56:35

云計算PaaS

2022-04-29 09:00:00

Platform架構(gòu)內(nèi)核線程

2018-09-10 09:26:33

2010-02-23 10:35:39

開源服務(wù)器技術(shù)

2016-01-20 10:40:55

2016物聯(lián)網(wǎng)

2022-11-28 00:07:47

2018-05-30 15:15:47

混合云公共云私有云

2024-06-04 16:51:11

2019-10-23 10:36:46

DevSecOpsDevOps

2014-07-31 17:13:50

編碼程序員

2020-03-27 12:30:39

python開發(fā)代碼

2023-01-30 11:43:04

開源代碼

2023-05-12 14:49:47

CSS框架前端

2018-02-08 08:08:12

2020-12-30 11:22:11

Node.js前端模塊
點贊
收藏

51CTO技術(shù)棧公眾號

天堂网一区二区三区| 国产精品成人免费一区久久羞羞| yw193.com尤物在线| 奇米影视一区二区三区| 久久99精品国产99久久6尤物 | 91天天综合| 亚洲免费在线视频一区 二区| 国产在线视频欧美一区二区三区| 国产女优在线播放| 尹人成人综合网| 中文字幕亚洲欧美日韩高清| 国产成人精品一区二区三区在线观看| 欧美性猛交xxx高清大费中文| 亚洲欧洲成人精品av97| 久久www免费人成精品| 国产毛片毛片毛片毛片| 久久精品毛片| 久久久日本电影| 欧美福利在线视频| 亚洲小说图片| 精品欧美一区二区久久| 污片在线免费看| 一区一区三区| 午夜欧美视频在线观看| 四虎精品欧美一区二区免费| av网站在线免费观看| 99国产精品久| 国产精品毛片va一区二区三区| 国产乱码精品一区二三区蜜臂 | 在线观看日本www| 欧美艳星kaydenkross| 天天做天天摸天天爽国产一区 | 国产aⅴ激情无码久久久无码| 超碰在线一区| 日韩欧美在线观看一区二区三区| 特级丰满少妇一级| 欧美日韩精品一区二区三区视频| 五月婷婷色综合| 一卡二卡三卡视频| 亚洲综合伊人久久大杳蕉| 中文字幕在线一区免费| 亚洲精品国产一区| 成年人视频在线免费观看| 久久久国产综合精品女国产盗摄| 国产日韩精品一区观看| 亚洲黄色在线观看视频| 国产精品88888| 91gao视频| 亚洲春色一区二区三区| 国产福利一区二区| 97久久人人超碰caoprom欧美| 国产精品久久欧美久久一区| 麻豆成人综合网| 成人www视频在线观看| 一区二区三区在线免费观看视频| 男女视频一区二区| 国产欧美日韩精品在线观看| 一本一道人人妻人人妻αv| 美女脱光内衣内裤视频久久影院| 国产久一一精品| 国产三级按摩推拿按摩| 国产成人亚洲综合a∨婷婷| av一区二区三区四区电影| 亚洲AV无码精品色毛片浪潮| 成人国产精品免费观看视频| 久久精品日产第一区二区三区 | 国产乱淫a∨片免费观看| 韩国精品久久久| 成人av网站观看| 五十路在线视频| 久久久一区二区| 一区二区三区四区五区视频| 成人在线网址| 亚洲成人免费在线观看| 成人在线观看黄| 婷婷久久综合九色综合99蜜桃| 日韩一区二区三区在线| 水蜜桃av无码| 久久影视一区| 久久久久久久一| 精品国产青草久久久久96| 国产一区视频在线看| 成人蜜桃视频| 黄色的视频在线免费观看| 国产精品网曝门| www亚洲国产| 免费h视频在线观看| 欧美综合一区二区三区| 国内精品国产三级国产aⅴ久| 91精品国产自产精品男人的天堂| 亚洲免费高清视频| 亚洲av鲁丝一区二区三区 | 天天影视色综合| 国产精品对白| 亚洲视频一区二区| 九九视频在线观看| 日韩av高清在线观看| 97超级在线观看免费高清完整版电视剧| 日韩在线免费播放| 中文字幕一区二区三区在线观看| 日本午夜激情视频| 成人免费91| 亚洲色在线视频| 久久精品国产亚洲AV无码男同 | 午夜激情视频在线观看| 精品欧美国产一区二区三区| 九色porny自拍| 羞羞色国产精品网站| 久久精品国产精品| 日本a级c片免费看三区| 成人免费看视频| 在线不卡日本| 欧美日韩精品免费观看视完整| 欧美成人精品福利| 成人做爰视频网站| 三级久久三级久久| 精品一区日韩成人| 色呦呦在线观看视频| 欧美日韩精品系列| 深爱五月激情网| 99riav1国产精品视频| 99在线视频免费观看| 欧美三级电影一区二区三区| 色哟哟精品一区| v8888av| 亚洲激情偷拍| 成人高清在线观看| 羞羞网站在线看| 91麻豆精品国产综合久久久久久 | 亚洲欧美精品午睡沙发| 色悠悠久久综合网| 怕怕欧美视频免费大全| 26uuu另类亚洲欧美日本一| 亚洲成人777777| 一区二区三区不卡视频在线观看| 亚洲一区二区偷拍| 国产精品久久久久久麻豆一区软件| 国产大片精品免费永久看nba| 日韩av成人| 欧美午夜精品在线| 精品人伦一区二区三电影| 亚洲欧美日韩国产| 久久综合入口| 在线观看欧美日韩电影| 亚洲男女性事视频| 亚洲大片免费观看| 国产精品三级电影| 久久撸在线视频| 99精品全国免费观看视频软件| 国产欧美在线看| 黄色成人在线观看| 日韩视频一区二区三区| 国产一级中文字幕| 波多野结衣中文一区| 欧美一区二区三区爽大粗免费| 国内精品偷拍| 国产91ⅴ在线精品免费观看| 久久99久久| 欧美视频一二三区| 国产精品国产精品88| 国产精品一区二区无线| 中文精品无码中文字幕无码专区| 成人春色在线观看免费网站| 8x海外华人永久免费日韩内陆视频| 亚州精品国产精品乱码不99按摩| 欧美性xxxx极品hd欧美风情| 亚洲色图第四色| 国产一区二区精品久久| 青青草综合在线| 婷婷综合一区| 国产精品一久久香蕉国产线看观看| 麻豆传媒在线免费| 精品国产乱码久久| 日本特级黄色片| 国产精品你懂的| 在线观看日本www| 国产精品视频久久一区| 亚洲国产一区二区精品视频| 精品一区二区三区亚洲| 97精品久久久| 日韩黄色影院| 日韩黄色av网站| 97精品久久人人爽人人爽| 一区二区三区国产豹纹内裤在线| 李宗瑞91在线正在播放| 国产一区欧美日韩| 欧美 日韩 国产一区| 永久亚洲成a人片777777| 久久久久久九九九九| 欧美亚洲二区| 欧美在线中文字幕| 超碰在线观看免费| 亚洲女人天堂网| 不卡av中文字幕| 欧美综合在线视频| 亚洲综合一二三| 成人欧美一区二区三区白人| 免费在线观看成年人视频| 国产一区在线不卡| 玩弄japan白嫩少妇hd| 国产精品99一区二区| 少妇精品久久久久久久久久| 99这里只有精品视频| 国产精品丝袜高跟| 69久成人做爰电影| 欧美黑人极品猛少妇色xxxxx| 国产黄色片在线播放| 亚洲精品一区二区在线观看| 伊人22222| 日韩欧美在线国产| 69精品久久久| 亚洲日本青草视频在线怡红院| 白丝女仆被免费网站| 国产精品资源网| 日日噜噜夜夜狠狠| 久久精品麻豆| 国产精品后入内射日本在线观看| 综合在线视频| 亚洲一区二区三区色| 亚洲欧洲av| 国产一区二区在线网站| 欧美另类中文字幕| 成人看片人aa| 青青青国产精品| 国产精品久久久久影院日本| 欧美二三四区| 欧美自拍视频在线观看| 91九色porn在线资源| 欧美巨大黑人极品精男| 老司机精品影院| www.日韩不卡电影av| 成人在线免费看| 一本大道亚洲视频| 国产高清在线观看| 亚洲三级免费看| 欧美中文在线| 亚洲精品视频免费在线观看| 日韩大片b站免费观看直播| 精品亚洲永久免费精品| 色综合成人av| 国产偷亚洲偷欧美偷精品| 无码国产精品96久久久久| 亚洲国产一区自拍| 天堂av网在线| 国产偷国产偷亚洲清高网站| 精品无人乱码| 中文字幕v亚洲ⅴv天堂| 日韩大片在线永久免费观看网站| www.欧美免费| 欧美videosex性极品hd| 午夜精品久久久久久久白皮肤| 国产精品一二三产区| 91成人性视频| 日韩免费小视频| 国产日韩欧美在线视频观看| www.久久爱.com| 不卡视频一区二区| 久久午夜影院| 日本一区视频在线播放| 日韩片欧美片| 粉嫩av一区二区三区天美传媒| 亚洲精一区二区三区| 欧在线一二三四区| 麻豆成人av在线| 久久久久无码国产精品一区李宗瑞| 成人免费高清视频| 国产女主播喷水高潮网红在线| 中文字幕欧美激情一区| 乱老熟女一区二区三区| 亚洲午夜免费视频| 国产免费一区二区三区四区五区| 欧美精品高清视频| 老牛影视av牛牛影视av| 亚洲视频欧美视频| av网址在线看| 欧美性在线观看| 四虎地址8848精品| 国产日韩一区二区三区| 国产午夜一区| 人人妻人人澡人人爽欧美一区双| 老司机一区二区三区| 天堂在线一区二区三区| 972aa.com艺术欧美| 狂野欧美性猛交| 午夜欧美一区二区三区在线播放| 伊人成年综合网| 日韩免费高清视频| 国产粉嫩一区二区三区在线观看| 欧美成人全部免费| 香蕉久久免费电影| 114国产精品久久免费观看| 欧美精品第一区| av一区二区三区免费观看| 日本vs亚洲vs韩国一区三区二区| 色婷婷狠狠18禁久久| 国产欧美1区2区3区| 动漫精品一区一码二码三码四码| 91黄视频在线观看| 亚洲女人18毛片水真多| 一本久久综合亚洲鲁鲁| 蜜桃麻豆影像在线观看| 亚洲最大福利视频网站| 国产探花一区| 久久久999免费视频| 国精品**一区二区三区在线蜜桃 | 中文字幕中文字幕在线一区 | 色哟哟一一国产精品| 日韩欧美a级成人黄色| 性生活免费网站| 色婷婷综合久久久久| 成人欧美大片| 国内外成人免费视频| 一区二区不卡| 午夜视频在线网站| 日本一区二区成人| 老熟妇仑乱一区二区av| 精品国产乱码久久久久久牛牛| 国产写真视频在线观看| 国产精品美女久久久久av超清| 日韩电影不卡一区| 久久国产精品视频在线观看| 国产一区不卡精品| 超碰97av在线| 欧洲精品一区二区| 可以在线观看的黄色| 8050国产精品久久久久久| 国产精品巨作av| 国产情侣第一页| 国产高清一区日本| 手机av在线看| 这里只有精品视频在线观看| 欧美成人三区| 国产一区欧美二区三区| 久久一区91| 日韩一区二区三区久久| 亚洲国产成人在线| 亚洲精品一区二区二区| 有码中文亚洲精品| 巨胸喷奶水www久久久免费动漫| 日本一区二区三区免费看| 视频一区视频二区在线观看| 88久久精品无码一区二区毛片| 欧美午夜无遮挡| 毛片网站在线| 国产精品久久久久一区二区| 91日韩免费| 丰满少妇中文字幕| 亚洲一区二区免费视频| 欧美一级在线免费观看| 7777kkkk成人观看| 免费久久久久久久久| 日本久久精品一区二区| 国产精品久久久久久福利一牛影视| 中文字幕一区二区三区四区免费看| 少妇高潮久久77777| av一级久久| av在线免费观看国产| 成人免费黄色大片| 337p粉嫩色噜噜噜大肥臀| 中文字幕日韩欧美精品在线观看| 亚洲三级在线| 亚洲熟妇无码av在线播放| 99久久久国产精品免费蜜臀| 麻豆精品久久久久久久99蜜桃| 亚洲一区www| 另类视频一区二区三区| 黄色大片中文字幕| 国产欧美一区二区精品性色超碰| 911美女片黄在线观看游戏| 欧美成人午夜激情在线| 欧美电影在线观看完整版| 国产日韩一区二区在线观看| 中文字幕av在线一区二区三区| 国产免费黄色录像| 午夜精品一区二区三区在线| 激情五月综合| 日批视频在线看| 欧美色图在线视频| 伦xxxx在线| 好看的日韩精品视频在线| 男女男精品视频| 国产大片aaa| 少妇久久久久久| 欧美电影在线观看免费| 午夜剧场在线免费观看| 天天操天天综合网| 免费在线午夜视频| 久久久久久久久久久久久9999| 久久精品国产成人一区二区三区| 精品在线免费观看视频| 中文字幕av一区二区| 老汉色老汉首页av亚洲| 久国产精品视频| 色综合天天综合网天天狠天天| aaa大片在线观看| 日韩电影在线播放| 成人a免费在线看| 国产视频手机在线观看| 国产成人综合精品| 一本久道久久久|