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

上下求索 Flexbox 優雅布局

開發 架構
本文嘗試從標題布局、左右布局、均分布局、跟隨布局、父子寬度約束探究和空間無限縮小共六個案例練練解題思路和見招拆招。

前端布局問題在工作中俯拾皆是,是時候花些時間上下求索一番。本文嘗試從標題布局、左右布局、均分布局、跟隨布局、父子寬度約束探究和空間無限縮小共六個案例練練解題思路和見招拆招。希望對你提高工作效率和技術水平有啟發。

㈠ 標題布局

題目:標題居中且超長打點,標題左右包含若干圖標。

圖片

解答:

⑴ 標題居中,必須控制左右距離相等,即典型的左中右結構。

圖片

常見做法是使用絕對布局,標題左右設置相同邊距(margin 或 padding),左右圖標使用絕對布局(position: absolute)蓋在標題左右邊距上。需要注意的是標題容器需要設置為相對布局(position: relative),作為左右圖標的錨點。

圖片

更優雅的做法是通過 flexbox 布局,左右固定寬度,剩余空間都是中間的,即彈性伸縮屬性設置為自動(flex: auto),等同于 flex: 1 1 auto。其中 flex-grow 為 1 意味著空間富余可以擴展,flex-shrink 為 1 意味著空間不夠可以收縮,flex-basis 為 auto 意味著使用 width 或 height 顯示設置的寬高(主軸方向橫向則取寬度,縱向則取高度),沒有設置則使用內容的寬高。

圖片

⑵ 標題超長打點,需要設置不換行(white-space: nowrap)、溢出隱藏(overflow: hidden) 和文本溢出打點(text-overflow: ellipsis)。

⑶ 左右圖標布局,常見的做法準確計算邊距使得剛好左側左對齊,右側右對齊。但更優雅的做法還是 flexbox 布局,把計算的事“甩”給彈性布局,直接左側主軸方向正方向(flex-direction: row,默認值),右側主軸方向反方向(flex-direction: row-reverse)。

圖片

㈡ 左右布局

題目:左側若干圖標從左到右依次排放,最后一個圖標靠最右側放置。

圖片

解答:

有三種解題方法,除了上面的絕對布局和彈性伸縮屬性設置為自動外,還更簡單的方案,就是在flexbox布局中設置左邊為自動(margin-left: auto)。

圖片

㈢ 均分布局

題目:不同內容寬度的子元素均分空間(下圖綠藍紅為子元素,其中深色為內容區,淺色為擴展富余空間)。

圖片

解答:

眾所周知,自動彈性伸縮(flex: auto)只能擴展富余空間而非整體空間,上題我們很容易且好像也只能做到如下效果:

圖片

均分空間做不到?答案必須是“No”。

flex: auto 全稱是  flex: 1 1 auto,其中最后一位是 flex-basis,即彈性基準大小,默認是內容大小。那么內容大小能不能設置為0?答案曰之“能”。直接上代碼:

圖片

㈣ 跟隨布局

題目:圖標始終緊緊跟隨在標題后面,當標題內容超長時,圖標仍然顯示,標題文本可以超長打點。

圖片

解答:

這問題也太水了吧?整個標題設置為彈性布局,文本伸縮屬性使用默認值(flex: initial,即 flex: 0 1 auto,空間富余不伸展但空間不足要收縮),設置超長打點(overflow: hidden; text-overflow: ellipsis;),圖標放標題右側即可。

圖片

這里多說一句,細心的小伙伴發現,上面超長打點沒有設置不換行(white-space: nowrap)。

為啥超長了不是另起一行?因為div標簽默認塊布局(display: block),本身就是不換行的,如果布局屬性換成了彈性布局,則需要像標題布局一樣設置不換行。

等等,這道題“水”怎么說?

之所以有這道題,是因為我延用了 Android 的布局思維(我從 Android 轉 Web 不久),標題跟隨不截斷在 App 中首頁和列表頁隨處可見,自然 Android 也需要實現該功能。

但 Android 里面如果要超長打點,就必須限定寬度,常規寫法是文本寬度為0,自適應占用其他控件布局后剩下的富余空間(LinearLayout# layout_width: 0;  layout_weight: 1; ),因為 Android 支持的布局限制,使得該題變得有點意思了。

如果帶入到前端,假設伸縮屬性只能設置為即伸展又收縮(flex: auto),如何實現標題跟隨不截斷?

先直接改下上面代碼看看具象效果。

圖片

那么,問題來了?在文本未超長時,圖標不跟隨了...

讓我們看看 Android 上面的效果,下面圖示紅框圈起來的 2 個區域,區域 1 和上面 Web 實現類似,文本控件寬度為 0 權重為 1(android:layout_width="0px" android:layout_weight="1"),在文本較短時直接擴展了富余空間撐大了,導致圖標右對齊而不是跟隨。

圖片

這里用到一個“小妙招”,文本控件屬性不變,但是文本和圖標控件再包一層橫向線性布局自適應寬度(android:layout_width="wrap_content"),這樣就能確保文本較短時不會撐大。因為父控件為自適應寬度,沒有額外的富余空間且最大空間受自己父控件約束,效果即區域 2。

上述思路來源于原美團同事袁件在 2015 年的分享,這個解題思路之所以念念不忘,主要是有點像腦筋急轉彎,記住了也就會了,要是硬想可能很難想出來。

當然了,一般這種情況通過自定義布局就能簡單實現,主旨就是先算其他控件大小,如果當前寬度過長則只占據剩下空間,否則正常自身寬度。

圖片

同樣方法照搬到 Web 是否可以?

讓我們來試試,文本控件自動伸縮,Android 設置屬性為 layout_width="0px" 和 layout_weight="1",等同于 Web 設置為 flex: auto。在文本和圖標外包了一層自適應寬度的橫向線性布局,Android 設置屬性為 layout_width="wrap_content",等同于 Web 設置為(width: 100%; max-width: min-content; )或(width: min-content; max-width: 100%;),即寬度為內容大小和父組件大小中最小值。

圖片

劃重點,通過同時設置 width 和 max-width 使得寬度在短內容時跟隨,在長內容時打點,本身也是“小妙招”,正常很少兩個同時使用。認同的小伙伴有必要記一下。

為啥我繞這么大的圈子講一個 Web 上舍易求難的問題,主要是通過 Web 實踐檢驗已有的 Android 經驗,邏輯大同小異必然實現殊途同歸,同時多場景對比,加強自己對彈性布局的理解。

㈣ 父子寬度約束探究

題目:父組件寬度固定(width: 200px),組件設置為彈性布局(display: flex),里面子組件是文本和圖標。

圖片

在文本長度超出時,組件寬度是超長的內容寬度(下圖中標號 1)還是父組件寬度(下圖中標號 2)?

圖片

解答:

結論先行,實測答案時標號 2。

咋一看,彈性組件容器沒有設置寬度,感覺其寬度應該就是內容寬度,既然內容超長,那么背景色肯定和內容一樣。

既然和想的不一樣,查一下 CSS 官方文檔,width 不顯示設置時使用默認值  auto,auto 在文檔中的解釋是“瀏覽器將會為指定的元素計算并選擇一個寬度?!?/p>

不過感覺說了和沒說一樣,到底是怎么一個計算算法也沒有講。實測發現 auto 對應的是父組件大小,即背景色覆蓋區域只是父組件范圍。

那么如果我們要做到組件寬度是超長內容寬度呢?

這是一道送分題,直接設置寬度為內容大小(width: min-content)即可。

不過我在實測中發現,還有另外一個方法,將父組件設置為彈性布局也能達到同樣效果。

邏輯上說,不顯示設置寬度則取默認值 auto,即父組件大小,父組件不管是否是彈性布局,大小已經顯示指定了,但實際影響了組件寬度?至于為什么是這樣,現在的我的確不知道,問題留給未來的自己,或者屏幕前的你來回答。

㈤ 空間無限縮小

好奇心來自于看到官方文檔 《flex 布局的基本概念》中的“如果有太多元素超出容器,它們會溢出而不會換行?!?/p>

太多不是會壓縮么,對于彈性默認屬性(flex: initial,即 flex: 0 1 auto,不擴展只收縮),怎么會是溢出?

我自己復制黏貼了一堆文本,發現竟然真是溢出?如下圖。

圖片

給我整不會了...

后來在和同事永健的溝通下,得知當組件寬度被收縮到最小內容大小時就不再收縮,文本本身大小即最小內容大小,可以通過最小寬度(min-width)設置內容大小。

至此,真相終于大白了。

順便吹毛求疵一下,官方文檔寫得還是不嚴謹,引起了不必要的誤解。

附 Web Demo Html 源碼:

<html>
<head>
<meta charset="utf-8">
<title>flex Demo</title>
<style type="text/css">
body {
font-size: 32px;
}
</style>
</head>
<body>
<!-- 標題欄布局 -->
<div
style="width: 640px; height: 100px; display: flex; align-items: center; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="width: 100px; display: flex; padding: 0 15px;">
<div> ?? </div>
</div>
<div style="flex: auto; margin: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
標題標題標題標題標題標題標題標題標題</div>
<div
style="width: 100px; display: flex; flex-direction: row-reverse; justify-content: space-between; padding: 0 15px;">
<div>...</div>
<div>??</div>
</div>
</div>

<!-- 絕對定位方式實現左中右布局 -->
<div
style="width: 640px; height: 100px; position: relative; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="width: 100px; height: 100px; position: absolute; top: 0; left: 0; background-color: #96D149;"></div>
<div style="height: 100px; padding: 0 100px; background-color: #5976B3;"></div>
<div style="width: 100px; height: 100px; position: absolute; top: 0; right: 0; background-color: #eb7b88;">
</div>
</div>

<!-- flex布局伸縮屬性設置為自動實現左中右布局 -->
<div
style="width: 640px; height: 100px; display: flex; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="width: 100px; background-color: #96D149;"></div>
<div style="flex: auto; background-color: #5976B3;"></div>
<div style="width: 100px; background-color: #eb7b88;">
</div>
</div>

<!-- ⑴ 絕對定位方式實現左右布局-->
<div
style="width: 640px; height: 100px; position: relative; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="width: 100px; height: 100px; display: inline-block; line-height: 100px; text-align: center;">??
</div>
<div style="width: 100px; height: 100px; display: inline-block; line-height: 100px; text-align: center;">??
</div>
<div style="width: 100px; height: 100px; display: inline-block; line-height: 100px; text-align: center;">??
</div>
<div
style="width: 100px; height: 100px; position: absolute; top: 0; right: 0; display: inline-block; line-height: 100px; text-align: center;">
??</div>
</div>

<!-- ⑵ flex布局伸縮屬性設置為自動實現左右布局-->
<div
style="width: 640px; height: 100px; display: flex; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">??
</div>
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">??
</div>
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">??
</div>
<!-- 空div延長可用空間使得最后一個元素靠右-->
<div style="flex: auto;"></div>
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">
??</div>
</div>

<!-- ⑶ flex布局左邊距設置為自動實現左右布局-->
<div
style="width: 640px; height: 100px; display: flex; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">??</div>
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">??</div>
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center;">??</div>
<div style="width: 100px; height: 100px; line-height: 100px; text-align: center; margin-left: auto;">??</div>
</div>

<!-- 均分布局設置 flex: 1 0 0 實現不同內容寬度子元素均分空間 -->
<div
style="width: 640px; height: 100px; display: flex; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="flex: 1 0 0; background-color: #96D149; margin: 5px;">
<div style="width: 50px; line-height: 90px; background-color: #729d39; text-align: center;">
1</div>
</div>
<div style="flex: 1 0 0; background-color: #5976B3; margin: 5px;">
<div style="width: 100px; line-height: 90px; background-color: #486092; text-align: center;">
2</div>
</div>
<div style="flex: 1 0 0; background-color: #eb7b88; margin: 5px;">
<div style="width: 150px; line-height: 90px; background-color: #a8545e; text-align: center;">
3</div>
</div>
</div>

<!-- 設置flex: auto 只能均分富余空間 -->
<div
style="width: 640px; height: 100px; display: flex; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="flex: auto; background-color: #96D149; margin: 5px;">
<div style="width: 50px; line-height: 90px; background-color: #729d39; text-align: center;">
1</div>
</div>
<div style="flex: auto; background-color: #5976B3; margin: 5px;">
<div style="width: 100px; line-height: 90px; background-color: #486092; text-align: center;">
2</div>
</div>
<div style="flex: auto; background-color: #eb7b88; margin: 5px;">
<div style="width: 150px; line-height: 90px; background-color: #a8545e; text-align: center;">
3</div>
</div>
</div>
<!-- 圖標跟隨且不截斷布局 flex: initial,即 flex: 0 1 auto -->
<div
style="width: 640px; height: 100px; display: flex; align-items: center; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<div style="flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; margin: 5px;">1234567890</div>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
<div
style="width: 640px; height: 100px; display: flex; align-items: center; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<span style="flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; margin-left: 10px;">
1234567890123456789012345678901234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>

<!-- 圖標跟隨且不截斷布局:僅伸展不收縮(flex: auto) -->
<div
style="width: 640px; height: 100px; display: flex; align-items: center; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<span style="flex: auto; overflow: hidden; text-overflow: ellipsis; margin: 5px;">1234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
<div
style="width: 640px; height: 100px; display: flex; align-items: center; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<span style="flex: auto; overflow: hidden; text-overflow: ellipsis; margin-left: 10px;">
1234567890123456789012345678901234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>

<!-- 圖標跟隨且不截斷布局:仿 Android 思路,除文本控件自動伸縮(layout_width="0px" layout_weight="1")外,還在文本和圖標外包了一層自適應寬度的橫向線性布局(layout_width="wrap_content"-->
<div style="width: 640px; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<!-- 在文本和圖標外包了一層自適應寬度的橫向線性布局((width: 100%; max-width: min-content;) 或者 (width: min-content; max-width: 100%;)) -->
<!-- <div style="width: 100%; max-width: min-content; line-height: 100px; display: flex; align-items: center;"></div> -->
<div style="width: min-content; max-width: 100%; line-height: 100px; display: flex; align-items: center;">
<!-- 文本控件自動伸縮(flex: auto) -->
<span style="flex: auto; overflow: hidden; text-overflow: ellipsis; margin: 5px;">1234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
</div>
<div style="width: 640px; margin: 30px; border: 3px solid black; background-color: #fed9a1;">
<!-- 在文本和圖標外包了一層自適應寬度的橫向線性布局((width: 100%; max-width: min-content;) 或者 (width: min-content; max-width: 100%;)) -->
<!-- <div style="width: 100%; max-width: min-content; line-height: 100px; display: flex; align-items: center;"></div> -->
<div style="width: min-content; max-width: 100%; line-height: 100px; display: flex; align-items: center;">
<!-- 文本控件自動伸縮(flex: auto) -->
<span style="flex: auto; overflow: hidden; text-overflow: ellipsis; margin: 5px;">
1234567890123456789012345678901234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
</div>

<!-- 父子寬度約束探究:未顯示設置彈性布局寬度時,彈性布局寬度等于內容寬度還是父組件寬度?-->
<!-- 父組件固定寬度 -->
<div
style="width: 200px; height: 100px; background-color: #fed9a1; border: 3px solid black; align-items: center; margin: 30px;">
<!-- 組件彈性布局顯示設置寬度為內容寬度 -->
<div
style="display: flex; width: min-content; height: 100px; line-height: 100px; background-color: #F2DE5C; align-items: center;">
<!-- 子組件文案超長 -->
<span style="margin: 5px;">12345678901234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
</div>
<!-- 父組件固定寬度且設置為彈性容器 -->
<div
style="width: 200px; height: 100px; display: flex; background-color: #fed9a1; border: 3px solid black; align-items: center; margin: 30px;">
<!-- 組件彈性布局不顯示設置寬度 -->
<div style="display: flex; height: 100px; line-height: 100px; background-color: #F2DE5C; align-items: center;">
<!-- 子組件文案超長 -->
<span style="margin: 5px;">12345678901234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
</div>
<div
style="width: 200px; height: 100px; background-color: #fed9a1; border: 3px solid black; align-items: center; margin:30px">
<div style="display: flex; height: 100px; line-height: 100px; background-color: #F2DE5C; align-items: center;">
<span style="margin: 5px;">12345678901234567890</span>
<span>??</span>
<span style="margin: 5px;">??</span>
</div>
</div>
</body>
</html

附 Android Demo XML 源碼:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--整體顯示區域,縱向線性布局,相對于父控件水平居中-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="100px"
android:layout_gravity="center_horizontal">
<!--區域1短文本,僅文本控件自動伸縮(layout_width="0px" layout_weight="1"-->
<LinearLayout
android:layout_width="640px"
android:layout_height="100px"
android:orientation="horizontal"
android:gravity="center_vertical"
android:background="@drawable/border_background">
<TextView
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:singleLine="true"
android:ellipsize="marquee"
android:text="1234567890"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="??"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:text="??"/>
</LinearLayout>
<!--區域1長文本,僅文本控件自動伸縮(layout_width="0px" layout_weight="1"-->
<LinearLayout
android:layout_width="640px"
android:layout_height="100px"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginTop="30px"
android:background="@drawable/border_background">
<TextView
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:singleLine="true"
android:ellipsize="marquee"
android:text="1234567890123456789012345678901234567890"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="??"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:text="??"/>
</LinearLayout>
<!--區域2短文本,除文本控件自動伸縮外,還在文本和圖標外包了一層自適應寬度的橫向線性布局(layout_width="wrap_content"-->
<LinearLayout
android:layout_width="640px"
android:layout_height="100px"
android:orientation="horizontal"
android:layout_marginTop="100px"
android:background="@drawable/border_background">
<!--巧妙在于自適應寬度的包裹,完美消除了權重撐大問題-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100px"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:singleLine="true"
android:ellipsize="marquee"
android:text="1234567890"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="??"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:text="??"/>
</LinearLayout>
</LinearLayout>
<!--區域2長文本,除文本控件自動伸縮外,還在文本和圖標外包了一層自適應寬度的橫向線性布局(layout_width="wrap_content"-->
<LinearLayout
android:layout_width="640px"
android:layout_height="100px"
android:orientation="horizontal"
android:layout_marginTop="30px"
android:background="@drawable/border_background">
<!--巧妙在于自適應寬度的包裹,完美消除了權重撐大問題-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100px"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
android:text="1234567890123456789012345678901234567890"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="??"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:text="??"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>
責任編輯:武曉燕 來源: 書強號
相關推薦

2017-07-10 13:09:45

前端Flexbox

2017-05-24 10:12:54

前端FlexboxCSS3

2012-03-05 14:50:15

Facebook黑客商業

2012-02-20 10:16:39

數據中心機房布線

2017-10-10 15:52:17

前端FlexboxCSS Grid

2022-01-27 08:27:23

Dubbo上下線設計

2021-04-20 10:20:27

Dubbo網絡通信通信協議

2021-04-20 09:42:20

鴻蒙HarmonyOS應用開發

2023-07-14 21:34:40

JVM上下線線程

2025-10-11 04:00:11

Flexbox容器margin

2024-09-24 10:30:32

2021-04-12 08:01:21

GridFlexbox網格

2017-08-28 14:58:19

CSSFlexbox注釋格式優化

2023-05-22 10:09:21

FlexboxCSS3

2013-04-09 20:04:08

大數據英特爾存儲

2025-07-10 00:00:00

2017-02-20 23:12:16

Flexbox

2017-05-11 15:01:43

Androidweb布局

2024-03-19 09:06:14

CSS父元素元素
點贊
收藏

51CTO技術棧公眾號

国产日韩电影| 老熟妇一区二区三区啪啪| 国产亚洲久久| 亚洲国产aⅴ天堂久久| 国产一区二区不卡视频在线观看| 五月激情六月丁香| 久久精品国产68国产精品亚洲| 欧美一区二区三区四区五区| 波多野结衣乳巨码无在线| 97在线观看免费观看高清| 精品在线观看免费| 91产国在线观看动作片喷水| 亚洲毛片亚洲毛片亚洲毛片| 福利欧美精品在线| 欧美日韩在线综合| 日本阿v视频在线观看| 啊v视频在线| 成人av在线网站| 国产日韩精品在线| 日韩av大片在线观看| 欧美h版在线| 亚洲精品中文字幕女同| 国产成人av电影在线| 香蕉视频在线看| 伊人五月天婷婷| 国产一二三区av| 成人影院在线观看| 国产亚洲一区二区在线观看| 91中文在线视频| 在线免费观看国产精品| 国内精品久久久久久久影视麻豆 | 国产精品久久综合青草亚洲AV| 亚洲精品孕妇| 欧美日韩国产成人在线| 亚洲欧洲综合网| av中文一区| 亚洲美女av在线| 亚洲天堂av网站| 精品国产18久久久久久二百| 在线视频观看一区| 女人扒开屁股爽桶30分钟| 三级资源在线| 亚洲三级电影网站| 亚洲免费精品视频| 国产福利在线视频| 久久精品一区四区| 欧美日韩一区二区视频在线观看| 你懂的网站在线| 国产成人高清在线| 91麻豆精品秘密入口| 国产一区二区三区视频免费观看| 日韩国产在线观看| 91精品国产成人| 国产成人无码精品| 91精品又粗又猛又爽| 欧美成人在线免费| 亚洲伊人伊色伊影伊综合网| 另类视频在线观看| 日本不卡一二区| 日本a口亚洲| 一本色道久久综合亚洲精品小说| 国产精品福利导航| 性欧美lx╳lx╳| 日韩毛片中文字幕| 中出视频在线观看| 四虎影视精品| 亚洲天堂av女优| 国产精品理论在线| 色琪琪久久se色| 日韩在线播放av| 91杏吧porn蝌蚪| 国产精品v欧美精品v日本精品动漫| 美女福利精品视频| 久久精品www| 99精品视频网| 国产999视频| 亚洲一区二区天堂| 国产又黄又大久久| 国产精品麻豆免费版| 五十路在线视频| 久久毛片高清国产| 午夜精品短视频| 国产精品久久麻豆| 亚洲尤物在线视频观看| 欧美不卡在线播放| avav成人| 日韩欧美国产精品一区| 最近的2019中文字幕免费一页| 国产91在线免费观看| 91精品国产自产精品男人的天堂| 亚洲成人亚洲激情| 中文字幕国产专区| 天天综合亚洲| 91超碰caoporn97人人| 中文字幕人妻一区二区三区视频| 国产麻豆成人精品| 欧美成熟毛茸茸复古| 日本视频不卡| 婷婷久久综合九色综合伊人色| 国产精品乱码久久久久| 日韩成人18| 亚洲精品自拍偷拍| 欧美一级片在线视频| 欧美日本在线| 国产精品视频99| 亚洲AV无码国产精品午夜字幕| 91论坛在线播放| 自拍偷拍视频在线| 欧美男体视频| 日韩欧美成人激情| av电影在线不卡| 国产综合亚洲精品一区二| 国产精品欧美久久久| 国内爆初菊对白视频| 国产精品亲子伦对白| 免费看国产曰批40分钟| 国产精品一区二区三区av| 亚洲老头同性xxxxx| 久热精品在线观看| 激情综合网av| 日本日本精品二区免费| 国产蜜臀一区二区打屁股调教| 欧美唯美清纯偷拍| 亚洲一区二区观看| 自由日本语亚洲人高潮| 国产精品极品美女在线观看免费| 日韩中文字幕影院| 亚洲精品美腿丝袜| 91制片厂毛片| 欧美人妖在线| 69精品小视频| 丰满人妻av一区二区三区| 中文字幕亚洲一区二区va在线| 99久久激情视频| 秋霞影视一区二区三区| 久久久久久有精品国产| 国产www视频| 日韩理论片一区二区| 在线免费视频a| 国产一区二区三区探花| 欧美在线观看网址综合| 天堂资源最新在线| 偷拍一区二区三区四区| 岛国精品一区二区三区| 欧美久久九九| 国产91视觉| 欧美黄色视屏| 精品999久久久| 国产一级视频在线| 成人黄色国产精品网站大全在线免费观看 | 国产精品原创巨作av| 一区二区三区四区欧美日韩| 国产麻豆一区| 精品国产自在精品国产浪潮| 国产一区二区三区视频免费观看| 亚洲人妖av一区二区| 日本高清一区二区视频| 91九色精品| 91精品国产91久久久久青草| 97超碰资源站在线观看| 欧美成人精品高清在线播放 | 色一区在线观看| 在线国产视频一区| 免费成人你懂的| 一区二区三区四区欧美| 精品国产不卡一区二区| 久久全国免费视频| 天堂在线一二区| 在线亚洲一区二区| 色www亚洲国产阿娇yao| 狠狠色狠狠色综合日日91app| 潘金莲一级淫片aaaaa免费看| 亚洲视频精选| 欧美亚洲免费电影| 亚洲图片88| 日韩欧美国产三级| 日本熟女毛茸茸| 国产精品免费av| av不卡中文字幕| 久久综合网络一区二区| 在线国产99| 粉嫩一区二区三区四区公司1| 欧美亚洲国产日本| 免费黄色在线网站| 亚洲成人久久网| 91视频久久久| 一区二区三区中文字幕| 亚洲成人av免费在线观看| 久久精品国产**网站演员| 男人天堂手机在线视频| 国产精品密蕾丝视频下载| 91日本在线视频| 美女网站在线看| 精品国产自在精品国产浪潮| 人妻精品无码一区二区| 欧美三级资源在线| 国产网友自拍视频| 中文字幕巨乱亚洲| 亚洲啪av永久无码精品放毛片| 久久在线精品| 国产欧美日韩小视频| 日韩理论电影大全| 精品国产综合| 日本午夜免费一区二区| 91国内免费在线视频| 乱人伦中文视频在线| 亚洲精品乱码久久久久久金桔影视 | 黄色av电影在线观看| 日韩欧美一区二区三区在线| 丁香社区五月天| 亚洲午夜影视影院在线观看| 国产精品国产三级国产专业不| 在线日韩av| 久久五月激情| 欧美日韩日本视频| 婷婷激情四射网| 国产亚洲制服色| 久久性爱视频网站| 国产综合色视频| 黄色高清无遮挡| 亚洲高清毛片| 穿情趣内衣被c到高潮视频| 99中文字幕一区| 黄页视频在线播放| 亚洲影音一区| gogogo免费高清日本写真| 另类ts人妖一区二区三区| 成人精品视频久久久久| 日韩在线观看不卡| 秋霞av国产精品一区| 色www永久免费视频首页在线| 日韩中文字幕精品视频| 男插女视频网站| 图片区乱熟图片区亚洲| 日韩大片免费观看| 欧美黑人国产人伦爽爽爽| 网友自拍视频在线| 国产亚洲在线播放| 欧美拍拍视频| 亚洲毛片在线观看.| 无码精品人妻一区二区| 日韩av一卡二卡| 人妻换人妻仑乱| 五月婷婷欧美激情| 欧美高清成人| 国产精品麻豆久久| 91久久精品美女| 欧美一区二区三区婷婷| 国产精品免费久久久| 电影一区二区三| 欧美专区国产专区| 激情视频在线观看免费| 日韩欧美中文字幕一区二区三区| 欧美在线高清| 国产欧美最新羞羞视频在线观看| 女生影院久久| 日韩av电影在线免费播放| a日韩av网址| 国产成人精品久久| 欧美日一区二区三区| 国产精品永久免费在线| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 全国精品久久少妇| 欧美黑人又粗又大又爽免费| 伊人久久成人| 久久国产精品网| 国产日韩欧美在线播放不卡| 日韩精品视频久久| 日本vs亚洲vs韩国一区三区二区| 日韩av电影在线免费播放| 日韩中文字幕一区二区| 亚洲视频一区在线播放| 在线观看日韩电影| 91女人18毛片水多国产| 欧美一区二区黄| 天天摸天天碰天天爽天天弄| 亚洲美女性生活视频| 日本a级在线| 久久久久久久久亚洲| 婷婷午夜社区一区| 99久久国产综合精品色伊| 午夜在线电影亚洲一区| 激情六月天婷婷| 激情久久婷婷| 欧美牲交a欧美牲交aⅴ免费真| 青青草视频一区| 一级全黄裸体片| 久久精品亚洲精品国产欧美kt∨ | 91入口在线观看| 在线xxxxx| 4438x成人网全国最大| 蜜桃视频第一区免费观看| 日韩欧美在线不卡| 精品国产乱码一区二区三区四区| 国产在线一在线二| 91网站黄www| 欧美人动与zoxxxx乱| 在线观看日本中文字幕| 亚洲人成7777| 天堂网一区二区三区| 欧美日韩午夜在线视频| 亚洲精品无码久久久| 国产一区二区成人| 欧美人体视频xxxxx| 国产精品美女网站| 卡一精品卡二卡三网站乱码| 91香蕉电影院| 国产xxxxhd| 日韩中字在线| 精品无码国模私拍视频| 美女视频黄 久久| 波多野结衣影院| 亚洲欧美成人一区二区三区| 99精品人妻国产毛片| 精品伦理精品一区| 久热国产在线| 国产精品专区一| 免费欧美视频| 无码专区aaaaaa免费视频| 国产激情精品久久久第一区二区| 亚洲а∨天堂久久精品2021| 午夜精品久久久久久久久| 国产成人精品一区二三区四区五区| 亚洲男人的天堂在线| free性欧美| 成人欧美一区二区| 亚洲成人一区| 91高清国产视频| 中文字幕欧美日韩一区| 天堂网一区二区| 亚洲午夜精品久久久久久性色| 三级中文字幕在线观看| 国产在线一区二区三区四区| 亚洲性人人天天夜夜摸| 4438x全国最大成人| 亚洲天堂网中文字| 97人妻一区二区精品免费视频| 中文国产亚洲喷潮| 欧美日韩国产网站| 天天综合色天天综合色hd| 久久久噜噜噜久久狠狠50岁| 美女100%无挡| 色婷婷亚洲精品| 国产女人在线视频| 国产精品久久久久影院日本| 欧美丝袜一区| 亚洲欧美国产日韩综合| 国产精品久久久久久久久图文区| 中文字幕在线观看第二页| 国产一区二区三区在线免费观看 | 在线观看一区二区三区视频| 中文字幕日韩一区二区| 91九色蝌蚪91por成人| 精品久久国产精品| 日韩精品久久久久久久软件91| 激情视频小说图片| 国产高清久久久久| 日韩av免费网址| 亚洲精品视频网上网址在线观看| 精品国产第一福利网站| 色一情一乱一伦一区二区三区丨| 美女视频黄频大全不卡视频在线播放| 亚洲伦理一区二区三区| 日韩美女在线视频| 欧美调教sm| 亚洲一区三区| 国产成人免费在线观看| 日韩精品手机在线| 中文字幕亚洲一区二区三区五十路 | 欧美成人三区| 999国产在线| 国产精品一卡| 国产又粗又长又黄的视频| 欧美一区二区精品| 神马久久午夜| 亚洲欧美久久234| 国产1区2区3区精品美女| 欧美精品二区三区| 最近的2019中文字幕免费一页| 精品麻豆剧传媒av国产九九九| 男人日女人视频网站| 精品免费一区二区| 精品成人一区二区| 中国极品少妇xxxx| 欧美精品乱码| 久久免费高清视频| 午夜精品久久久久久久蜜桃| 国产精品一卡二| 色综合电影网| 电影一区二区三区| 亚洲成人1234| 青青青在线视频| 精品一区二区三区影院在线午夜 | 不卡的一区二区| 一二三四社区欧美黄| 欧美女v视频| 999热视频| 老妇喷水一区二区三区| 久久久精品少妇| 精品一区二区电影|