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

瀏覽器原生「磁吸」效果!Anchor Positioning 錨點定位神器解析

開發 前端
本文介紹的關于錨點定位的功能都是基于實現一個最小版本的 Popover 展開的,基于錨點定位的 API 和回退候補,還有更多有趣的內容,感興趣的可以猛戳 MDN 進行了解:MDN - Anchor Positioning[6]、MDN-Anchor Positioning @position try。

從 Chrome 125 開始,支持了一個全新的 CSS 特性 - Anchor Positioning,翻譯過來即是錨點定位

在之前的文章中,我們較為系統的講述了這個新特性的使用,感興趣的可以翻開一下前文:搶先體驗!超強大的 Anchor Positioning 錨點定位[1]

在本文中,我們將使用錨點定位,實現一個簡化版本的 Popover 功能。下面,我們將一起一探究竟。

傳統 Popover 功能

長話短說,在日常的前端需求開發中,有這么一種場景,我們需要 hover 某個具體元素,以彈出一個彈出層,像是這樣:

圖片

如果我們將彈出層的 DOM 結構,寫在某個具體的元素內部,譬如放在與被 Hover 元素同級。如果被 Hover 元素的祖先元素的某一層設置了 overflow: hidden,則可能會出現這種截斷現象:

為了避免這種情況的發生,一般情況下,常見的解決方案都是會將彈出層的 DOM,插入到頁面最外層的 <body> 容器之下,再通過實時計算位置,將該彈出層定位到被 hover 元素附近。這也就是類似于 popper.js[2]Tippy.js[3] 等傳統庫所干的事情。

核心邏輯如下:

  • 通過 JavaScript 獲取觸發元素的位置信息(getBoundingClientRect)
  • 計算視口剩余空間(需考慮滾動位置、窗口尺寸等)
  • 動態調整 Popover 位置(需處理邊界碰撞、翻轉邏輯)
  • 添加 resize/scroll 事件監聽器進行位置修正

其核心在于,通過 Javascript 動態計算當前 hover 元素的位置,將彈出層定位到當前 hover 元素附近合適的位置,并且處理好各種邊界場景,這里很重要一點是強依賴于 Javascript 的計算。

因為傳統的 CSS,是沒有辦法改變元素的定位父元素的能力的。

而有趣的是,全新的 CSS 特性 - Anchor Positioning 錨點定位就是為了解決這個問題的。

快速了解 Anchor Positioning 錨點定位

那,到底什么是 Anchor Positioning 錨點定位呢?我們通過一個 DEMO 快速上手。

假設我們在頁面上有這么三個元素:按鈕A、按鈕B、被定位元素C,其中被 元素C 是一個插入到任意地方,且為絕對定位的元素,核心 CSS 代碼如下:

<body>
  <div class="btn-a">按鈕A</div>
  <div class="btn-b">按鈕B</div>
  <div class="anchor">被定位元素C</div>
</div>
.btn-a, .btn-b {
    // 高寬各類樣式
}
.anchor {
    position: absolute;
}

現在,三個元素屬于同級關系,且 C 元素是絕對定位,當前基于 body 進行絕對定位。

大致樣式如下:

而錨點定位的屬性的核心作用就是,能夠改變元素定位的基準,增強元素的絕對定位的能力。Anchor Positioning(錨點定位)允許我們基于其它錨點元素的位置和尺寸去定位上下文,而不是傳統意義上的基于父元素去進行絕對定位。

下面,我們利用錨點定位去實現,當兩個按鈕 A、B 被 Hover 的時候,讓定位元素 C 基于當前被 Hover 的按鈕元素進行絕對定位,核心 CSS 代碼如下:

.btn-a {
    // 將元素聲明為定位基準點,命名為 --btn-a
    anchor-name: --btn-a;
}

.btn-b {
    // 將元素聲明為定位基準點,命名為 --btn-b
    anchor-name: --btn-b;
}

// 當元素被 hover 的時候,改變 C 元素的樣式
.btn-a:hover ~ .anchor {
    // 錨點綁定,建立元素與錨點的定位關系 
    position-anchor: --btn-a;
    // 基于新的錨點元素,設置元素的 left\top 屬性
    left: anchor(--btn-a center);
    top: anchor(--btn-a bottom);
    // 利用 transform 輕微調整定位,非核心代碼
    transform: translate(-50%, 5px);
}

// 同理,與上面做的事情一致,知識在 hover 按鈕 B 時,重新設定錨點元素
.btn-b:hover ~ .anchor {
    position-anchor: --btn-b;
    left: anchor(--btn-b center);
    top: anchor(--btn-b bottom);
    transform: translate(-50%, 5px);
}

.anchor {
    // 方便動圖演示,增加元素過渡動畫,非核心代碼
    transition: all .2s;
}

核心關注上面的 anchor-name、position-anchor、 anchor 幾個屬性,其作用和含義在注釋中有說明,在下文還會再描述一次。

如此一來,我們就實現了動態改變 C 元素定位基準的能力,我們看看效果:

圖片

簡單而言,我們利用錨點定位的能力,在 hover 按鈕 A\B 的時候,把 C 元素定位在它們正下方。這個就是錨點定位的能力!

Anchor Positioning 錨點定位核心 API

(1)anchor-name:錨點定義

功能:將元素聲明為定位基準點。

語法:anchor-name: <dashed-ident>。

應用場景:觸發元素、參考元素、動態定位源。

/* 定義觸發元素為錨點 */
.trigger-btn {
  anchor-name: --menu-anchor;
}

(2)position-anchor:錨點綁定

功能:建立元素與錨點的定位關系。

語法:position-anchor: <dashed-ident>;

注意:需配合定位屬性(position: fixed/absolute)使用

.tooltip {
  position: fixed;
  position-anchor: --menu-anchor; /* 綁定到指定錨點 */
}

(3)anchor():動態定位

功能:根據錨點位置計算坐標

語法:anchor(<anchor-name>? <anchor-side>)

方位參數

  • 垂直:top/center/bottom
  • 水平:left/center/right
  • 組合:top-left/bottom-right 等。
.context-menu {
  /* 錨點右下角對齊 */
  top: anchor(--ctx-anchor bottom);
  left: anchor(--ctx-anchor right);
}

.tooltip {
  /* 水平居中于錨點 */
  left: anchor(center);
  right: anchor(center);
}

(4)anchor-size():尺寸繼承

功能:獲取錨點元素的尺寸值。

語法:anchor-size(<anchor-name>? <dimension>)

維度參數:width/height/block/inline

.popover {
  /* 繼承錨點寬度 */
  width: anchor-size(width);
  
  /* 最小高度為錨點高度的1.5倍 */
  min-height: calc(anchor-size(height) * 1.5);
}

這里介紹了錨點定位中最為核心的幾個屬性,掌握了這幾個屬性,就可以應付大部分場景了。在我之前的一篇入門文章中,對它們也有一些更為詳細的描述,感興趣的同學,可以翻看:搶先體驗!超強大的 Anchor Positioning 錨點定位[4]。

錨點定位的候補位置

還有一個非常重要的點,傳統的 Popover 組件,一般都會有這么個功能 -- 智能邊界處理。

我們以一個功能比較強大的 Popover 庫 floating-ui[5] 舉例,其官網展示了如下的一個功能,當元素在滾動過程中,如果原本 Popover 彈窗被遮擋,會自動進行位置移動,將彈窗重新調整到可視區域,效果如下:

圖片

令人振奮的是,現在,CSS 的 Anchor Positioning 錨點定位同樣支持這種 智能邊界處理,在錨點定位中,我們稱之為候補位置。

這里,我們主要借助兩個錨點定位相關的屬性完成錨點定位的候補位置 position-try-fallbacks 和 @position-try 規則。

@position-try 規則

@position-try 用于定義一個備選定位策略(一組定位規則),可以在多個元素中復用。它的語法類似于定義一個命名規則集合。

/* 語法示例:*/
@position-try --strategy-name {
  /* 具體的定位規則 */
  top: anchor(bottom);
  left: anchor(left);
}

關鍵點:

  • 命名策略:每個 @position-try 規則需要唯一名稱(如 --tooltip-below)。
  • 獨立作用域:策略內部的定位規則獨立于元素自身的樣式,僅在被調用時生效。

position-try-fallbacks 屬性

position-try-fallbacks 用于在元素上指定備選定位策略的優先級順序。瀏覽器會按順序嘗試這些策略,直到找到第一個可用的位置。

/* 語法示例:*/
.element {
  position-try-options: --strategy1, --strategy2, --strategy3;
}

關鍵點:

  • 順序敏感:瀏覽器按列表順序嘗試策略,第一個可行的策略會被應用。
  • 動態回退:如果所有策略均不可行,元素會回退到默認定位(或父容器約束)。

使用錨點定位實現候補位置

基于上述介紹,我們來實現一個基于錨點定位的候補位置。

假設我們如下結構,當前已經使用了錨點定位:

<body>
  <div class="btn">Reference</div>
  <div class="anchor">Popover彈窗元素</div>
</div>

核心 CSS 如下:

.btn {
    anchor-name: --btn;
    border: 1px dashed #000;
    background: #ddd;
}

.anchor {
    position: absolute;
    position-anchor: --btn;
    left: anchor(--btn-a center);
    top: anchor(--btn-a bottom);
    transform: translate(-50%, 5px);
}

此時,兩個元素都插入在 <body> 下面,但是 Popover 彈窗元素使用了 position-anchor: --btn 錨點定位,使其絕對定位的父元素是 .btn,并且,定位在按鈕的下方,效果如下:

圖片

此時,我們只需要再借助 position-try-fallbacks 和 @position-try,實現候補位置:

  • @position-try 定義一個候補規則。
  • position-try-fallbacks 引入候補規則。

核心 CSS 代碼如下:

.btn {
    anchor-name: --btn;
    border: 1px dashed #000;
    background: #ddd;
}

.anchor {
    position: absolute;
    position-anchor: --btn;
    left: anchor(--btn-a center);
    top: anchor(--btn-a bottom);
    transform: translate(-50%, 5px);
    position-try-fallbacks: --position-bottom;
}

@position-try --position-bottom {
    left: anchor(--btn center);
    bottom: anchor(--btn top);
    top: unset;
    margin-bottom: 10px;
}

這樣,我們在滾動頁面的過程中,如果彈窗 popover 有超出視窗,候補規則會自動生效,看看效果:

圖片

仔細觀察,和上面利用 Javascript 庫實現的智能定位,效果一致,只是此時,我們僅僅使用了寥寥幾行 CSS 代碼!Amazing!

綜上所述,到今天,我們已經可以利用 CSS 錨點定位大致實現一個極簡版的 Popover 彈窗,并且可以滿足大部分場景。不得不感嘆 CSS 確實愈發的強力,

當然,本文介紹的關于錨點定位的功能都是基于實現一個最小版本的 Popover 展開的,基于錨點定位的 API 和回退候補,還有更多有趣的內容,感興趣的可以猛戳 MDN 進行了解:MDN - Anchor Positioning[6]MDN-Anchor Positioning @position try[7]

最后

好了,本文到此結束,一個非常有意思的通過 CSS 拼接/裁剪/遮罩方式得到內凹圓角的技巧,希望本文對你有所幫助 :)

更多精彩 CSS 技術文章匯總在我的 Github -- iCSS[8] 

參考資料

[1]搶先體驗!超強大的 Anchor Positioning 錨點定位: https://github.com/chokcoco/iCSS/issues/239。

[2]popper.js: https://github.com/floating-ui/floating-ui。

[3]Tippy.js: https://atomiks.github.io/tippyjs/。

[4]搶先體驗!超強大的 Anchor Positioning 錨點定位: https://github.com/chokcoco/iCSS/issues/239。

[5]floating-ui: https://floating-ui.com/。

[6]MDN - Anchor Positioning: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_anchor_positioning。

[7]MDN-Anchor Positioning @position try: https://developer.mozilla.org/en-US/docs/Web/CSS/@position-try。

[8]Github -- iCSS: https://github.com/chokcoco/iCSS。

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2024-07-17 10:16:21

2015-01-21 15:45:50

斯巴達瀏覽器

2010-08-25 15:56:10

CSSPositioning定位

2015-09-15 11:35:00

磁塊推薦火狐瀏覽器

2016-10-09 08:38:01

JavaScript瀏覽器事件

2012-05-23 11:17:58

2018-01-19 14:39:53

瀏覽器頁面優化

2012-03-20 11:07:08

2012-03-20 11:31:58

移動瀏覽器

2012-03-19 17:25:22

2012-03-20 11:41:18

海豚瀏覽器

2023-09-05 09:40:55

SCSS預處理器

2023-09-05 09:44:26

CSS處理器函數

2012-03-19 17:17:00

移動瀏覽器歐朋

2012-03-20 11:22:02

QQ手機瀏覽器

2010-04-05 21:57:14

Netscape瀏覽器

2012-06-21 15:38:02

獵豹瀏覽器

2015-09-15 14:02:57

DNS解析

2017-03-12 10:15:18

瀏覽器DOM樹CSSOM樹

2023-08-29 08:28:43

React并發更新
點贊
收藏

51CTO技術棧公眾號

日本日本精品二区免费| 奇米一区二区三区四区久久| 久久久久无码国产精品一区李宗瑞| 成人免费网站在线观看视频| 粉嫩av亚洲一区二区图片| 欧美亚洲成人xxx| 网站永久看片免费| 美女福利一区| 在线成人免费观看| www国产黄色| 黄色片网站在线观看| 91在线观看免费视频| 成人黄色生活片| 天堂中文字幕在线观看| 午夜精品国产| 在线观看日韩av| 欧美夫妇交换xxx| 四虎国产精品免费久久| 精品国产福利在线| 乱子伦一区二区| 国产1区2区3区在线| 高清av一区二区| 国产专区精品视频| 91精品国产综合久久久蜜臀九色| 一区二区电影| 日韩中文字幕在线观看| wwwwxxxx国产| 欧美绝顶高潮抽搐喷水合集| 日韩区在线观看| 在线观看免费污视频| 亚洲人成午夜免电影费观看| 亚洲丶国产丶欧美一区二区三区| 宅男av一区二区三区| 成人在线免费观看| 久久久亚洲午夜电影| 国产在线一区二区三区播放| 亚洲av少妇一区二区在线观看| 另类综合日韩欧美亚洲| 国产ts一区二区| 国产剧情在线视频| 先锋亚洲精品| 777国产偷窥盗摄精品视频| 久一视频在线观看| 欧美日韩少妇| 欧美国产日本高清在线 | 国产精品一区二区中文字幕| 91精品国产91热久久久做人人 | 国产成人亚洲精品青草天美| 热久久99这里有精品| 日产欧产va高清| 亚洲激情女人| 久久久亚洲成人| 国产亚洲欧美久久久久| 亚洲特级毛片| 欧美激情a在线| 久久精品视频8| 亚洲久久一区二区| 欧美洲成人男女午夜视频| 91video| 欧美一级二区| 国产精品wwwwww| 亚洲无码久久久久久久| 韩国v欧美v日本v亚洲v| 97超碰在线播放| 成人午夜免费福利| 久久这里只有精品6| 欧美一区国产一区| av大片在线看| 亚洲精品视频免费观看| 国产九色porny| 新版的欧美在线视频| 色域天天综合网| 欧美成人三级在线播放| 久久视频免费| 日韩av一卡二卡| 亚洲成人黄色av| 999国产精品永久免费视频app| 久久伊人精品天天| 91国产丝袜播放在线| 久久蜜桃资源一区二区老牛| 青草青草久热精品视频在线观看| 中文字幕在线播放不卡| 国产电影一区二区三区| 久久综合九色综合久99| 在线免费观看黄色网址| 伊人婷婷欧美激情| av片中文字幕| 亚洲综合视频| 日韩电影中文字幕一区| 正在播放国产对白害羞| 国一区二区在线观看| 日韩美女在线观看| 国产免费一区二区三区最新不卡| 97久久超碰国产精品| 亚洲三区四区| 都市激情国产精品| 欧美日韩国产不卡| 手机在线成人av| 欧美高清视频手机在在线| 国色天香2019中文字幕在线观看| 波多野结衣毛片| 成人免费视频网站在线观看| 亚洲草草视频| 亚洲女色av| 日韩欧美一级二级三级| 第一次破处视频| 欧美日韩国产成人精品| 国产精品成人国产乱一区| 欧美熟女一区二区| 中文字幕综合网| 日本黄网站免费| 国产精品xxx在线观看| 日韩在线免费视频观看| 亚洲天堂一区在线观看| 国产成人欧美日韩在线电影| 亚洲欧美一区二区原创| 水蜜桃在线视频| 精品国产一区久久| 美国一级片在线观看| 日韩中文字幕91| 精品国产一区二区三区麻豆小说 | 国产精品美女无圣光视频| 天天综合天天综合| 亚洲久草在线视频| 国内国产精品天干天干| 国产欧美日韩| 欧美做爰性生交视频| 日本激情一区二区| 一区二区三区日韩在线观看| 一女二男3p波多野结衣| 国产一区二区亚洲| 日产精品久久久一区二区福利| 成人爽a毛片一区二区| 亚洲欧美乱综合| 五月婷婷六月丁香激情| 国产一区不卡| 日本久久久久久久久久久| 午夜成人免费影院| 亚洲国产精品一区二区尤物区| 日本成人在线免费观看| 亚洲精品网址| 5g国产欧美日韩视频| 久操视频在线| 制服丝袜中文字幕一区| 欧美风情第一页| 国精产品一区一区三区mba视频| 亚洲国产一区二区精品视频| 成人免费在线观看视频| 在线观看欧美视频| 91精品视频免费在线观看| 国产精品福利影院| 久久久久xxxx| 欧美不卡一区| 国产精品一区二区三区四区五区| 美女精品导航| 亚洲国产精品久久久久| 色网站在线播放| 久久午夜国产精品| www日韩视频| 成人在线免费观看91| 国产精品一区二区在线| 国产黄色在线免费观看| 精品久久国产老人久久综合| 日韩精品一区二区三| 2021国产精品久久精品| 欧美午夜性生活| 国产精品videosex性欧美| 亚洲一区二区三区乱码aⅴ蜜桃女| 91在线中字| 亚洲国产91精品在线观看| 蜜臀99久久精品久久久久小说 | 亚洲人一区二区| 日本亚洲视频| 欧美怡春院一区二区三区| 成人免费在线观看| 欧美军同video69gay| 国产亚洲第一页| 久久久精品一品道一区| 欧美在线a视频| 妖精视频成人观看www| 日韩影片在线播放| 日韩在线网址| 日本成熟性欧美| 欧美另类极品| 亚洲高清不卡av| 一二区在线观看| 亚洲国产综合视频在线观看| 国产人妻一区二区| 国产精品综合二区| 欧美 激情 在线| 亚洲国产一区二区三区在线播放| 国产综合18久久久久久| 国内精品伊人| 国产91成人在在线播放| 久久久久久久久免费视频| 亚洲精品国产精品国产自| 在线观看国产小视频| 亚洲成年人影院| 成年人视频软件| 91网站在线播放| 国产一级免费大片| 羞羞答答国产精品www一本| 福利网在线观看| 狠狠操综合网| 国产视频在线观看一区| 国产成人视屏| 日韩美女视频在线观看| 俺来也官网欧美久久精品| 色yeye香蕉凹凸一区二区av| 天天色天天操天天射| 日韩欧美一二区| 国产精品久久久久久久免费 | 综合欧美一区二区三区| 蜜桃av免费看| av亚洲精华国产精华精华| 91精品国产三级| 男女男精品网站| 男人揉女人奶房视频60分| 国产精品av久久久久久麻豆网| 亚洲国产精品日韩| 免费看成人哺乳视频网站| 国产精品久久久久av福利动漫| 欧美aaaaaaaa| 国产精品久久久久久久久久新婚| 久草在线中文最新视频| 久久久欧美一区二区| 丝袜在线视频| 久久国产精品久久久| 天天影视久久综合| 一区二区福利视频| 可以在线观看的黄色| 日韩成人中文字幕在线观看| 亚洲精品一区二区口爆| 正在播放亚洲一区| 国产乱叫456在线| 69av一区二区三区| 国产精品国产av| 91精品视频网| 精品人妻aV中文字幕乱码色欲| 欧美一区二区在线观看| 国产又粗又长又黄| 69堂亚洲精品首页| 国产色片在线观看| 欧美一区二区三区成人| 国产一区二区三区黄片| 欧美裸体bbwbbwbbw| 国产又大又长又粗| 欧美一区二区福利在线| 国产suv精品一区二区69| 7777精品伊人久久久大香线蕉最新版| 中文文字幕一区二区三三| 欧美日韩精品综合在线| 国产又粗又猛视频免费| 在线播放中文字幕一区| 精品黑人一区二区三区国语馆| 欧美成人精精品一区二区频| 人妻视频一区二区三区| 精品偷拍一区二区三区在线看| 免费在线超碰| 中文字幕欧美精品日韩中文字幕| 日本中文在线观看| 九九视频这里只有精品| 97人澡人人添人人爽欧美| 欧美在线一级va免费观看| 四虎4545www精品视频| 国产一区私人高清影院| 欧美特黄不卡| 久久久99国产精品免费| 精品国产一区二区三区四区 | 欧美日韩国产高清一区二区| 国产99久久九九精品无码免费| 精品国产免费一区二区三区香蕉| 无码国产色欲xxxx视频| 亚洲性日韩精品一区二区| 黄色av免费在线| 97在线视频一区| 四虎在线精品| 黄色99视频| 久久蜜桃av| 无码中文字幕色专区| 日本在线不卡视频| 国产调教打屁股xxxx网站| 久久亚洲捆绑美女| 久久国产美女视频| 色综合天天天天做夜夜夜夜做| 夜夜狠狠擅视频| 日韩av一区二区在线观看| 亚洲乱亚洲乱妇| 91国在线精品国内播放| 青草综合视频| 久久99国产精品| 欧美激情一区| 五月婷婷狠狠操| 国产不卡视频在线观看| 三年中国中文观看免费播放| 一区二区高清在线| 成人黄色免费网| 亚洲国产天堂久久综合网| 免费在线观看av网站| 日韩av大片免费看| h视频久久久| 亚洲国产精品视频一区| 午夜在线播放视频欧美| 老女人性生活视频| 国产精品色呦呦| 国产精品久久久久久久久久久久久久久久久 | 久久不见久久见免费视频7| 九一免费在线观看| 奇米777欧美一区二区| 中国极品少妇videossexhd | 久久久久久久久久伊人| 日韩电影一区二区三区| 中文成人无字幕乱码精品区| 亚洲精品第1页| 在线观看免费黄色小视频| 精品亚洲一区二区三区| 免费在线观看av电影| 成人欧美在线观看| 日本久久黄色| 欧美精品99久久| 成人黄色国产精品网站大全在线免费观看 | 午夜av一区二区三区| wwwxxxx国产| 久久精品国产欧美激情| 久久久加勒比| 台湾成人av| 久久伊人亚洲| 成年人网站免费在线观看| 午夜视黄欧洲亚洲| 亚洲精品久久久久久久久久 | 亚洲欧美日韩图片| 麻豆成全视频免费观看在线看| 风间由美久久久| 欧美午夜在线视频| 色哟哟网站在线观看| 亚洲精品免费播放| 国产丝袜在线视频| 欧美成人一区二区三区电影| 高清国产一区二区三区四区五区| 亚洲三区在线观看| 精品一区二区三区欧美| 肉色超薄丝袜脚交69xx图片| 欧美日韩一区高清| 欧美极品另类| 91久久精品美女高潮| 亚洲精品成人无限看| 深夜福利网站在线观看| 一区二区三区高清| 亚洲不卡免费视频| 69av在线播放| 亚洲v天堂v手机在线| 国产男女激情视频| 国产精品毛片a∨一区二区三区 | 亚洲国产精品热久久| 亚洲黄色中文字幕| 日韩视频专区| 久88久久88久久久| 欧美成人精品一区二区免费看片| 日韩精品中文字幕一区二区三区 | 黄色片在线免费看| 国产精品美女视频网站| 亚洲乱码精品| 成年女人免费视频| 欧美日韩亚洲成人| porn视频在线观看| 92福利视频午夜1000合集在线观看| 中文字幕免费一区二区| 97精品人妻一区二区三区蜜桃| 精品成人av一区| 二区三区在线播放| 91手机在线播放| 国产精品老牛| 老司机精品免费视频| 日韩精品最新网址| 午夜无码国产理论在线| 中文字幕乱码免费| 97成人超碰视| 亚洲中文字幕在线观看| 欧美激情视频三区| 九九免费精品视频在线观看| 五月天视频在线观看| 午夜精品在线看| 在线免费av电影| 极品校花啪啪激情久久| 青青草国产精品97视觉盛宴| 真实国产乱子伦对白在线| 日韩国产高清视频在线| 亚洲综合视频| 18禁男女爽爽爽午夜网站免费| 国产精品福利一区二区| 亚洲 欧美 精品| 亚洲精品日韩av| 久久中文字幕一区二区三区| 粉嫩av性色av蜜臀av网站| 亚洲精品一区二区网址| 麻豆国产一区| 欧美伦理片在线看| 午夜精品视频一区| av网站网址在线观看| 青娱乐国产91|