亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

控制Flex子元素在主軸上的比例的方法

2024-07-11 09:00:12
字體:
來源:轉載
供稿:網友

背景

flex布局更有效的實現對齊,空間分配。最近又學習下flex子元素的尺寸計算規則,主要是flex-grow, flex-shrink的計算規則的學習。

一、基本概念

1.1 主軸(Main axis)

定義了flex元素布局起始點和方向,flex子元素在主軸上依次放置。

主軸有4個方向,通過flex-direction指定:

  • row

水平方向,從左到右,默認的

  • row-reverse

水平方向,從右到左

  • column

垂直方向,從上到下

  • column-reverse

垂直方向,從下到上

1.2 主軸的尺寸(Main axis size)

就是flex容器content矩形(不包含padding, border, margin區域)在主軸方向的尺寸。

1.3 交叉軸(Cross axis)

交叉軸就是跟主軸錘子的方向,主要用于flex元素的對齊。

1.4 交叉軸的尺寸(Cross axis size)

就是flex容器content矩形(不包含padding, border, margin區域)在Cross軸方向的尺寸。

1.5 flex盒模型(flex box)

display為flex,inline-flex,的元素,也叫flex容器。

1. flex容器包含的不僅是flex元素,也包含空白空間。

2. 涉及的CSSflex-directionflex-wrapflex-flow

  • flex-direction
  • flex-wrap
  • flex-flow

flex-direction和 flex-wrap的簡寫。

  • justify-content

控制flex容器內容(flex元素和空白空間)在主軸方向對齊。注意區分align-items。

  • align-content

控制多行flex容器個行的對齊方式。

  • align-items

控制flex容器內容(flex元素和空白空間)在交叉軸方向對齊。

Tip:

1、這些CSS屬性都是有相關性的:

首頁先指定flex容器的主軸方向(flex-direction), 如果flex子元素超過在主軸 尺寸,那就涉及是否換行(flex-wrap)。如果沒有超過主軸尺寸,那就涉及行內對齊(justify-content), 如果存在多行每個行直接也要對齊(align-content)。

2、可能比較容易混淆 justify-content,align-content,align-items。

記住content是指flex元素和空白空間,items指的是flex元素。這樣就容易就是這三個屬性的用處了。

1.6 flex元素(flex items)

1. 語法

flex box的子元素,不包含流外子元素( absolute, fix元素),但是包含float元素。

flex子元素相鄰的margin不會發生合并。

float元素作為flex子元素時,float屬性無效(因為要參與flex布局,不是流式布局)。

2. 涉及CSS屬性

  • flex-basis
     

指定flex元素在主軸方向上占用flex容器的尺寸,默認為auto,即以flex元素的尺寸作為其占用的尺寸(主軸是row取值flex元素的寬度,主軸是column取值flex元素的高度),根據該屬性計算是否有空余空間。

注意:flex元素占用的尺寸跟flex-basis有關,跟元素的寬高沒直接關系。

  • flex-grow
     

指定各個flex元素彈性增長因數,即占用正空白空間(positive free space)的比例份額數量。0值(默認值)表示不占用空白空間

  • flex-shrink
     

指定各個flex元素彈性收縮因數,即分配負空白空間(negative free space)的比例份額數量。但是元素不能無限收縮為0,也不能小于元素的最小尺寸(如min-width或者min-height)。

  • flex

flex-grow flex-shrink flex-basis簡寫

  • align-self

調整自己在交叉軸的對齊方式,只有在不撐滿交叉軸時,這個屬性才有效。

  • order

指定順序

二、計算自由空間和flex-basis

flex子元素在主軸上的比例依賴這三個CSS屬性:

  • flex-basis
  • flex-grow
  • flex-shrink

其中:
flex-basis + flex-grow組合控制著伸
flex-basis + flex-shrink組合控制著縮
所以要確定flex子元素在主軸上的比例,首先要確定使用哪種組合。

2.1 規則

flex-basis 屬性指定在任何空間分配發生之前初始化flex子元素的尺寸,更確切的說flex-basis 屬性指的flex子元素盒模型(box-sizing)的尺寸,所以跟flex子元素width(height)取值邏輯類似,如果box-sizing=content,則flex-basis也不包含padding和border區域。

2.2 剩余自由空間計算

自由空間計算
flex容器在主軸方向的content矩形的尺寸

期望自用空間
在計算flex容器的自由空間前要先統計flex子元素占用的尺寸,注意這里指的是flex子元素的margin區域的尺寸,并且相鄰的flex子元素margin是不會發生合并的。

剩余自由空間計算 = 自由空間計算 - 期望自用空間

正自由空間
正值的剩余自由空間,此時采用flex-basis + flex-grow組合。

負自由空間
負正值的剩余自由空間,此時采用flex-basis + flex-shrink組合。

三、深入了解flex-grow

3.1 規則

如果存在正自由空間(positive free space),則采用flex-basis + flex-grow組合計算flex子元素在主軸上的比例。把正自由空間比作蛋糕的話,flex-grow表示希望分得蛋糕的量:

  • flex-grow: 0.2 表示希望獲得20%的蛋糕;
  • flex-grow: 1 表示希望獲得100%整個蛋糕(有點過分啊,不考慮其他兄弟);
  • flex-grow: 2 表示希望獲得200%的蛋糕(這是明搶啊,態度很明確)。

但畢竟蛋糕就一個,flex容器盡量滿足felx子元素的要求,采用一種簡單的按照比例分蛋糕方式:

  • 累加flex子元素的flex-grow得出總和,簡稱SUM_flex_grow;
  • 如果SUM_flex_grow=0,則不發生彈性增長,結束;
  • flex子元素增長的尺寸 = 正自由空間尺寸 * flex_grow / Max(SUM_flex_grow, 1)。

3.2 Demo1:按照比例分蛋糕

function demo1() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10}}>One</div>                <div className="item" style={{flexBasis: 150, flexGrow: 2, }}>Two</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 600px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                }            `}</style>        </>    )}

解析:

計算剩余自由空間

  • flex容器主軸尺寸 = 600px
  • 元素one的希望尺寸 = 100px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) + 10px(margin-right) = 150px
  • 元素two的希望尺寸 = 150px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) = 190px
  • 剩余自由空間 = 600px - 150px - 190px = 260px,即存在正剩余空間。

計算各個flex子元素增長尺寸

  • SUM_flex_grow = 1 + 2 = 3,即大于1 ,一個蛋糕不夠分,只能按照比例分了。
  • 元素one的實際增長尺寸 = 260px * 1 / Max(1, 1 + 2) = 260px * 1 / (1 + 2) = 86.67px
  • 元素two的實際增長尺寸 = 260px * 2 / Max(1, 1 + 2) = 260px * 2 / (1 + 2) = 173.33px

3.3 Demo2:SUM(flex-grow) < 1

function demo3() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexGrow: 0.2, marginRight: 10}}>One</div>                <div className="item" style={{flexBasis: 150, flexGrow: 0.3, }}>Two</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 600px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                }            `}</style>        </>    )}

解析:

計算剩余自由空間

  • flex容器主軸尺寸 = 600px
  • 元素one的希望尺寸 = 100px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) + 10px(margin-right) = 150px
  • 元素two的希望尺寸 = 150px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) = 190px
  • 剩余自由空間 = 600px - 150px - 190px = 260px,即存在正剩余空間。

計算各個flex子元素增長尺寸

  • SUM_flex_grow = 0.2 + 0.3 = 0.5,即小于1 ,一個蛋糕能滿足大家需求,直接分給各個flex子元素。
  • 元素one的實際增長尺寸 = 260px * 0.2 / Max(1, 0.5) = 260px * 0.2 = 52px
  • 元素two的實際增長尺寸 = 260px * 0.3 / Max(1, 0.5) = 260px * 0.3 = 78px

注意:

如果SUM(flex-grow)小于1,此時剩余空間沒有全部分配給各個flex子元素。

3.3 Demo3 跟max-width沖突

留意該栗子中:

  • 元素one, two, threebox-sizing=border-box
  • 元素one的max-width=150px
function demo4() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10, maxWidth: 150}}>One</div>                <div className="item" style={{flexBasis: 150, flexGrow: 2 }}>Two</div>                <div className="item" style={{flexBasis: 100, flexGrow: 3 }}>Three</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 800px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                    box-sizing: border-box;                }            `}</style>        </>    )}

解析:

計算剩余自由空間

flex容器主軸尺寸 = 800px

元素one的希望尺寸 = 100px(flex-basis) + 10px(margin-right) = 110px
box-sizing=border-box

元素two的希望尺寸 = 150px(flex-basis) = 150px
box-sizing=border-box

元素three的希望尺寸 = 150px(flex-basis) = 150px
box-sizing=border-box

剩余自由空間 = 800px - 110px - 150px - 150px = 390px,即存在正剩余空間。

計算各個flex子元素增長尺寸

  • SUM_flex_grow = 1 + 2 + 3 = 6,即大于1 ,一個蛋糕不夠分,只能按照比例分了。。
  • 元素one的增長尺寸 = 390px * 1 / Max(1, 6) = 390px * 1/6 =65px
     

這樣元素one的尺寸就是100px + 65px = 165px,大于其max-width=150px指定的最大值,所以最終元素one的尺寸是150px。即元素one吃不完分配的蛋糕,把吃不完的蛋糕還回去了,讓其他兄弟多分些(先拋個問題:這些吃不完的蛋糕如何分配呢?)。

元素two和元素three重新分配剩下是自由剩余空間,即回到步驟1重新計算。

  • flex容器主軸尺寸 =800px - 元素one占領的尺寸(150px - 10px) = 640px
  • 剩余空間 = 640px - 150px - 150px = 340px
  • SUM_flex_grow = 2 + 3 = 5
  • 元素two的增長尺寸 = 340px * 2 / Max(1, 5) = 340px * 2 / 5 = 136px
  • 元素three的增長尺寸 = 340px * 3 / Max(1, 5) = 340px * 3 / 5 = 204px

3.4 小結:

  • 計算剩余自由空間永遠是第一步;
  • 增長是個絕對值,即flex子元素會增加個絕對值(這是跟flex-shrink不同的地方);
  • 當遇到max-屬性沖突時,即元素one吃不完的蛋糕會放入總蛋糕中,由后面的flex子元素重新分配。

四、深入了解flex-shrink

4.1 規則

如果存在負自由空間(negative free space),則采用flex-basis + flex-shrink組合計算Flex子元素在主軸上的比例。flex-shrink取值表達了個flex子元素貢獻的愿望:

  • flex-shrink: 0.2 表示希望分攤負自由空間的20%;
  • flex-shrink: 1 表示希望分攤100%負自由空間(夠兄弟,其他兄弟不用分攤);
  • flex-shrink: 2 表示希望分攤200%負自由空間(分攤的態度很明確)。

flex容器都感動哭了,但為了照顧各個flex子元素的感受,采用了一個“更合理”的分攤規則:

  • 計算flex子元素的content矩形(內容矩形)在主軸尺寸 和 flex-shrink乘積值,記作A;
  • 累加步驟1的乘積值,記作SUM_A;
  • 被分攤的負自由空間 valid_negative_free_space = negative_free_space * Min(1, SUM(flex-shrink))
  • 每個flex子元素的收縮值 = valid_negative_free_space * A / SUM_A。

計算的規則比上面的要復雜一些,不是簡單的切分negative-free-space。收縮量不僅依賴flex-shrink,還依賴flex-basis。這樣做只是為了“更合理”,即相同的flex-shrink情況下,flex-basis越小的flex元素收縮的越慢(跟納稅一樣,收入越高交的越多)。

注意: 如果flex-shrink總和小于1,則表示部分負自由空間被分攤了(即有些尺寸沒有被收縮)。

4.2 Demo1:“減少貧富差距”

function demo5() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10}}>One</div>                <div className="item" style={{flexBasis: 150, flexGrow: 2, flexShrink: 2 }}>Two</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 300px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                }            `}</style>        </>    )}

解析(過長跟flex-grow過程類似):

計算剩余自由空間

  • flex容器主軸尺寸 = 300px
  • 元素one的希望尺寸 = 100px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) + 10px(margin-right) = 150px
  • 元素two的希望尺寸 = 150px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) = 190px
  • 剩余自由空間 = 300px - 150px - 190px = -40px,即存在負剩余空間。
  • 被分攤的負剩余空間 = -40px * Min(1, 1 + 2) = -40px

計算各個flex子元素收縮尺寸

  • SUM_A = 100px * 1 + 150px * 2 = 400px
  • 元素one的實際收縮尺寸 = 40px * 100px * 1 / 400px= 10px,即最終寬度 = 100px - 10px = 90px
  • 元素two的實際收縮尺寸 = 40px * 150px * 2 / 400px = 30px,即最終寬度 = 150px - 30px = 120px

4.2 Demo: SUM(flex-shrink) < 1

function demo8() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexShrink: 0.2, marginRight: 10}}>One</div>                <div className="item" style={{flexBasis: 150, flexShrink: 0.3 }}>Two</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 300px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                }            `}</style>        </>    )}

flex子元素超出了flex容器。

解析:

計算剩余自由空間

  • flex容器主軸尺寸 = 300px
  • 元素one的希望尺寸 = 100px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) + 10px(margin-right) = 150px
  • 元素two的希望尺寸 = 150px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) = 190px
  • 剩余自由空間 = 300px - 150px - 190px = -40px,即存在負剩余空間。
  • 有效負剩余空間 = -40px * Min(1, 0.2 + 0.3) = -40px * 0.5 = -20px

計算各個flex子元素收縮尺寸

  • SUM_A = 100px * 0.2 + 150px * 0.3 = 65px
  • 元素one的實際收縮尺寸 = 20px * 100px * 0.2 / 65px= 6.15px,即最終寬度 = 100px - 6.15px = 93.85px
  • 元素two的實際收縮尺寸 = 20px * 150px * 0.3 / 65px= 13.85px,即最終寬度 = 150px - 13.85px = 136.15px

4.4 Demo3: box-sizing =border-box

留意:元素one, twobox-sizing= border-box

function demo6() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10}}>One</div>                <div className="item" style={{flexBasis: 150, flexGrow: 2, flexShrink: 2 }}>Two</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 200px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                    box-sizing: border-box;                }            `}</style>        </>    )}

解析:

計算剩余自由空間

  • flex容器主軸尺寸 = 200px
  • 元素one的希望尺寸 = 100px(flex-basis) + 10px(margin-right) = 110px
  • 元素two的希望尺寸 = 150px(flex-basis) = 150px
  • 剩余自由空間 = 200px - 110px - 150px = -60px,即存在負剩余空間。
  • 被分攤的負剩余空間 = -60px * Min(1, 1 + 2) = -60px

計算各個flex子元素收縮尺寸

  • SUM_A = 60px * 1 + 110px * 2 = 280px
  • 注意:此時不是直接用flex-basis去乘flex-shrink。本質上是使用flex子元素的content矩形寬度值去乘flex-shrink。
  • 元素one的實際收縮尺寸 = 60px * 60px * 1 / 280px = 12.86px,即最終寬度 = 60px - 12.86px = 47.14px(不包含padding,border)
  • 元素two的實際增長尺寸 = 60px * 110px * 2 / 280px = 47.14px,即最終寬度 = 110px - 47.14px = 62.86px(不包含padding,border)

4.5 Demo5 跟min-width沖突

留意該栗子中:

元素one的min-width=60px

function demo7() {    return (        <>            <div className="flex">                <div className="item" style={{flexBasis: 100, flexShrink: 2, marginRight: 10, minWidth: 60}}>One</div>                <div className="item" style={{flexBasis: 150, flexShrink: 2 }}>Two</div>                <div className="item" style={{flexBasis: 100, flexShrink: 1 }}>Three</div>            </div>            <style jsx>{`                .flex {                    display: flex;                    width: 300px;                    outline: 1px dashed red;                }                .item {                    padding: 10px;                    border: 10px solid #666666;                }            `}</style>        </>    )}

解析:

計算剩余自由空間

  • flex容器主軸尺寸 = 300px
  • 元素one的希望尺寸 = 100px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) + 10px(margin-right) = 150px
  • 元素two的希望尺寸 = 150px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right)= 190px
  • 元素three的希望尺寸 = 100px(flex-basis) + 20px(padding-left/right) + 20px(border-left/right) = 140px
  • 剩余自由空間 = 300px - 150px - 190px - 140px = -180px,即存在負剩余空間。
  • 被分攤的負剩余空間 = -180px * Min(1, 1 + 2 + 2) = -180px

計算各個flex子元素收縮尺寸

  • SUM_A = 100px * 2 + 150px * 2 + 100px * 1 = 400px
  • 元素one的實際收縮尺寸 = 180px(負剩余空間的絕對值) 100px 2 / 700px = 51.43px,
  • 這樣元素one的尺寸最100px - 51.43px = 48.57px,小于其min-width=60px,即最終寬度為60px。即分配給元素one的稅負需要由其他兄弟分攤了。

元素two和元素three重新分配剩下是自由剩余空間,即回到步驟1重新計算。

  • flex容器主軸尺寸 = 300px - 元素one占領的尺寸(60px + 20px + 20px + 10px) = 190px
  • 剩余空間 = 190px - 190px - 140px = -140px,即元素two,three要總縮減140px。
  • SUM_A = 150px * 2 + 100px * 1 = 400px
  • 元素two的收縮尺寸 = 140px * 150 * 2 / 400px = 105px,即最終寬度 = 150px - 105px = 45px
  • 元素three的收縮尺寸 = 140px * 100 / 400px = 35px,即最終寬度 = 100px - 35px = 65px

4.6 小結

  • 縮減的規則稍稍復雜些,這背后是有原因的,主要防止寬度小的元素縮減太快導致為負寬度。
  • flex子元素發生彈性伸縮只是content矩形,其margin,border, padding不會發生彈性伸縮的,所以他們也不參與彈性伸縮的計算公式內(如彈性收縮的公式)
  • 當遇到min-屬性沖突時,即元素不能再收縮時,由后面的flex子元素重新分攤剩余空間。除了min-屬性指定最小尺寸時,每個元素都存在最小尺寸的。

參考

css-tricks: A Complete Guide to Flexbox
規范
Understanding flexbox

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人性生活视频| 中文字幕日韩专区| 日韩中文在线中文网在线观看| 亚洲美女激情视频| 欧美巨大黑人极品精男| 国内精品模特av私拍在线观看| 亚洲最大福利视频网| 欧美在线视频网| 亚洲精品一区二三区不卡| 亚洲娇小xxxx欧美娇小| 久久免费视频这里只有精品| 成人激情视频在线观看| 亚洲午夜小视频| 美女国内精品自产拍在线播放| 亚洲欧美另类人妖| 97在线视频免费| 91国产美女在线观看| 日韩最新免费不卡| 久久精品99久久香蕉国产色戒| 国产精品99久久久久久久久| 国语自产精品视频在线看抢先版图片| 欧美国产日本高清在线| 亚洲欧美综合区自拍另类| 欧美激情在线有限公司| 清纯唯美亚洲激情| 久久亚洲综合国产精品99麻豆精品福利| 久久久久免费精品国产| 51精品国产黑色丝袜高跟鞋| 欧美成人午夜激情| 成人福利免费观看| 国内精品久久久久| 原创国产精品91| 日本中文字幕不卡免费| 久久久久五月天| 国产91精品久| 91中文字幕在线观看| 亚洲人成伊人成综合网久久久| 精品久久久久久久久久久久久| 九色精品免费永久在线| www.日韩.com| 欧美亚洲免费电影| 欧美日韩爱爱视频| 国产精品欧美日韩一区二区| 日韩精品中文字幕在线观看| 亚洲欧美日韩中文在线制服| 国产mv免费观看入口亚洲| 亚洲激情在线观看视频免费| 亚洲第一av网| 亚洲激情视频在线观看| 亚洲精品成人av| 亚洲影视九九影院在线观看| 亚洲欧美国产va在线影院| 亚洲一区www| 77777少妇光屁股久久一区| 热99在线视频| 青草热久免费精品视频| 九九热这里只有精品免费看| 亚洲人成人99网站| 国产精品美女999| 成人网中文字幕| 国产日韩精品综合网站| 日韩av网站导航| 97超碰国产精品女人人人爽| 美日韩丰满少妇在线观看| 国产成人+综合亚洲+天堂| 亚洲大胆人体在线| 国产欧美在线视频| 国产在线观看精品| 欧美日韩中文字幕综合视频| 亚洲国产精品久久久久秋霞不卡| 国产精品丝袜视频| 91在线精品播放| 亚洲最新av网址| 日韩精品免费视频| 最新日韩中文字幕| 国产日韩欧美中文在线播放| 最近2019年日本中文免费字幕| 欧美专区福利在线| 色偷偷av一区二区三区乱| 成人激情免费在线| 国产亚洲欧美视频| 国产精品久久视频| 最近2019中文字幕在线高清| 日韩成人小视频| 国产日韩欧美另类| 中文字幕亚洲一区在线观看| 91在线视频精品| 91亚洲国产成人久久精品网站| 日韩精品极品毛片系列视频| 久久偷看各类女兵18女厕嘘嘘| 伊人青青综合网站| 午夜精品一区二区三区在线视频| 日韩欧美中文免费| 91欧美精品午夜性色福利在线| 国产精品人人做人人爽| 日韩在线视频国产| 国产精品久久婷婷六月丁香| 福利微拍一区二区| 精品av在线播放| 日韩电影中文 亚洲精品乱码| 国产手机视频精品| 欧美专区福利在线| 日韩视频免费中文字幕| 2019中文字幕全在线观看| 超碰日本道色综合久久综合| 欧美日韩在线免费| 久久成人精品视频| 亚洲欧美色图片| 国产激情综合五月久久| 亚洲精品福利资源站| 欧美日韩福利在线观看| 亚洲男人天堂2019| 亚洲色图色老头| 久久久久久国产精品美女| 国产精品久久久久久网站| 欧美日韩福利在线观看| 久热爱精品视频线路一| 俺去亚洲欧洲欧美日韩| 国产精品va在线播放| 久久国产精品99国产精| 国产精品视频午夜| 国产精品黄页免费高清在线观看| 中文字幕欧美日韩在线| 国产精品热视频| 国产极品jizzhd欧美| 精品久久久一区二区| 清纯唯美亚洲激情| 岛国av一区二区在线在线观看| 久久亚洲精品毛片| 97成人超碰免| 亚洲精品成a人在线观看| 欧美劲爆第一页| 欧美性xxxx在线播放| xvideos国产精品| 2019中文字幕免费视频| 欧美性猛交丰臀xxxxx网站| 在线观看视频99| 国产成一区二区| 2021国产精品视频| www.日韩.com| 狠狠干狠狠久久| 国产精品亚洲综合天堂夜夜| 国产精品自产拍在线观看中文| 2019中文字幕在线观看| 综合网日日天干夜夜久久| 黄色一区二区在线| 久久国产精品久久久久久| 成人在线视频福利| 亚洲精品视频久久| 韩国视频理论视频久久| 2019最新中文字幕| 在线免费观看羞羞视频一区二区| 97精品在线视频| 日韩中文字幕视频在线| 色yeye香蕉凹凸一区二区av| 91中文字幕一区| 91免费看片在线| 日本午夜在线亚洲.国产| 三级精品视频久久久久| 国产精品中文字幕久久久| 91精品国产乱码久久久久久蜜臀| 伊人男人综合视频网| 久久亚洲一区二区三区四区五区高| 亚洲一区二区三区sesese|