精品欧美一区二区三区在线观看 _久久久久国色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ⅴ免费一区二区三区 | 日韩在线资源| 国产成人在线视频播放| 欧美在线中文字幕| 国精产品久拍自产在线网站| 97精品久久| 欧美私人免费视频| 国产精品久久久久7777| 91高清在线| gogo大胆日本视频一区| 国产精品专区h在线观看| 国产一级av毛片| 成人一区不卡| 亚洲激情视频在线播放| 在线观看免费不卡av| 国产精品一二三产区| 国产精品久久久久婷婷| 国内不卡一区二区三区| 一区二区www| 久久xxxx| 97在线免费观看| 欧美成人手机视频| 日韩在线观看一区 | 日本69式三人交| 日韩综合av| 欧美性xxxxx| 最新av在线免费观看| 欧洲成人av| 成人国产亚洲欧美成人综合网| 成人h视频在线| www.久久久久久久| 99国产精品| 欧美精品电影在线| 欧美xxxx黑人xyx性爽| 日韩精品dvd| 亚洲欧美在线磁力| 超碰97在线资源站| 国产精品巨作av| 欧美一区二区大片| 欧美日韩理论片| 先锋影音一区二区| 欧洲一区二区av| 欧美激情成人网| 自拍网站在线观看| 欧美日韩国产综合新一区| 天天干天天操天天干天天操| av片在线看| 日本一区二区三区免费乱视频| 久久久久久久免费| 五月婷婷丁香六月| www.欧美.com| 九色综合婷婷综合| 四虎在线视频免费观看| 成人av一区二区三区| 国产精品久久久对白| 超碰在线观看av| 成人爽a毛片一区二区免费| 成人女人免费毛片| 国产1区在线观看| av亚洲精华国产精华| 国产一区二区久久久| 黄色三级网站在线观看| 波多野结衣在线aⅴ中文字幕不卡| 成人在线看片| 午夜18视频在线观看| 久久亚洲精品国产精品紫薇| 欧美日韩精品免费看| av资源种子在线观看| 中文乱码免费一区二区 | 亚洲精品久久久| 欧美成人三级视频网站| 久久这里只有精品国产| 99在线观看免费视频精品观看| 88xx成人精品| 欧美一级做a爰片免费视频| 久久精品国产亚洲aⅴ| 91久久中文字幕| 国产成人手机在线| 久久久久国产精品人| 亚洲欧美日韩国产yyy| a视频在线观看免费| 亚洲国产综合色| 日韩一级在线免费观看| 日韩欧美激情| 亚洲电影免费观看高清| 小早川怜子久久精品中文字幕| 97精品97| 97视频在线观看免费| 午夜久久久久久久久久影院| 国产一区二区三区av电影| 国产精品久久波多野结衣| 国产一级在线观看| 亚洲精品国产第一综合99久久| 久色视频在线播放| 日韩三级成人| 国产婷婷97碰碰久久人人蜜臀| jizz日本在线播放| 亚洲国产99| 国产精品亚洲精品| 黄色一级a毛片| 国产蜜臀97一区二区三区| 国产一区二区三区乱码| 全球最大av网站久久| 精品久久久影院| 超碰人人干人人| 亚洲色诱最新| 亚洲综合在线中文字幕| 成年人免费在线视频| 亚洲成a天堂v人片| 亚洲第一成肉网| 免费成人av| 97精品在线视频| 国产精品国产精品国产专区| 26uuuu精品一区二区| 亚洲乱码日产精品bd在线观看| gogo亚洲高清大胆美女人体| 亚洲成人av资源网| 91九色丨porny丨极品女神| 久久看片网站| 精品视频在线观看| 欧洲黄色一区| 91精品蜜臀在线一区尤物| 久久成人激情视频| 久久狠狠婷婷| 精品一区二区国产| 久久www人成免费看片中文| 欧美群妇大交群的观看方式| 国产又粗又猛又爽视频| 国产日韩专区| 国产一区喷水| av免费在线免费观看| 欧美军同video69gay| 成人黄色a级片| 久久先锋影音| 欧美福利精品| а√天堂8资源在线| 欧美videossexotv100| 国产免费无码一区二区视频| 久久99精品久久久| 亚洲激情图片| 久久福利在线| 日韩在线观看免费全| 亚洲一区 中文字幕| 中文字幕第一区第二区| 成人性视频欧美一区二区三区| 九九免费精品视频在线观看| 欧美一乱一性一交一视频| 三级视频网站在线| 福利二区91精品bt7086| 国产亚洲无码精品| 久久蜜桃精品| 亚洲精品自在在线观看| 欧美国产视频| 欧美裸体xxxx极品少妇| 精品国产伦一区二区三区| 一区二区成人在线视频| 手机免费看av片| 亚洲深爱激情| 欧美精品v日韩精品v国产精品| 男人皇宫亚洲男人2020| 在线视频日韩精品| 国产女无套免费视频| 一区二区三区四区视频精品免费 | 久久国产精品免费精品3p| 欧美一级视频一区二区| 电影在线一区| 欧美精品一二三区| 免费一级a毛片夜夜看| 9色porny自拍视频一区二区| 国产无套内射久久久国产| 欧美色图国产精品| 91视频-88av| 成人一级福利| 一夜七次郎国产精品亚洲| 91丨porny丨在线中文 | 无码国产色欲xxxx视频| 色欧美片视频在线观看在线视频| 老司机福利在线观看| 国产寡妇亲子伦一区二区| 国自产拍偷拍精品啪啪一区二区| 九色精品91| 国产噜噜噜噜噜久久久久久久久 | 日本黄色不卡视频| 欧美在线小视频| 免费一级肉体全黄毛片| 久久综合999| www.com久久久| 亚洲国产一区二区三区a毛片| 欧美福利一区二区三区| 精品一区91| 日本高清不卡的在线| 麻豆视频免费在线观看| 亚洲精品福利在线观看| 一级黄在线观看| 亚洲mv在线观看| 很污很黄的网站| 91丨九色丨蝌蚪丨老版| 日本成人在线免费观看| 久久这里只有| www.男人天堂网| 日韩av免费大片| 精品在线观看一区二区| 电影中文字幕一区二区| 日韩av理论片| aaa在线播放视频| 久久精品视频播放| 岛国最新视频免费在线观看| 亚洲电影第1页| 国产黄色免费大片| 欧美日韩一区小说| 日本a级c片免费看三区| 亚洲午夜精品网| 亚洲不卡在线播放| 国产女人aaa级久久久级| www国产视频| 国产麻豆精品在线| jizz欧美性11| 日韩高清不卡在线| 免费在线a视频| 国产一区二区三区四区老人| 一区二区三区久久网| 国产一区二区三区天码| 久久本道综合色狠狠五月| 99re热精品视频| 亚洲一区二区中文字幕| 色综合一区二区日本韩国亚洲| 国产精品扒开腿做| 成人激情综合| 日韩av成人在线| 涩涩在线视频| 88国产精品欧美一区二区三区| 波多野结衣中文字幕久久| 欧美伦理91i| 色婷婷在线播放| 久久91亚洲人成电影网站| 九七久久人人| 久久精品久久久久久国产 免费| 日本美女高清在线观看免费| 中日韩午夜理伦电影免费| 丁香婷婷在线观看| 色黄久久久久久| 麻豆网站在线| 久久97久久97精品免视看 | 日韩av免费看| 欧美日韩免费观看视频| 日本人成精品视频在线| 吞精囗交69激情欧美| 国产不卡在线观看| 91成人抖音| 国产在线精品自拍| 国产95亚洲| 成人蜜桃视频| 欧美日韩看看2015永久免费| 蜜桃91精品入口| 欧美一区电影| 强伦女教师2:伦理在线观看| 亚洲午夜精品一区 二区 三区| 99久re热视频精品98| 欧美激情自拍| 国自产拍偷拍精品啪啪一区二区| 午夜综合激情| 国内自拍视频网| 国产一区二区在线视频| 精品国产aⅴ一区二区三区东京热| 懂色av一区二区在线播放| 欧美xxxxx精品| 国产人成亚洲第一网站在线播放| 欧美88888| 一区二区三区日韩在线观看| 国产精品一区二区6| 欧美网站一区二区| 精品女同一区二区三区| 精品亚洲一区二区| 日本免费视频在线观看| 久久久综合av| 日本美女久久| 国产精品一 二 三| 国产成人精品免费视| 91麻豆天美传媒在线| 亚洲美女黄网| 日本xxxx黄色| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲成色777777女色窝| 国产中文在线视频| 欧美精品免费在线| 一个人www视频在线免费观看| 国产精品网站入口| 第四色在线一区二区| 亚洲精品一区二区三区樱花 | 亚洲第一精品网站| 亚洲无线码在线一区观看| 污片在线免费观看| 国产精品久久97| 成人偷拍自拍| 影音先锋亚洲视频| 久久福利毛片| 午夜影院福利社| 中文字幕在线视频一区| 亚洲永久精品在线观看| 日韩视频在线观看一区二区| 日本中文字幕一区二区有码在线 | 狠狠色丁香久久婷婷综合丁香| 免费黄色三级网站| 亚洲视频中文字幕| 日韩精品久久久久久免费| 精品国产sm最大网站| 成人77777| 欧美一区二区色| 日韩区一区二| 亚洲一区二区高清视频| 亚洲欧美日韩在线观看a三区 | 91毛片在线观看| 久久久国产精品人人片| 欧美日韩成人高清| 欧美18xxxxx| 性色av一区二区三区| 日本高清精品| 欧美 日韩 国产 在线观看| 丝袜国产日韩另类美女| 欧美无人区码suv| 香蕉乱码成人久久天堂爱免费| 国产超碰人人模人人爽人人添| 日韩中文字幕av| 88xx成人网| 亚洲 国产 欧美一区| 丝袜国产日韩另类美女| 精品人妻无码一区二区三区| 亚洲观看高清完整版在线观看| 国产黄色免费大片| 欧美成人合集magnet| 亚洲香蕉久久| 强伦女教师2:伦理在线观看| 久久精品国产精品青草| 国产传媒在线看| 欧美揉bbbbb揉bbbbb| p色视频免费在线观看| 国产精品va在线播放| 欧美一级本道电影免费专区| 国产精品人人爽人人爽| 欧美激情一区二区三区不卡 | 精品国产麻豆免费人成网站| fc2ppv国产精品久久| 91在线色戒在线| 中文字幕一区二区三区乱码图片| 男女视频在线观看网站| 亚洲天堂网中文字| 国产男男gay体育生白袜| 久久国产精品久久久久久久久久| 动漫一区二区三区| 狠狠精品干练久久久无码中文字幕 | 久久综合在线观看| 亚洲猫色日本管| 国产成人三级一区二区在线观看一| 久久国产精品影视| 澳门成人av| 欧美日韩二三区| 国产视频在线观看一区二区三区| 中文字幕天堂在线| www.xxxx欧美| 盗摄系列偷拍视频精品tp| 国产 福利 在线| 亚洲国产精品ⅴa在线观看| 中文字幕激情视频| 久久亚洲精品网站| 福利在线一区| 国语对白做受xxxxx在线中国| 国产精品午夜免费| 国产熟女精品视频| 91精品国产免费久久久久久| 精品免费在线| 麻豆网站免费观看| 精品国产户外野外| 91精彩视频在线观看| 产国精品偷在线| 美女尤物久久精品| 国产精品免费在线视频| 欧美精品一区二区在线播放| 奇米777日韩| 神马午夜伦理影院| 久久先锋影音av鲁色资源网| 中文字幕观看视频| 国内精品久久久久久久久| 国产精品一区高清| 91成人在线观看喷潮蘑菇| 色8久久人人97超碰香蕉987| 国产三区视频在线观看| 久久久久久久免费| 国产尤物一区二区在线| 亚洲午夜18毛片在线看| 久久久999精品视频| 秋霞在线一区| 男女视频在线观看网站| 色婷婷综合视频在线观看| 在线播放免费av| 日本精品一区二区三区高清 久久| 国产精品一区二区x88av| 亚洲天堂男人av| 欧美精品18videos性欧| 日韩一区电影|