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

首頁 > 開發 > CSS > 正文

CSS Grid布局指南

2020-03-24 16:43:17
字體:
來源:轉載
供稿:網友
簡介

CSS Grid布局 (又名 網格 ),是一個基于二維網格布局的系統,主要目的是改變我們基于網格設計的用戶接口方式。如我們所知,CSS 總是用于網頁的樣式設置,但它并沒有起到很好的作用。剛開始的時候我們使用表格(table),然后使用浮動(float)、 定位(position)和內聯塊(inline-block),但所有這些方法本質上來講都是hacks,存留了很多需要實現的重要功能問題(例如,垂直居中)。雖然Flexbox可以起到一定的補救作用,但是它只可以實現簡單的一維布局,并不適用于復雜的二維布局(實際上 Flexbox 和 Grid 可以一起結合使用起到最佳效果)。網格是 CSS 第一次專門創建的模塊,用來解決我們之前在制作網站時使用hacks處理布局問題。

這里有兩件事情啟發我創建本指南。第一個是 Rachel Andrew 的令人敬畏的書--為 CSS Grid 布局做好準備。這本書很詳盡明確的的介紹了Grid,如果你想很好的掌握Grid的基礎知識,我強烈建議你去購買。另外一個很大的靈感來自于 Chris Coyier 的-- Flexbox完整指南,這本書是我了解Flebox的一個很優秀的資源。這里,我還想補充一句,當你使用谷歌搜索 flexbox 時,會出現很多類似的資源,但是為什么不直接利用最好的資源呢?

我書寫此指南的目的是基于目前最新版本,規范其網格概念。所以我不會再次提及過時的 IE 語法,并且隨著規范的成熟,我會盡力定期更新此指南。

基礎知識與瀏覽器支持

Grid 的入門是很容易的。你只需要定義一個容器元素并設置display:grid,使用grid-template-columns 和 grid-template-rows屬性設置網格的列與 行的大小,然后使用grid-column 和 grid-row屬性將其子元素放入網格之中。與flexbox類似,網格項的源順序無關緊要。為了更好地使你的網格與媒體查詢相結合使用,你可以在 CSS 中任意放置。想象一下你定義的整個頁面布局,然后如果想要完全重新布局以適應不同的屏幕寬度,這時僅僅使用幾行 CSS 代碼就可以實現。Grid是曾經介紹過的最強大 CSS 模塊之一。

關于 Grid 一件很重要的事情就是它現在還不適用于項目使用。目前還處于 W3C 的工作草案之中,并且默認情況下,還不被所有的瀏覽器所支持。Internet Explorer 10 和 11 已經可以實現支持,但也是利用一種過時的語法實現的?,F在出于示例演示,我建議你使用啟用了特殊標志的 Chrome, Opera 或者 Firefox 。在 Chrome,導航到chrome://flags 并啟用 web 實驗平臺功能 。該方法同樣適用于 Opera (opera://flags)。在Firefox中,啟用 layout.css.grid.enabled 標志。

這里有一張瀏覽器支持情況的表格(之后我會繼續更新):

除了Microsoft,瀏覽器廠商似乎想要等到Grid規范成熟后再加以推廣。這是一件好事,因為這意味著我們就不需要擔心學習多個語法。

等待 Grid 的使用,只是時間的問題。但是現在你需要開始學習它了。

重要術語

在深入研究Grid之前,我們需要理解其相關術語概念。因為這里涉及到的術語在概念上都有點類似,如果你沒有首先記住Grid規范中的相關定義,你就會很容易將其與另一個概念相混淆。但是不需要擔心,這里的屬性并不是很多。

網格容器(Grid Container)

當一個元素設置display: grid屬性時,它就會成為所有網格項(Grid Items)的父元素。在下面的示例中,container就是網格容器。

 p > 網格項(Grid Item)

網格容器的孩子(e.g. 子元素)。這里item元素都是網格項,但是sub-item不包含其中。

 p > 網格線(Grid Line)

分界線構成了網格的結構。他們可以是垂直的( 列網格線 )也可以是水平的( 行網格線 ),并且存在于一行或一列的任一側。下面圖片中的黃線就是列網格線的一個例子。

網格軌道(Grid Track)

兩個相鄰網格線之間的空間。你可以把它們想像成網格的行或列。下圖所示的是第二行和第三行網格線之間的網格軌道。

網格單元格(Grid Cell)

兩個相鄰的行和兩個相鄰的列之間的網格線空間。它是網格的一個 單位 。下面圖片所示的是行網格線 1 和 2 與列網格線 2 和 3 之間的網格單元格。

網格區域(Grid Area)

四條網格線所包圍的所有空間。網格區域可由任意數量的網格單元格組成。下面圖片所示的是行網格線 1 和 3 和列網格線 1 和 3 之間的網格區域。

網格容器屬性(Grid Container) display

定義一個元素成為網格容器,并對其內容建立一個網格格式的上下文。

屬性值:

grid: 產生一個塊級的網格


inline-grid: 產生內聯級網格

.container{ display: grid | inline-grid }

注: column, float, clear, 和 vertical-align 元素對網格容器不起作用。

grid-template-rows

利用以空格分隔的值定義網格的列和行。值的大小代表軌道的大小,并且它們之間的空格表示網格線。

屬性值:

track-size : 可以是一個長度、百分比或者是網格中自由空間的一小部分(使用fr單位)


line-name : 你選擇的任意名稱


subgrid - 如果你的網格容器本身就是一個網格項(即嵌套網格),你可以使用此屬性指定行和列的大小繼承于父元素而不是自身指定。

.container{ grid-template-columns: track-size ... | line-name track-size ... | subgrid; grid-template-rows: track-size ... | line-name track-size ... | subgrid;}
示例:

當你在值之間留有空格時,網絡線就會自動分配數值名稱:

.container{ grid-template-columns: 40px 50px auto 50px 40px; grid-template-rows: 25% 100px auto;}

但是你也可以顯示命名,請參考下面括號語法中的名稱命名方式:

.container{ grid-template-columns: [first] 40px [line2] 50px [line3] auto [col4-start] 50px [five] 40px [end]; grid-template-rows: [row1-start] 25% [row1-end] 100% [third-line] auto [last-line];}

請注意,一條網格線可以具有有多個名稱。例如,這里的第二行將有兩個名字: row1-end 和 row2-start:

.container{ grid-template-rows: [row1-start] 25% [row1-end row2-start] 25% [row2-end];}

如果你的定義中包含重復的部分,你可以使用 repeat() 表示法進行精簡:

.container{ grid-template-columns: repeat(3, 20px [col-start]) 5%;}

等效于:

.container{ grid-template-columns: 20px [col-start] 20px [col-start] 20px [col-start] 5%;}

fr 單位允許你將一個軌道大小設置為網格容器內自由空間的一小部分。如下所示,每個網格項就會占據網格容器寬度的三分之一:

.container{ grid-template-columns: 1fr 1fr 1fr;}

這里自由空間表示除去非彈性項以后剩余的空間。在此示例中的 fr 單位的可用空間表示減去50px以后的空間大小:

.container{ grid-template-columns: 1fr 50px 1fr 1fr;}
grid-template-areas

使用grid-area屬性定義網格區域名稱,從而定義網格模板。網格區域重復的名稱就會導致內容跨越這些單元格。句點表示一個空單元格。語法本身提供了一種可視化的網格結構。

屬性值:

grid-area-name : 使用grid-area屬性定義網格區域名稱


.: 句點表示一個空單元格


none: 無網格區域被定義

.container{ grid-template-areas: grid-area-name | . | none | ...  ... }
示例:
.item-a{ grid-area: header;.item-b{ grid-area: main;.item-c{ grid-area: sidebar;.item-d{ grid-area: footer;.container{ grid-template-columns: 50px 50px 50px 50px; grid-template-rows: auto; grid-template-areas: header header header header  main main . sidebar  footer footer footer footer }

這將創建一個四列三行的網格。最上面的一行為header區域。中間一行由兩個main區域,一個空單元格和一個sidebar區域。最后一行是footer區域。

你所聲明的每一行都需要具有相同數目的單元格。

你可以使用任意數量的句點(.)聲明單個空單元格。只要句點之間沒有空格就表示一個空單元格。

注意,你只是使用此語法進行網格區域命名,而不是網格線命名。當你使用此語法時,區域兩邊的線就會得到自動命名。如果網格區域名稱為foo,則其行線和列線的名稱就將為foo-start,最后一行線及其最后一列線的名字就會為foo-end。這意味著一些線就可能具有多個名稱,如上面示例中所示,擁有三個名稱: header-start, main-start, 以及footer-start。

grid-column-gap和grid-row-gap

指定網格線的大小。你可以把它想像成在行/列之間設置間距寬度。

屬性值:

line-size : 一個長度值

.container{ grid-column-gap: line-size  grid-row-gap: line-size }
示例:
.container{ grid-template-columns: 100px 50px 100px; grid-template-rows: 80px auto 80px;  grid-column-gap: 10px; grid-row-gap: 15px;}

間距僅僅在列/行之間產生,而不會在邊緣區。

grid-gap

grid-column-gap 和 grid-row-gap的簡寫值。

屬性值:

grid-column-gap grid-row-gap : 長度值

.container{ grid-gap: grid-column-gap grid-row-gap }
示例:
.container{ grid-template-columns: 100px 50px 100px; grid-template-rows: 80px auto 80px;  grid-gap: 10px 15px;}

如果沒有指定grid-row-gap屬性的值,默認與grid-column-gap屬性值相同

justify-items

沿列軸對齊網格項中的內容(相反于align-item屬性定義的沿行軸對齊)。此值適用于容器內所有的網格項。

屬性值:

start: 內容與網格區域的左端對齊


end: 內容與網格區域的右端對齊


center: 內容處于網格區域的中間位置


stretch: 內容寬度占據整個網格區域空間(默認值)

.container{ justify-items: start | end | center | stretch;}
示例:
.container{ justify-items: start;}

.container{ justify-items: end;}

.container{ justify-items: center;}

.container{ justify-items: stretch;}

這也可以使用justify-self屬性對各個網格項進行設置。

align-items

沿行軸對齊網格項中的內容(相反于justify-item屬性定義的沿列軸對齊)。此值適用于容器內所有的網格項。

屬性值:

start: 內容與網格區域的頂端對齊


end: 內容與網格區域的底部對齊


center: 內容處于網格區域的中間位置


stretch: 內容高度占據整個網格區域空間(默認值)

.container{ align-items: start | end | center | stretch;}
示例:
.container{ align-items: start;}

.container{ align-items: end;}

.container{ align-items: center;}

.container{ align-items: stretch;}

這也可以使用align-self屬性對各個網格項進行設置。

justify-content

當你使用px這種非響應式的單位對你的網格項進行大小設置時,就有可能出現一種情況--你的網格大小可能小于其網格容器的大小。在這種情況下,你就可以設置網格容器內網格的對齊方式。此屬性會將網格沿列軸進行對齊(相反于align-content屬性定義的沿行軸對齊)。

屬性值:

start: 網格與網格容器的左端對齊


end: 網格與網格容器的右端對齊


center: 網格處于網格容器的中間


stretch: 調整網格項的大小,使其寬度填充整個網格容器


space-around: 在網格項之間設置偶數個空格間隙,其最邊緣間隙大小為中間空格間隙大小的一半


space-between: 在網格項之間設置偶數個空格間隙,其最邊緣不存在空格間隙


space-evenly: 在網格項之間設置偶數個空格間隙,同樣適用于最邊緣區域

.container{ justify-content: start | end | center | stretch | space-around | space-between | space-evenly; }
示例:
.container{ justify-content: start;}

.container{ justify-content: end; }

.container{ justify-content: center; }

.container{ justify-content: stretch; }

.container{ justify-content: space-around; }

.container{ justify-content: space-between; }

.container{ justify-content: space-evenly; }

align-content

當你使用px這種非響應式的單位對你的網格項進行大小設置時,就有可能出現一種情況--你的網格大小可能小于其網格容器的大小。在這種情況下,你就可以設置網格容器內網格的對齊方式。此屬性會將網格沿行軸進行對齊(相反于justify-content屬性定義的沿列軸對齊)。

屬性值:

start: 網格與網格容器的頂端對齊


end: 網格與網格容器的底部對齊


center: 網格處于網格容器的中間


stretch: 調整網格項的大小,使其高度填充整個網格容器


space-around: 在網格項之間設置偶數個空格間隙,其最邊緣間隙大小為中間空格空隙大小的一半


space-between: 在網格項之間設置偶數個空格間隙,其最邊緣不存在空格間隙


space-evenly: 在網格項之間設置偶數個空格間隙,同樣適用于最邊緣區域

.container{ align-content: start | end | center | stretch | space-around | space-between | space-evenly; }
示例:
.container{ align-content: start; }

.container{ align-content: end; }

.container{ align-content: center; }

.container{ align-content: stretch; }

.container{ align-content: space-around; }

.container{ align-content: space-between; }

.container{ align-content: space-evenly; }

grid-auto-columns和grid-auto-rows

指定任何自動生成的網格軌道(隱式網格跟蹤)的大小。當你顯式定位行或列(使用 grid-template-rows/grid-template-columns屬性)時,就會產生超出定義范圍內的隱式網格軌道。

屬性值:

track-siz : 可以是長度、 百分比或網格自由空間的一小部分(使用fr單位)

.container{ grid-auto-columns: track-size ...; grid-auto-rows: track-size ...;}

為了說明隱式網格軌道是如何被創造出來的,請思考如下代碼:

.container{ grid-template-columns: 60px 60px; grid-template-rows: 90px 90px}

這里創建了一個2 x 2 的網格。

但是現在你想象你使用grid-column 和 grid-row 來定位網格項,如下所示:

.item-a{ grid-column: 1 / 2; grid-row: 2 / 3;.item-b{ grid-column: 5 / 6; grid-row: 2 / 3;}

這里我們定義.item b開始于列線 5 并結束于在列線 6,但是我們從來沒有定義列線 5 或 6。因為我們引用不存在的線,寬度為0的隱式軌道的就會被創建用來填補空白。我們可以使用grid-auto-columns 和 grid-auto-rows屬性來設置這些隱式軌道的寬度:

.container{ grid-auto-columns: 60px;}

grid-auto-flow

如果你不顯式的在網格中放置網格項,自動布局算法就會自動踢出此網格項。此屬性用來控制自動布局算法的工作原理。

屬性值:

row: 告訴自動布局算法填充每一行,必要時添加新行


column: 告訴自動布局算法填充每一列,必要時添加新列


dense: 告訴自動布局算法試圖填補網格中之前較小的網格項留有的空白

.container{ grid-auto-flow: row | column | row dense | column dense}

注意:dense值可能會導致更改網格項的順序。

示例:

考慮如下HTMl代碼:

 section >

這里定義了一個兩列五行的網格,并將 grid-auto-flow屬性設置為row(即默認值):

.container{ display: grid; grid-template-columns: 60px 60px 60px 60px 60px; grid-template-rows: 30px 30px; grid-auto-flow: row;}

將網格項放置在網格中時只需要其中的兩個網格項:

.item-a{ grid-column: 1; grid-row: 1 / 3;.item-e{ grid-column: 5; grid-row: 1 / 3;}

因為我們將grid-auto-flow屬性設置為了row,所以我們的網格看起來會像這個樣子。注意我們我們沒有對其進行設置的三個網格項(item-b, item-c and item-d),會沿行軸進行布局。

如果我們將grid-auto-flow屬性設置為 column,item-b, item-c 和 item-d 就會沿列軸進行布局。

.container{ display: grid; grid-template-columns: 60px 60px 60px 60px 60px; grid-template-rows: 30px 30px; grid-auto-flow: column;}

grid

在一行聲明中設置一下所有屬性的簡寫形式:grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, 以及 grid-auto-flow。它將 grid-column-gap 和 grid-row-gap屬性設置為初始值,即使它們不能顯示的設置此屬性。

屬性值:

none: 將所有的子屬性設置為初始值


subgrid: 將grid-template-rows 和 grid-template-columns屬性值設置為subgrid,其余子屬性設置為初始值


grid-template-rows / grid-template-columns : 將grid-template-rows 和 grid-template-columns屬性值設置為指定值,其余子屬性設置為初始值


grid-auto-flow [ grid-auto-rows [ / grid-auto-columns ] ] : grid-auto-flow, grid-auto-rows 和 grid-auto-columns屬性分別接受相同的值,如果省略了grid-auto-columns屬性,它將設置為grid-auto-rows屬性的值。如果兩者均被忽略,那么都將被設置為初始值。

.container{ grid: none | subgrid | grid-template-rows / grid-template-columns | grid-auto-flow [ grid-auto-rows [/ grid-auto-columns }
示例:

下面兩個代碼塊是等效的:

.container{ grid: 200px auto / 1fr auto 1fr;.container{ grid-template-rows: 200px auto; grid-template-columns: 1fr auto 1fr; grid-template-areas: none;}

同樣,下面的兩個代碼塊也是等效的:

.container{ grid: column 1fr / auto;.container{ grid-auto-flow: column; grid-auto-rows: 1fr; grid-auto-columns: auto;}

它還接受一次性設置所有屬性,更復雜但非常方便的語法。指定grid-template-areas, grid-auto-rows 和 grid-auto-columns屬性,其他所有子屬性都將設置為其初始值。你現在所做的是在其網格區域內,指定網格線名稱和內聯軌道大小。下面是最簡單的描述:

.container{ grid: [row1-start] header header header 1fr [row1-end] [row2-start] footer footer footer 25px [row2-end] / auto 50px auto;}

等效于:

.container{ grid-template-areas: header header header  footer footer footer  grid-template-rows: [row1-start] 1fr [row1-end row2-start] 25px [row2-end]; grid-template-columns: auto 50px auto; }
網格項屬性(Grid Items) grid-column-start/grid-column-end/grid-row-start/grid-row-end

使用特定的網格線確定網格項在網格內的位置。grid-column-start/grid-row-start 屬性表示網格項的網格線的起始位置,grid-column-end/grid-row-end屬性表示網格項的網格線的終止位置。

屬性值:

line : 可以是一個數字來引用相應編號的網格線,或者使用名稱引用相應命名的網格線


span number : 網格項包含指定數量的網格軌道


span name : 網格項包含指定名稱網格項的網格線之前的網格軌道


auto: 表明自動定位,自動跨度或者默認跨度之一

.item{ grid-column-start: number | name | span number | span name | auto grid-column-end: number | name | span number | span name | auto grid-row-start: number | name | span number | span name | auto grid-row-end: number | name | span number | span name | auto}
示例:
.item-a{ grid-column-start: 2; grid-column-end: five; grid-row-start: row1-start grid-row-end: 3}

.item-b{ grid-column-start: 1; grid-column-end: span col4-start; grid-row-start: 2 grid-row-end: span 2}

如果沒有聲明grid-column-end/grid-row-end屬性,默認情況下網格項的跨度為1。

網格項可以互相重疊??梢允褂脄-index屬性控制堆疊順序。

grid-column/grid-row

grid-column-start + grid-column-end, 和 grid-row-start + grid-row-end屬性分別的簡寫形式。

屬性值:

start-line / end-line : 每一個屬性均接收一個相同值,包括跨度。

.item{ grid-column: start-line / end-line | start-line / span html' target='_blank'>value  grid-row: start-line / end-line | start-line / span value }
示例:
.item-c{ grid-column: 3 / span 2; grid-row: third-line / 4;}

如果沒有聲明結束網格線值,默認網格軌道跨度為1.

grid-area

給網格項進行命名以便于模板使用grid-template-areas屬性創建時可以加以引用。另外也可以被grid-row-start + grid-column-start + grid-row-end + grid-column-end屬性更為簡潔的加以引用。

屬性值:

name : 你所定義的名稱


row-start / column-start / row-end / column-end : 可以為數字或者名稱

.item{ grid-area: name | row-start / column-start / row-end / column-end }
示例:

對網格項進行命名的一種方式:

.item-d{ grid-area: header}

grid-row-start + grid-column-start + grid-row-end + grid-column-end屬性的一種簡寫方式:

.item-d{ grid-area: 1 / col4-start / last-line / 6}

justify-self

沿列軸對齊網格項中的內容(相反于align-item屬性定義的沿行軸對齊)。此值適用于單一網格項中的內容。

屬性值:

start: 內容與網格區域的左端對齊


end: 內容與網格區域的右端對齊


center: 內容處于網格區域的中間位置


stretch: 內容寬度占據整個網格區域空間(默認值)

.item{ justify-self: start | end | center | stretch;}
示例
.item-a{ justify-self: start;}

.item-a{ justify-self: end;}

.item-a{ justify-self: center;}

.item-a{ justify-self: stretch;}

設置網格中所有網格項的對齊方式,可以使用網格容器上的justify-items屬性。

align-self

沿行軸對齊網格項中的內容(相反于justify-item屬性定義的沿列軸對齊)。此值適用于單一網格項中的內容。

屬性值:

start: 內容與網格區域的頂端對齊


end: 內容與網格區域的底部對齊


center: 內容處于網格區域的中間位置


stretch: 內容高度占據整個網格區域空間(默認值)

.item{ align-self: start | end | center | stretch;}
示例:
.item-a{ align-self: start;}

.item-a{ align-self: end;}

.item-a{ align-self: center;}

.item-a{ align-self: stretch;}

使網格中所有的網格項對齊,可以使用網格容器上的align-items屬性。

以上就是CSS Grid布局指南的詳細內容,html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩精品在线| 国产一区二区在线播放| 一区二区三区国产视频| 中文字幕欧美日韩在线| 欧美精品一本久久男人的天堂| 国产一区二区三区免费视频| 国产精品福利片| 91高清视频免费| 国产精品啪视频| 欧美日韩国产精品专区| 亚洲第一天堂av| 超碰日本道色综合久久综合| 欧美限制级电影在线观看| 久久99亚洲热视| 亚洲国产又黄又爽女人高潮的| 日韩精品视频在线播放| 亚洲色图25p| 91在线视频导航| 91精品国产九九九久久久亚洲| 一区二区中文字幕| 精品亚洲一区二区三区在线观看| 国产午夜精品免费一区二区三区| 亚洲成人激情图| 蜜臀久久99精品久久久久久宅男| 91免费看片网站| 这里只有精品丝袜| 国产欧美日韩精品丝袜高跟鞋| 国产成人精品av| 欧美激情一区二区三区在线视频观看| 国产精品自拍偷拍| 97香蕉超级碰碰久久免费的优势| 91a在线视频| 国产精品久久久久久久久久ktv| 久久99久久99精品免观看粉嫩| 亚洲国产欧美久久| 91在线观看免费高清| 久久国产精彩视频| 人妖精品videosex性欧美| 福利视频一区二区| 性亚洲最疯狂xxxx高清| 国产免费久久av| 97视频在线观看免费高清完整版在线观看| 亚洲国产精品国自产拍av秋霞| 自拍偷拍免费精品| 激情久久av一区av二区av三区| 91精品久久久久久久久久| 2019亚洲男人天堂| 777777777亚洲妇女| 性色av香蕉一区二区| 欧美巨猛xxxx猛交黑人97人| 爽爽爽爽爽爽爽成人免费观看| 精品欧美激情精品一区| 91免费看片在线| 国产日韩在线播放| 色琪琪综合男人的天堂aⅴ视频| 中文字幕久久精品| 自拍视频国产精品| 欧美成人精品xxx| 久久久久久999| 亚洲福利影片在线| 欧洲亚洲女同hd| 欧美国产极速在线| 九九精品视频在线| 国产亚洲精品va在线观看| 欧美性资源免费| 欧美在线观看日本一区| 日韩亚洲精品视频| 国产剧情久久久久久| 国产精品亚洲网站| 日韩成人中文字幕| 最近2019年中文视频免费在线观看| 欧美在线性爱视频| 亚洲国产成人久久综合一区| 欧美电影在线观看高清| 日韩精品视频在线观看免费| 青青精品视频播放| 亚洲一区二区日本| 国产精品第一视频| 亚洲第一视频网站| 亚洲成av人影院在线观看| 91免费在线视频网站| 午夜精品在线视频| 国产精品入口日韩视频大尺度| 亚洲综合av影视| 亚洲xxxx18| 精品久久久久久久久久久久久| 在线视频日韩精品| 欧美老女人bb| 亚洲精品资源在线| 国产91精品久| 久久免费少妇高潮久久精品99| 91老司机精品视频| 91久久久在线| 国产精品第2页| 久久久久久久激情视频| 色噜噜国产精品视频一区二区| 91在线高清视频| 国产精品免费视频久久久| 成人性生交大片免费看小说| 精品久久久久久久久中文字幕| 国产精品羞羞答答| 91av在线影院| 亚洲男女性事视频| 中文字幕亚洲欧美日韩在线不卡| 亚洲第一黄色网| 国产欧美 在线欧美| 国产精品久久久久久av福利软件| 91视频国产高清| 亚洲精品97久久| 精品久久久久国产| 日韩视频永久免费观看| 国产一区二区精品丝袜| 高清欧美性猛交| 久久久精品视频成人| 一区二区在线视频| 8x拔播拔播x8国产精品| 欧美在线视频免费| 久久久亚洲成人| 亚洲图片制服诱惑| 日韩视频在线免费观看| 欧美国产日本高清在线| 国产成人一区二区三区小说| 国产91ⅴ在线精品免费观看| 亚洲人成网站色ww在线| 日本最新高清不卡中文字幕| 欧美日韩国产精品一区二区三区四区| 久久久女女女女999久久| 精品视频久久久| 欧美—级a级欧美特级ar全黄| 91精品国产色综合久久不卡98| 欧美性高跟鞋xxxxhd| 欧美成人午夜剧场免费观看| 欧美成人免费小视频| 97av在线视频免费播放| 91av在线播放视频| 97久久精品人人澡人人爽缅北| 日本精品视频在线播放| 在线播放日韩专区| 亚洲美女又黄又爽在线观看| 一区二区在线视频播放| 国产精品一区二区三区毛片淫片| 欧美成人免费一级人片100| 午夜精品久久久久久久久久久久久| 欧美www在线| 国产一区在线播放| 亚洲a∨日韩av高清在线观看| 欧美精品一区二区三区国产精品| 成人xvideos免费视频| 欧美在线视频一区| 一本色道久久综合狠狠躁篇怎么玩| 久久久精品999| 亚洲国产成人91精品| 日本免费久久高清视频| 日本sm极度另类视频| 色偷偷88888欧美精品久久久| 精品偷拍各种wc美女嘘嘘| 一级做a爰片久久毛片美女图片| 亚洲人成网站777色婷婷| 亚洲影视中文字幕| 中文国产成人精品| 欧美日韩精品在线观看| 亚洲一区二区久久久久久久| 欧美成人免费大片| 欧美精品videosex性欧美|