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

不要再在JavaScript中寫 CSS了

開發 前端
CSS 不應隨意放置。許多項目選擇將樣式寫在 JavaScript 中的理由不對。本文列出了常見的誤解,以及解決問題的現存 CSS 方案。

本文作者是 react-css-modules 和 babel-plugin-react-css-modules 的作者。并不是對 CSS in JavaScript: The future of component-based styling,或是使用樣式組件的反對,而是一種補充,web 開發者要了解自己的需求,明白自己使用 styled-components 的真正原因。

9 個謊言

CSS 不應隨意放置。許多項目選擇將樣式寫在 JavaScript 中的理由不對。本文列出了常見的誤解,以及解決問題的現存 CSS 方案。

本文的任何言論都沒有對某個項目或人進行人身攻擊的意思。styled-components 是 React 的目前趨勢,所以我將 styled-components 定義為“JavaScript 中的 CSS”。

styled-components 的發起人(Max Stoiber、Glen Maddern 以及所有的貢獻者)都很聰明、想法獨特,出發點也是好的。

為了完全透明,我還要指出我是 react-css-modules 和 babel-plugin-react-css-modules 的作者。

[[195644]] 

小紅帽

CSS 和 JavaScript 歷史

層疊樣式表(CSS)是為描述標記語言文檔的展現樣式而出現的。JavaScript 是為了組合圖片、插件等組件而創造的一種“膠水語言”。隨著發展,JavaScript 拓展、轉變,有了新的應用場景。

Ajax 的出現(2005)是一個重要的里程碑。這時 Prototype、jQuery、MooTools 等庫已經吸引了大量的擁護者,共同解決后臺跨瀏覽器數據獲取問題。這又引發了新的問題:如何管理數據?

到了 2010 年,Backbone.js 出現,成為了應用狀態管理的行業標準。不久后,Knockout 和 Angular 雙向綁定的特點吸引了所有人。之后,React 和 Flux 出現,開啟了單頁應用(SPA)的新紀元,組件構造應用。

那么 CSS 呢?

借用 styled-components 文檔中的話:

純 CSS 的問題在于它產生的那個時代,網站由文檔組成。1993 年,網站產生,主要用于交換科學文獻,CSS 是設計文獻樣式的解決方案。但是如今我們構建的是豐富的、面向用戶的交互應用,而 CSS 并不是為此而生的。

我不這么認為 。

CSS 已經發展到可以滿足現代 UI 的需求了。過去十年中出現的新特性數不勝數(pseudo-classes、pseudo-elements、CSS variables、media queries、keyframes、combinators、columns、flex、grid、computed values 等等)。

從 UI 的角度看,“組件”是文檔中一個獨立的片段(<button /> 就是個組件)。CSS 被設計用來樣式化文檔,包括所有組件。問題在哪?

俗話說:“工欲善其事必先利其器”。

Styled-components

styled-components 可以用標記模板字面量在 JavaScript 中寫 CSS。這樣就省去了組件和樣式間的匹配 ——組件由細粒度的樣式結構組成,比如:

  1. import React from 'react'
  2.  
  3. import styled from 'styled-components'
  4.  
  5. // Create a <Title> react component that renders an <h1> which is 
  6.  
  7. // centered, palevioletred and sized at 1.5em 
  8.  
  9. const Title = styled.h1` 
  10.  
  11.   font-size: 1.5em; 
  12.  
  13.   text-align: center; 
  14.  
  15.   color: palevioletred; 
  16.  
  17. `; 
  18.  
  19. // Create a <Wrapper> react component that renders a <sectionwith 
  20.  
  21. // some padding and a papayawhip background 
  22.  
  23. const Wrapper = styled.section
  24.  
  25.   padding: 4em; 
  26.  
  27.   background: papayawhip; 
  28.  
  29. `; 
  30.  
  31. // Use them like any other React component – except they're styled! 
  32.  
  33. <Wrapper> 
  34.  
  35.   <Title>Hello World, this is my first styled component!</Title> 
  36.  
  37. </Wrapper>  

結果:

[[195645]] 

Live demo(https://www.webpackbin.com/bins/-KeeZCr0xKfutOfOujxN)

styled-components 目前是 React 的 趨勢 。

我們要理清一件事情:styled-components 只是 CSS 層面的高度抽象。它只是解析定義在 JavaScript 中的 CSS,然后生成對應 CSS 的 JSX 元素。

我不喜歡這個趨勢,因為存在很多誤解。

我在 IRC、Reddit 和 Discord 上調查了大家使用 styled-components 的原因,整理了一份選擇使用 styled-components 常見原因的列表 。我稱之為 myths。

Myth #1:避免全局命名空間和樣式沖突

我把這條算作 myth 是因為它聽起來就像之前這些問題沒有得到解決一樣。CSS Modules、Shadow DOM 還有很多命名協議(比如 BEM)已經早就在社區中解決了這個問題。

styled-components(就像 CSS modules)只是替人完成了命名的任務。人總會犯錯,計算機犯錯少點而已。

但就本身而言,這并不是使用 styled-components 的好理由。

Myth 2:styled-components 可以簡明代碼

通常伴隨著如下的例子:

  1. <TicketName></TicketName> 
  2.  
  3. <div className={styles.ticketName}></div>  

首先——關系不大。差異基本可以忽略。

其次,說的也不對。字符數量取決于樣式命名。

  1. <TinyBitLongerStyleName></TinyBitLongerStyleName> 
  2.  
  3. <div className={styles.longerStyleName}></div>  

這同樣適用于本文之后的構造樣式(Myth 5:給組件設置條件樣式更簡單)。styled-components 只是在多數基本組件的情況下稍勝一籌。

Myth 3:styled-components 使人更關注語義化

前提就不對。樣式和語義化代表著不同的問題,需要不用的應對方案。引用 Adam Morse(mrmrs)的話:

內容語義化和視覺樣式 沒有半點關系。當我用樂高建造東西時,我從來不會想“這是引擎的一部分”,我想著“這是個 1×4 的藍色樂高,我用來隨便做什么都行”。不論水下潛水基地還是飛機——我清晰地知道怎么用這個樂高塊。

– http://mrmrs.io/writing/2016/03/24/scalable-css/

(強烈建議讀一讀 Adam 關于 可拓展 CSS 的文章)

我們還可以舉個例子看看兩者是否相關。

示例:

  1. <PersonList> 
  2.  
  3.   <PersonListItem> 
  4.  
  5.     <PersonFirstName>Foo</PersonFirstName> 
  6.  
  7.     <PersonLastName>Bar</PersonLastName> 
  8.  
  9.   </PersonListItem> 
  10.  
  11. </PersonList>  

語義化是要使用正確的標簽構造標記。你能知道這些組件會渲染成什么 HTML 標簽嗎?不,你不知道。

和下面這段代碼比較下:

  1. <ol> 
  2.  
  3.   <li> 
  4.  
  5.     <span className={styles.firstName}>Foo</span> 
  6.  
  7.     <span className={styles.lastName}>Bar</span> 
  8.  
  9.   </li> 
  10.  
  11. </ol>  

Myth 4:拓展樣式更容易

v1 版本可以用 styled(StyledComponent) 拓展樣式;v2 引進了 extend 方法來拓展已存在的樣式,比如:

  1. const Button = styled.button` 
  2.  
  3.   padding: 10px; 
  4.  
  5. `; 
  6.  
  7. const TomatoButton = Button.extend` 
  8.  
  9.   color: #f00; 
  10.  
  11. `;  

這挺好。但是你可以在 CSS 中完成(或者使用 CSS 模塊組合 或 SASS 繼承混合 @extend)。

  1. button { 
  2.  
  3.   padding: 10px; 
  4.  
  5.  
  6. button.tomato-button { 
  7.  
  8.   color: #f00; 
  9.  
  10.  

難道不比 JavaScript 簡單?

Myth 5:給組件設置條件樣式更簡單

這點是說你可以根據組件屬性給組件設置樣式,比如:

  1. <Button primary /> 
  2.  
  3. <Button secondary /> 
  4.  
  5. <Button primary active={true} />  

這在 React 中很有用。畢竟組件行為就是由屬性控制的。給屬性值直接綁定樣式有意義嗎?可能吧。但是來看看組件的實現代碼:

  1. styled.Button` 
  2.  
  3.   background: ${props => props.primary ? '#f00' : props.secondary ? '#0f0' : '#00f'}; 
  4.  
  5.   color: ${props => props.primary ? '#fff' : props.secondary ? '#fff' : '#000'}; 
  6.  
  7.   opacity: ${props => props.active ? 1 : 0}; 
  8.  
  9. `;  

利用 JavaScript 按條件創造樣式表是挺強大的,但是這也意味著樣式難以理解,對比以下 CSS:

  1. button { 
  2.  
  3.   background: #00f; 
  4.  
  5.   opacity: 0; 
  6.  
  7.   color: #000; 
  8.  
  9.  
  10. button.primary
  11.  
  12. button.seconary { 
  13.  
  14.   color: #fff; 
  15.  
  16.  
  17. button.primary { 
  18.  
  19.   background: #f00; 
  20.  
  21.  
  22. button.secondary { 
  23.  
  24.   background: #0f0; 
  25.  
  26.  
  27. button.active { 
  28.  
  29.   opacity: 1; 
  30.  
  31.  

這樣 CSS 更簡短(229 VS 222 字符),(個人認為)也更容易理解。此外,還可以用預處理器使 CSS 分組、更短:

  1. button { 
  2.  
  3.   background: #00f; 
  4.  
  5.   opacity: 0; 
  6.  
  7.   color: #000; 
  8.  
  9.    
  10.  
  11.   &.primary
  12.  
  13.   &.seconary { 
  14.  
  15.     color: #fff; 
  16.  
  17.   } 
  18.  
  19.   &.primary { 
  20.  
  21.     background: #f00; 
  22.  
  23.   } 
  24.  
  25.   &.secondary { 
  26.  
  27.     background: #0f0; 
  28.  
  29.   } 
  30.  
  31.   &.active { 
  32.  
  33.     opacity: 1; 
  34.  
  35.   } 
  36.  
  37.  

Myth 6:有利于代碼組織

有些人告訴我他們喜歡 styled-components,因為它可以讓樣式和 JavaScript 在一個文件中。

我理解同一組件有許多文件很煩,但是把樣式和標記塞進一個文件的方法很糟糕。這樣不僅版本控制難以回溯,而且所有組件都需要滾動很長一段距離,而不是簡單地點下按鈕。

如果一定要把 CSS 和 JavaScript 放在一個文件中, 可以考慮使用 css-literal-loader。它可以在 build 時用 extract-text-webpack-plugin 提取 CSS,用標準 loader 配置處理 CSS。

Myth 7:DX 很方便,這工具太棒了!

很明顯你沒用過 styled-components。

  • 一旦樣式寫錯了,整個 app 會崩潰,并輸出長長的調用棧錯誤(v2 更奇葩)。相比之下,CSS “style error” 只是元素渲染地不對而已。
  • 元素沒有 className,所以調試時不得不去對比 React 元素樹和 DevTools DOM 樹(v2 可以用 babel-plugin-styled-components 定位)。
  • 沒有語法檢查(有一款 樣式檢查插件 正在開發中)。
  • 不合法的樣式會被忽略(比如:clear: both; float left; color: #f00; 不會報 error 或 warning,只能祈禱調試好運了,即使看了 styled-components 源碼,還是花了我 15 分鐘查看調用棧。最后我在聊天中把代碼粘出來尋求幫助,才有人提醒是少了:。你注意到了嗎?)
  • 支持語法高亮、代碼補全以及其它 IDE 細節的 IDE并不多。如果你在金融或政府機構工作,很可能無法使用 Atom IDE。

Myth 8:性能更好,bundle 更小

  • 事實是,styled-components 無法提取靜態 CSS 文件(比如使用 https://github.com/webpack-contrib/extract-text-webpack-plugin)。這意味著瀏覽器無法開始解釋樣式直到 styled-components 解析、加載到 DOM上。
  • 缺少文件分離意味著無法分開緩存 CSS 和 JavaScript。
  • 所有樣式化的組件都會額外包裝一層 HoC。這是不必要的性能損耗。因為類似的結構缺陷,我終止了 https://github.com/gajus/react-css-modules(但創建了 https://github.com/gajus/babel-plugin-react-css-modules)。
  • 因為 HOC,如果在服務端渲染,會導致標記文檔大很多。
  • 有 keyframes, 我也不需要用動態樣式值做動畫。

Myth 9:它可以開發響應式組件

這說的是依據環境給組件設置樣式的能力,比如父容器偏移量、子元素數量等。

首先,styled-components 和響應式沒什么關系。這已經超出了這個主題的范圍。這種情況最好直接設置組件的 style,以避免額外的成本。

但是,元素查詢是個有趣的問題,也逐漸成為 CSS 中的一個高熱話題,主要是 EQCSS 等類似項目。元素查詢和 @media queries 在語法上很相似,只是元素查詢操作具體某些元素。

  1. <a href="http://www.jobbole.com/members/feiguohai46">@element</a> {selector} and {condition} [ and {condition} ]* { {css} } 

{selector} 是 CSS 選擇器對應著一或多個元素。例如:#id 或 .class

{condition} 由尺寸和值組成。

{css} 可以包含:任何合法的 CSS 規則。(例如:#id div { color: red })

元素查詢可以用 min-width、max-width、min-height、max-height、min-characters、max-characters、min-children、max-children、min-lines、max-lines、min-scroll-x、max-scoll-x 等 (詳見 http://elementqueries.com/)條件給元素設置樣式。

總有一天類似 EQCSS 的內容也會出現在 CSS 標準中的(希望如此)。

等下!

大部分內容都長期有效,無論是社區、React 變更或 styled-components 本身。但意義何在?CSS 已被廣泛支持,有大量的社區,也確實行之有效。

本文的目的并不是阻止讀者在 JavaScript 中使用“CSS”或是 styled-components。styled-components 一個很棒的使用場景是:更好的跨平臺支持性。不要因為錯誤的理由使用它。

那么我們應該用什么呢?

使用 Shadow DOM v1 還為時尚早(51% 支持率)。CSS 應遵循命名協議(建議 BEM),如果擔心類名沖突(或懶得用 BEM),可以用 CSS modules。如果你在開發 React web,考慮用 babel-plugin-react-css-modules。如果在開發 React Native,styled-components 更好。 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2020-12-01 11:18:34

對外接口枚舉

2016-05-04 09:45:01

CSS開發不要

2021-10-27 09:10:50

CSS 技巧else

2017-03-21 13:03:28

編程體系結構

2012-06-21 13:56:59

Web

2020-04-07 08:34:00

===開發語言

2010-09-30 14:55:23

Javascriptfloat

2024-04-26 08:27:15

JavaScriptCSSHTML元素

2023-02-15 08:17:20

VSCodeTypeScrip

2021-12-17 15:05:55

CSSwhenelse

2025-07-04 01:55:00

CSS樣式Chrome

2017-11-20 09:00:43

跳槽職場精英年終獎

2018-10-17 11:20:55

SQL數據庫程序員

2020-04-03 08:30:44

RabbitMQKafka軟件

2019-11-18 10:05:43

程序員技能開發者

2017-02-09 08:21:04

ARAR游戲

2019-11-18 10:16:37

工程師開發網絡

2024-06-18 08:31:33

2010-09-01 15:28:11

CSSexpression

2025-06-26 08:12:11

點贊
收藏

51CTO技術棧公眾號

欧美日韩a v| 免费啪视频在线观看| 国产福利在线观看| 奇米综合一区二区三区精品视频| 中文字幕亚洲精品| 午夜影院免费版| bbw在线视频| 国产亚洲美州欧州综合国 | 俺来也官网欧美久久精品| 波波电影院一区二区三区| 国产aⅴ夜夜欢一区二区三区| 91麻豆精品久久毛片一级| 视频二区欧美| 日韩欧美999| 久久99国产精品一区| 亚洲av成人精品毛片| 黑人精品欧美一区二区蜜桃| 久久全球大尺度高清视频| 少妇精品无码一区二区免费视频| 日韩视频在线直播| 欧美日韩精品欧美日韩精品一| 国风产精品一区二区| 久香视频在线观看| 粉嫩嫩av羞羞动漫久久久| 国产成人精品久久二区二区91 | 免费一级在线观看播放网址| 国产一区二区三区在线观看免费| 欧美在线观看网址综合| 国产女人18水真多毛片18精品| 亚洲另类春色校园小说| 日韩欧美成人一区二区| 亚洲天堂av线| 国产免费不卡| 亚洲高清不卡在线观看| 婷婷视频在线播放| 国产黄色片在线观看| 99久久99久久精品免费观看| 亚洲在线视频观看| 中文av免费观看| 先锋影音久久| 午夜精品福利电影| 免费一级片在线观看| 99热在线成人| 中文字幕在线精品| 精品人妻一区二区三区视频| 黄色美女久久久| 欧美videos中文字幕| 亚洲理论中文字幕| 久久久加勒比| 欧美日韩午夜影院| 成人免费xxxxx在线视频| 性爽视频在线| 日韩欧美国产视频| 日本wwww视频| 欧美久久天堂| 精品久久久久国产| 国产视频一视频二| 欧产日产国产精品视频| 精品久久久久人成| 男女av免费观看| 在线免费av资源| 欧美性开放视频| 国产亚洲天堂网| 惠美惠精品网| 在线国产亚洲欧美| 污污网站免费看| 丁香婷婷久久| 7777精品伊人久久久大香线蕉 | 一本久久综合亚洲鲁鲁| 免费看黄色三级| 日韩精品欧美激情一区二区| www.日韩免费| 久久久精品人妻一区二区三区四| 狠狠干综合网| 5252色成人免费视频| 亚洲欧美一区二区三区在线观看| 日日摸夜夜添夜夜添国产精品| 国产成人一区二区在线| 在线观看免费观看在线| 国产在线播放一区二区三区| 99c视频在线| 午夜18视频在线观看| 久久久99久久精品欧美| 天天综合狠狠精品| 亚洲无线看天堂av| 欧美日韩加勒比精品一区| 99精品视频播放| 大胆国模一区二区三区| 亚洲成年人在线播放| 玖玖爱在线观看| 99久久综合| 国内偷自视频区视频综合| 日韩在线视频不卡| 激情五月激情综合网| 国产精品对白一区二区三区| 国产在线中文字幕| 亚洲精品一二三四区| 日韩欧美国产免费| 3d动漫一区二区三区在线观看| 精品区一区二区| 免费看黄色的视频| 亚洲女同另类| 国产福利精品av综合导导航| 精品久久久久中文慕人妻| 久久综合九色综合欧美98| 一区二区三区我不卡| 91精品国产黑色瑜伽裤| 欧美在线短视频| 中文字幕第3页| 成人羞羞网站入口| 高清亚洲成在人网站天堂| 中文字幕欧美人妻精品| 99免费精品在线| 亚洲欧美日韩精品久久久| av最新在线| 6080日韩午夜伦伦午夜伦| 国产高清自拍视频| 欧美国内亚洲| 国产美女被下药99| 婷婷国产在线| 亚洲综合免费观看高清在线观看| 蜜臀视频一区二区三区| 蜜桃久久久久| 久久69精品久久久久久国产越南| 日韩精品一区不卡| 成人精品gif动图一区| 青少年xxxxx性开放hg| 电影久久久久久| 日韩成人在线播放| 精品99在线观看| 激情综合色综合久久综合| 日韩欧美激情一区二区| 激情国产在线| 精品粉嫩aⅴ一区二区三区四区| 国产精品视频看看| 日韩va欧美va亚洲va久久| 精品国产乱码久久久久软件| 羞羞的视频在线观看| 欧美精品色综合| 在线观看免费小视频| 丝袜美腿亚洲色图| 欧美日本韩国国产| 欧美电影h版| 亚洲日韩中文字幕在线播放| 男女啊啊啊视频| av资源站一区| 人妻久久久一区二区三区| 亚洲网一区二区三区| 久久99精品久久久久久琪琪| 国产裸体无遮挡| 亚洲欧洲av在线| 日本中文字幕二区| 久久久久亚洲| 亚洲一区二区在线| 四虎影视成人| 亚洲激情视频在线观看| 五月激情六月丁香| 久久久久久综合| 成人在线观看黄| 日韩欧美一区二区三区免费看| 国产日韩专区在线| 色噜噜狠狠狠综合欧洲色8| 日韩欧美色综合| 日本在线小视频| 久久久久久亚洲综合| 91福利国产成人精品播放| 国产精品久久久久久| 99re在线观看视频| 在线看片国产福利你懂的| 宅男66日本亚洲欧美视频| 又骚又黄的视频| 亚洲精品视频在线观看网站| 亚洲欧美天堂在线| 国产一区二区三区四区老人| 成人在线视频电影| 美女在线视频免费| 亚洲网址你懂得| 日韩欧美一级大片| 中文字幕在线一区二区三区| 日本中文字幕在线不卡| 国产一区二区三区自拍| 久久99国产精品| 波多野结衣亚洲| www.亚洲天堂| 精品人妻伦一区二区三区久久| 一区二区三区蜜桃网| 亚洲成a人无码| 91亚洲国产成人久久精品| 99在线视频免费观看| 51漫画成人app入口| 亚洲国产精品美女| 青青视频在线免费观看| 亚洲乱码国产乱码精品精的特点 | 日本一区二区在线视频| 成人国产在线| 欧美成人合集magnet| 亚洲av成人精品毛片| 色婷婷国产精品久久包臀| 东京热无码av男人的天堂| 精品伊人久久久久7777人| 日本a在线免费观看| 国产真实有声精品录音| 91精品啪aⅴ在线观看国产| heyzo高清在线| 亚洲精品之草原avav久久| 国产精品视频a| 亚洲成a人片在线观看中文| 88久久精品无码一区二区毛片| 极品销魂美女一区二区三区| 欧美网站免费观看| 国产精品久久久久久久| 国产手机精品在线| 欧美日韩尤物久久| 久久91精品国产91久久久| 成人在线观看黄色| 亚洲福利精品在线| 夜夜嗨aⅴ一区二区三区| 亚洲美女免费在线| 五月天婷婷丁香网| 不卡视频在线观看| 小早川怜子一区二区三区| 亚洲青色在线| 成人免费看片视频在线观看| 国产亚洲欧美日韩在线观看一区二区| 18成人在线| 欧美综合影院| 日韩美女在线观看| 你真棒插曲来救救我在线观看| 人人妻人人澡人人爽精品日本| 欧美日本精品一区二区三区| 日本天堂网在线观看| 国产精品不卡在线观看| 黄色国产在线观看| 波多野洁衣一区| 一级日本黄色片| 日韩avvvv在线播放| 成人中文字幕在线播放| 黄色免费成人| 免费成人深夜夜行网站视频| 欧洲杯什么时候开赛| 精品高清视频| 啪啪激情综合网| 成人免费视频网站| 精品一区91| 91久久久久久久久久久| 高清成人在线| 日韩免费不卡av| 精品国产欧美日韩一区二区三区| 欧美一区二区三区图| 国产粉嫩在线观看| 欧美成人精品在线视频| 久久大胆人体| 欧美激情奇米色| 98在线视频| 中文字幕免费精品一区| 国产三级电影在线观看| 亚洲精品中文字幕女同| 加勒比一区二区三区在线| 亚洲欧美一区二区三区四区| 少妇av一区二区| 亚洲国产日韩欧美在线99| 涩爱av在线播放一区二区| 日韩av一区二区在线| 天堂a√中文在线| 一本色道久久88精品综合| 国产三级视频在线| 一个人www欧美| youjizz在线播放| 欧美成人国产va精品日本一级| а√天堂在线官网| 久久夜色精品亚洲噜噜国产mv| 95在线视频| 一本一道综合狠狠老| 男人天堂视频网| 欧美无砖专区一中文字| 亚洲在线免费观看视频| 精品国产一区二区三区四区四| 亚洲精品一区二区三区四区| 精品久久国产字幕高潮| 婷婷丁香花五月天| 在线色欧美三级视频| √天堂资源地址在线官网| 久久精品99久久久香蕉| 69成人在线| 成人小视频在线| 麻豆传媒一区| 国产免费播放一区二区| 先锋影音亚洲资源| 香蕉综合视频| 黄色激情在线视频| 麻豆九一精品爱看视频在线观看免费| 亚洲综合欧美在线| 国产成人啪免费观看软件| 国产成人av无码精品| 国产亚洲美州欧州综合国| 九九这里只有精品视频| 亚洲愉拍自拍另类高清精品| 国产一级在线观看视频| 一本久久综合亚洲鲁鲁五月天| 亚洲综合一区中| 日韩国产高清视频在线| 3p视频在线观看| 色综合久久久888| 在线成人视屏| 不卡视频一区二区三区| 国产91精品对白在线播放| 国产毛片久久久久久国产毛片| 久久精品一区二区国产| 手机在线免费毛片| 91丨porny丨首页| 波多野结衣喷潮| 舔着乳尖日韩一区| 国产亚洲欧美日韩高清| 日韩av网站大全| 在线视频婷婷| 久久男人av资源网站| 麻豆精品久久| 日韩不卡av| 亚洲国产高清视频| 亚洲一区二区三区三州| 久久久亚洲精品一区二区三区| 日本中文字幕免费在线观看| 亚洲一区二区综合| 国产乱码久久久久| 亚洲人成网7777777国产| 肉体视频在线| 91色视频在线导航| 精品国产91乱码一区二区三区四区 | 成人免费视频网站入口::| 色综合久久久久综合99| 人妻va精品va欧美va| 精品国内自产拍在线观看| 在线视频cao| 99re在线观看视频| 91久久夜色精品国产按摩| 黑森林福利视频导航| 国产激情精品久久久第一区二区 | 91精品国产色综合久久不8| 亚洲精品久久在线| 男女在线观看视频| 国产91视觉| 91精品91| 夜夜夜夜夜夜操| 国产精品国产自产拍高清av王其| 国产精品国产三级国产专区52| 欧美变态tickling挠脚心| av免费在线免费| 成人在线一区二区| 日韩伦理视频| 亚洲av无日韩毛片久久| 国产精品日韩成人| 最近日韩免费视频| 色av中文字幕一区| 91久久久久久白丝白浆欲热蜜臀| 欧美二区三区在线| 日本最新不卡在线| 舐め犯し波多野结衣在线观看| 欧美日韩亚洲视频一区| 男人天堂亚洲二区| 热99精品只有里视频精品| 香蕉视频一区| 最新中文字幕免费视频| 国产欧美日本一区二区三区| 人人妻人人爽人人澡人人精品 | 精品美女在线观看视频在线观看 | 久久丁香四色| 日韩在线观看a| 成人精品亚洲人成在线| 久久久一二三区| 亚洲精品视频在线观看视频| 在线观看网站免费入口在线观看国内| 黄色99视频| 久久久久久黄| 亚洲精品国产精品国自产网站| 亚洲一区二区三区四区五区中文| 天堂在线视频观看| 国产91精品不卡视频| 91精品啪在线观看国产爱臀 | 日韩成人免费在线| 国产农村妇女精品一区| 91精品国产综合久久香蕉麻豆| 91网在线看| 久草精品电影| 久久91精品国产91久久小草| avtt天堂在线| 精品日产卡一卡二卡麻豆| 国产精品极品美女在线观看| 亚洲国产欧洲综合997久久| 久久国产人妖系列| 日本三级2019| 国产一区二区三区视频免费| 亚洲精选av| 久久久久狠狠高潮亚洲精品| 中文在线资源观看网站视频免费不卡| 国产黄色片网站| 欧美与欧洲交xxxx免费观看 | 亚洲精品久久在线| 亚洲老司机网| 亚欧无线一线二线三线区别| 国产精品欧美一级免费|