92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

首頁

學渣代表HTML知識基礎語法篇

seo達人

HTML基礎知識

第一篇,HTML的結構

HTML中兩個概念

(1).HTML標簽:<元素名稱></元素名稱>

  完整語法:<元素名稱>要控制的元素</元素名稱>

HTML標簽分為兩種: 成對:只對標簽內的元素起作用

                                    單獨:在相應位置插入換行

標簽屬性設置在元素的首標簽:語法:<元素 屬性1=“值1” …>元素資料</元素>,""可省略

HTML元素: 一組標簽將一段文字包含在中間,這一組標簽與文字就是元素

結構

在所有的HTML文件中最外層由標簽建立,并包含兩個子標簽:元素為文件標題 :元素為文件主題



:說明文件標題和文件的一些公共屬性 :文件主體

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>HTML結構</title>

</head>

<body>

Hellow Word!

</body>

</html>


SS之盒子模型與背景屬性————每天一遍小知識

seo達人

盒子模型與背景屬性

一.盒子模型

1.介紹

  1. 元素的總寬度和總高度

    二.自定義邊框——border

    1.基本設置

    2.邊框寬度——Border Width

    3.邊框顏色——Border Color

    4.邊框樣式——Border style

    5.CSS的邊寬和高度——width height

    三.背景——background

    1.背景顏色——background color

    2.背景圖像—— background image

    3.背景重復—— background repeat

    4.背景的附件(固定與滾動)——background attachment

    一.盒子模型

    1.介紹

    所有HTML元素都可以視為方框。

    CSS邊框模型代表網站的設計和布局。

    它由邊緣(margins),邊框( borders),內邊距(paddings),和內容(content)組成的。

    這些屬性以什么的順序工作:top->right->bottom->left。





    小知識:



    網頁的每個元素都是一個盒子(box)。 CSS使用盒子模型來確定盒子有多大以及如何放置它們。

    框模型還用于計算HTML元素的實際寬度和高度。
  2. 元素的總寬度和總高度

    (1)總寬度等于左右邊緣,邊框,邊距相加:







    (2)總高度:上下相加





    二.自定義邊框——border

    1.基本設置

    border屬性允許您自定義HTML元素的邊框。

    為了向元素添加邊框,您需要指定邊框的大小,樣式,顏色。

    p {

       padding: 10px;    

       border: 5px solid green;

    }



    2.邊框寬度——Border Width

    使用border-width屬性可以 單獨設置邊框寬度



    p{

       padding: 10px;    

       border-style: solid;

       border-width: 2px;

    }



    3.邊框顏色——Border Color

    可以使用顏色名稱,RGB或十六進制值定義元素的邊框顏色。



    p.first {

       padding: 10px;

       border-style: solid;

       border-width: 2px;

       border-color: blue;

    }



    小知識:除非設置border-style屬性,否則所有border屬性都不會起作用。



    4.邊框樣式——Border style

    默認值為none

    多種樣式:dotted(點), dashed(虛線), double(雙邊框)等。

    p {border-style: none;}

    p {border-style: dotted;}

    p{border-style: dashed;}

    p{border-style: double;}

    p {border-style: groove;}

    p {border-style: ridge;}

    p{border-style: inset;}

    p{border-style: outset;}

    p {border-style: hidden;}







    5.CSS的邊寬和高度——width height

    要設置<div>元素的總寬度和高度為100px:

    div {

       border: 5px solid green;    

       width: 90px;

       height: 90px;

    }



    框的總寬度和高度將為90px + 5px(邊框)+ 5px(邊框)= 100px;



    可以使用百分比 進行分配。

    div {

       border: 5px solid green;    

       width: 100%;

       height: 90px;

    }



    3.要設置元素的最小和最大高度與寬度,可以使用以下屬性:



    min-width-元素的最小寬度

    min-height-元素的最小高度

    max-width-元素的最大寬度

    max-height-元素的最大高度

    p{

       border: 5px solid green;    

       min-height: 100px;       

    }



    三.背景——background

    1.背景顏色——background color

    background-color屬性用來指定一個元素的背景色。



    列:



    body {

       background-color: #C0C0C0;

    }

    h1 {

       background-color: rgb(135,206,235);

    }

    p {

       background-color: LightGreen;

    }



    2.背景圖像—— background image

    background-image屬性中的元素可以設置一個或幾個背景圖像。

    URL指定路徑的圖像文件。相對路徑和絕對路徑均受支持。

    默認情況下,背景圖像放置在元素的左上角,并在垂直和水平方向重復以覆蓋整個元素。

    列;為<p>元素設置背景圖片。



    p {

       padding: 30px;

       background-image: url("1.jpg");

       color: white;   

    }



    小知識



    要指定多個圖像,只需用逗號分隔URL。



    3.背景重復—— background repeat

    repeat-x:圖片延x軸復制

    repeat-y:圖片延y軸復制

    Inherited:繼承父級屬性相同的指定值

    no-repeat:不重復,只有單個圖片

    列:



    body {

       background-image: url("1.png");

       background-repeat: repeat-x;

    }

    p {

       background-image: url("1.png");

       background-repeat: inherit;

       margin-top: 100px;

       padding: 40px;

    }



    4.背景的附件(固定與滾動)——background attachment

    有效值



    fixed:固定背景圖片

    scroll:向下滾動頁面是,背景也隨著滾動

    Inherit:繼承

    列:



    body {

       background-image: url("1.png");

       background-repeat: no-repeat;

       background-attachment: scroll;

    }


Swift 閉包簡單使用

seo達人

在Swift開發文檔中是這樣介紹閉包的:閉包是可以在你的代碼中被傳遞和引用的功能性獨立模塊。

Swift閉包

閉包的形式

Swift中的閉包有很多優化的地方

創建基本的閉包

在閉包中接收參數

從閉包中返回值

閉包作為參數

尾隨閉包語法

值捕獲

逃逸閉包

閉包的形式

全局函數 嵌套函數 閉包表達式

有名字但不能捕獲任何值。 有名字,也能捕獲封閉函數內的值。 無名閉包,使用輕量級語法,可以根據上下文環境捕獲值。

Swift中的閉包有很多優化的地方

根據上下文推斷參數和返回值類型



從單行表達式閉包中隱式返回(也就是閉包體只有一行代碼,可以省略return)



可以使用簡化參數名,如$0, $1(從0開始,表示第i個參數…)



提供了尾隨閉包語法(Trailing closure syntax)



閉包是引用類型:無論你將函數或閉包賦值給一個常量還是變量,你實際上都是將常量或變量的值設置為對應函數或閉包的引用



創建基本的閉包

let bibao = {

  print("我要創建閉包")

}



上面的代碼實際上創建了一個匿名的函數,并將這個函數賦給了 driving。之后你就可以把 driving() 當作一個常規的函數來用,就像這樣:



bibao()



在閉包中接收參數

當你創建閉包的時候,它們并沒有名字,也沒有提供書寫參數的地方。但這并不意味著它們不能接收參數,只不過它們接收參數的方式稍有不同:這些參數是被寫在 花括號里面的。



為了讓一個閉包接收參數,你需要在花括號之后把這些參數列出來,然后跟上一個 in 關鍵字。這樣就告訴Swift,閉包的主體是從哪里開始的。



舉個例子,我們來創建一個閉包,接收一個叫 place 的字符串作為唯一的參數,就像這樣:



let bibao= { (bao1: String) in

  print("我要創建 (bao1)。")

}



函數和閉包的一個區別是運行閉包的時候你不會用到參數標簽。因此,調用 driving() 的時候,我們是這樣寫的:



bibao("閉包")



從閉包中返回值

閉包也能返回值,寫法和閉包的參數類似:寫在閉包內部, in 關鍵字前面。



還是以 driving() 閉包為例, 讓它返回一個字符串。原來的函數是這樣的:



let bibao= { (bao1: String) in

  print("我要創建  (bao1)。")

}



改成返回字符串而不是直接打印那個字符串,需要 in 之前添加 -> String,然后像常規函數那樣用到 return 關鍵字:



let drivingWithReturn = { (bao1: String) -> String in

  return "我要創建 (bao1)。"

}



現在我們運行這個閉包并且打印出它的返回值:



let message = drivingWithReturn("閉包")

print(message)



閉包作為參數

既然閉包可以像字符串和整數一樣使用,你就可以將它們傳入函數。閉包作為參數的語法乍一看一看挺傷腦筋的,讓我們慢慢來。



首先,還是基本的 driving() 閉包。



let driving = {

  print("我正在創建")

}



如果我們打算把這個閉包傳入一個函數,以便函數內部可以運行這個閉包。我們需要把函數的參數類型指定為 () -> Void。 它的意思是“不接收參數,并且返回 Void”。在Swift中,Void是什么也沒有的意思。



好了,讓我們來寫一個 travel() 函數,接收不同類型的 traveling 動作, 并且在動作前后分別打印信息:



func travel(action: () -> Void) {

  print("我準備創建")

  action()

  print("我建好了")

}



現在可以用上 driving 閉包了,就像這樣:



travel(action: driving)

1

尾隨閉包語法

如果一個函數的最后一個參數是閉包,Swift允許你采用一種被稱為 “拖尾閉包語法” 的方式來調用這個閉包。你可以把閉包傳入函數之后的花括號里,而不必像傳入參數那樣。



又用到我們的 travel() 函數了。它接收一個 action 閉包。閉包在兩個 print() 調用之間執行:



func travel(action: () -> Void) {

  print("我準備創建")

  action()

  print("我建好了")

}



由于函數的最后一個參數是閉包,我們可以用拖尾閉包語法來調用 travel() 函數,就像這樣:



travel() {

  print("我要創建閉包")

}



實際上,由于函數沒有別的參數了,我們還可以將圓括號完全移除:



travel {

  print("我要創建閉包")

}



拖尾閉包語法在Swift中非常常見,所以要加深印象。



值捕獲

閉包可以在其被定義的上下文中捕獲常量或變量。即使定義這些常量和變量的原作用域已經不存在,閉包仍然可以在閉包函數體內引用和修改這些值。

Swift 中,可以捕獲值的閉包的最簡單形式是嵌套函數,也就是定義在其他函數的函數體內的函數。嵌套函數可以捕獲其外部函數所有的參數以及定義的常量和變量。

官方文檔例子:



 func makeIncrementer(forIncrement amount: Int) -> () -> Int {

     var runningTotal = 0

     func incrementer() -> Int {

         runningTotal += amount

        return runningTotal

     }

     return incrementer

 }

 //運行結果:

 let one = makeIncrementer(forIncrement: 10)

print(one())  //10

print(one())  //20



let two = makeIncrementer(forIncrement: 10)

print(two())  //10

print(two())  //20



逃逸閉包

當一個閉包作為參數傳到一個函數中,但是這個閉包在函數返回之后才被執行,我們稱該閉包從函數中逃逸。當你定義接受閉包作為參數的函數時,你可以在參數名之前標注 @escaping,用來指明這個閉包是允許“逃逸”出這個函數的。(默認值:@noescaping)

官方文檔例子:



var completionHandlers: [() -> Void] = []

func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) {

    completionHandlers.append(completionHandler)

}



如上面例子,加入標注@escaping即可表明這個閉包是允許逃逸的



以上就是我對Swift閉包的淺薄認知,如果有細節錯誤請指出,也可以查閱官方文檔,鏈接在下面教程更為詳細。

就是這樣啦,愛你們么么么~~


CSS樣式不起作用?史上最全解決方法匯總

前端達人

在我們寫頁面時,

瀏覽器緩存問題

有時會發現自己寫的css樣式無法生效,導致這種現象的原因有很多,下面列舉一些常見的原因希望可以幫到你,歡迎評論區補充。

如果你反復檢查認為代碼沒有問題,那么可能是瀏覽器緩存的問題。在排查前先試一下清除瀏覽器緩存,重啟瀏覽器或者換個瀏覽器等手段,無效后再進行進一步排查。有可能自己什么都沒有做錯,就是因為緩存或者瀏覽器的問題導致,重置一下也許問題就解決了。
瀏覽器的‘F12’元素審核,看看哪些樣式沒有應用上。
20200328134147899.png

細節問題



寫錯屬性名致使無法與html匹配,或屬性值不符合規范;



html標簽沒寫完整,漏了“<”或者”>”等;



,;{}看看這些符號是不是不小心使用了中文或者全角符號;



<span>設CSS樣式不起作用:例如:要定義span居中,必須先讓span成塊級元素顯示,也就是說,要先定義span的display:block;屬性,然后再給span添加邊距屬性margin:0px auto;



css樣式中間沒有加分號;

為什么css樣式里有時候使用分號隔開有時候是用空格呢?

對同一個屬性進行設置時是用空格隔開,比如border:1px solid red; 對不同的屬性進行設置時是用分號隔開,比如width:300px;height:300px;



樣式表關聯問題

如果你的樣式完全不生效,首先確認關聯了樣式表沒有,或者關聯的樣式位置、名字是否正確;

<link rel="stylesheet" type="text/css" href="mycss.css"/>

看看自定義的CSS樣式引入標簽是否放在bootstrap框架樣式引用之后,確保不會被在加載頁面時被框架的樣式覆蓋。


<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="mycss.csvs"/>





選擇器問題

后代子代選擇等,涉及多個標簽,類名、id等,子選擇器的順序、名字等寫錯了,均可能導致出錯;

html里的標簽忘記寫類名、id了,而選擇器用了這些漏寫的類名、id等,樣式自然不會生效。

后代選擇器忘了寫空格;

看看是不是有多余的空格比如: div.box{} 這類選擇器會不會寫成了 div .box{};



編碼格式問題

把CSS、HTML網頁文件都統一保存為UTF-8格式;即在頭標簽中添加<meta charset="UTF-8">

因為 一般網頁里采用UTF-8的編碼格式,而外部的CSS文件默認的是ANSI的編碼格式,一般情況下是不會有問題。然而當CSS文件中包含中文注釋,就可能會出現問題。


樣式層疊問題

看看你的css優先級是否出現問題,優先級高的會把低的覆蓋掉導致無法看到樣式;
本身設置了樣式,則從父級繼承來的樣式就不生效了;
css樣式優先級排序:!important > 行內樣式>ID選擇器 > 類選擇器 > 標簽 > 通配符 > 繼承 > 瀏覽器默認屬性(同優先級時,后面的層疊前面的樣式);

排查順序:

20200328140418570.png





Vue中如何監控某個屬性值的變化

seo達人

Vue中如何監控某個屬性值的變化?

比如現在需要監控data中,obj.a 的變化。Vue中監控對象屬性的變化你可以這樣:



watch: {

      obj: {

      handler (newValue, oldValue) {

        console.log('obj changed')

      },

      deep: true

    }

  }



deep屬性表示深層遍歷,但是這么寫會監控obj的所有屬性變化,并不是我們想要的效果,所以做點修改:



watch: {

   'obj.a': {

      handler (newName, oldName) {

        console.log('obj.a changed')

      }

   }

  }



還有一種方法,可以通過computed 來實現,只需要:



computed: {

    a1 () {

      return this.obj.a

    }

}



利用計算屬性的特性來實現,當依賴改變時,便會重新計算一個新值。


HTML基礎知識

前端達人

HTML基礎知識

  1. HTML的歷史:HTML,XHTML
  2. HTML的全局屬性:全局標準屬性,全局事件屬性
  3. HTML的元素:

  4. a.png

  5. 點擊查看原圖

  1. 標記語言,是一種將文本以及與文本相關的其他信息結合起來,展現出關于文檔結構和數據處理細節的電腦文字編碼。
  2. HTML,為超文本標記語言。
  3. XHTML是可擴展超文本標記語言,是一種更純潔,更嚴格,更規范的html代碼。
  4. html文件由文件頭和文件體兩部分組成。
  5. 標簽的分類:雙標簽,單標簽。

HTML的全局標準屬性
在HTML中,規定了8個全局標準屬性。

class用于定義元素的類名。
id用于指定元素的唯一id。
style用于指定元素的行內樣式。
title用于指定元素的額外信息。
accesskey用于指定激活某個元素的快捷鍵。
支持accesskey屬性的元素有<a>, <area>, <button>, <input>, <label>, <legend>, <textarea>。

tabindex用于指定元素在tab鍵下的次序。
支持tabindex屬性的元素有<a>,<area>,<button>,<input>,<object>,<select>,<textarea>

dir用于指定元素中內容的文本方向。
dir的屬性值只有ltr和rtl兩種,分別是left to right和right to left。

lang用于指定元素內容的語言。
HTML的全局事件屬性
Window窗口事件
onload,在頁面加載結束后觸發。
onunload,在用戶從頁面離開時觸發,如單擊跳轉,頁面重載,關閉瀏覽器窗口等。
Form表單事件
onblur,當元素失去焦點時觸發。
onchange,在元素的元素值被改變時觸發。
onfocus,在元素獲得焦點時觸發。
onreset,當表單中的重載按鈕被點擊時觸發。
onselect,在元素中文本被選中后觸發。
onsubmit,在提交表單時觸發。
Keyboard鍵盤事件
onkeydown,在用戶按下按鍵時觸發。
onkeypress,在用戶按下按鍵后,按著按鍵時觸發。
該屬性不會對所有按鍵生效,不生效按鍵如:alt,ctrl,shift,esc。

onkeyup,當用戶釋放按鍵時觸發。
Mouse鼠標事件
onclick,當在元素上單擊鼠標時觸發。
onblclick,當在元素上雙擊鼠標時觸發。
onmousedown,當在元素上按下鼠標按鈕時觸發。
onmousemove,當鼠標指針移動到元素上時觸發。
onmouseout,當鼠標指針移出元素時觸發。
onmouseover,當鼠標指針移動到元素上時觸發。
onmouseup,當在元素上釋放鼠標按鈕時觸發。
Media媒體事件
onabort,當退出媒體播放器時觸發。
onwaiting,當媒體已停止播放但打算繼續播放時觸發。
HTML元素

點擊查看原圖



  1. <!DOCTYPE>,聲明文檔類型。
  2. <html>,HTML元素真正的根元素。
  3. <head>,定義html文檔的文檔頭。


head中包含的元素

title,定義HTML文檔的標題
base,為頁面上的所有鏈接規定默認地址或者默認目標
link,用于定義文檔與外部資源之間的關系
meta,提供關于HTML的元數據
style,用于為HTML文檔定義樣式信息
script,用于定義客戶端腳本



  1. body,定義html文檔的文檔體。
  2. content-Type,用于設定網頁的字符集,便于瀏覽器解析與渲染頁面。

cache-control,用于告訴瀏覽器如何緩存某個響應及緩存多長時間。

參數:



no-cache,發送請求,與服務器確認該資源是否被更改,如果沒有,則使用緩存



no-store,允許緩存,每次都要去服務器上下載完整的響應



public,緩存所有響應



private,只為單個用戶緩存



max-age,表示當前請求開始,相應響應在多久內能被緩存和重用,不去服務器重新請求,max-age=60表示響應可以再緩存和重用60秒



<meta http-equiv=cache-control" content="no-cache">

1

expires,用于設定網頁的到期時間,過期后重新到服務器上重新傳輸。

refresh,網頁將在設定的時間內,自動刷新并轉向設定的網址

Set-Cookie,用于設置網頁過期。

無語義元素:<span>,<div>,<span>是內聯標簽,用在一行文本中,<div>是塊級標簽。



div用于存放需要顯示的數據,css用于指定如何顯示數據樣式,做到結構與樣式相互分離。



查看div+css樣式HTML:點擊下方鏈接跳轉,可查看源碼:



div-css.html



格式化元素

普通文本

<b>,定義粗體文本

<big>,定義大號字

<em>,定義著重文字

<i>,定義斜體字

<small>,定義小號字

<strong>,定義加重語氣

<sub>,定義下標字

<sup>,定義上標字

<ins>,定義插入字

<del>,定義刪除字

計算機輸出

<code>,定義計算機代碼

<kbd>,定義鍵盤輸出樣式

<samp>,定義計算機代碼樣本

<tt>,定義打字機輸入樣式

<pre>,定義預格式文本

術語

<abbr>,定義縮寫

<acronym>,定義首字母縮寫

<address>,定義地址

<bdo>,定義文字方向

<blockquote>定義長的引用

<q>,定義短的引用語

<cite>,定義引用,引證

<dfn>,定義一個概念,項目





圖像熱區鏈接

圖像熱區鏈接,是什么呢?當你在看一些購物網頁的時候,一張圖片上,可以在不同的地方鏈接到不同的目標位置,點擊不同的地方可以跳轉到不同的網頁,這也是做商城項目一般要用到的技術。



這個時候不是<a>標簽元素了,而是<area>元素。



<area>元素的屬性有兩個shape,cords屬性。


<area>的坐標系,原點為圖片的左上角,x軸正方向向右,y軸正方向向下

我畫個圖哈,反映<area>的坐標系:

QQ截圖20200325235454.png

圖像熱區鏈接的使用,<map>標簽定義一個image-map,可以含一個以上的熱區<area>,每個熱區都有獨立的鏈接。

要為<map>標簽賦予name屬性。

將<img>標簽的usemap屬性與<map>標簽的name屬性相關聯。

為了證明我學會了,我寫一個html頁面。

map -> name="image_link"

img -> usemap="#image_link"
1
點擊跳轉:imgmap.html

e-mail鏈接
e-mail鏈接主要是看到有很多官方網頁需要做的一個打開一封新的電子郵件。

點擊下方鏈接即可看到效果:

聯系我們

代碼:

<a href="mailto:xxxxxx@qq.com">聯系我們</a>



列表元素
整合列表html網頁,點擊跳轉:ul-ol.html

無序列表,<ul>定義無序列表,<li>定義列表項。
<ul>的type屬性值:disc點,square方塊,circle圓,none無.

有序列表,<ol>定義有序列表,<li>定義列表項。
<ol>的type屬性值:數字,大寫字母,大寫羅馬數字,小寫字母,小寫羅馬數字。

start屬性定義序號的開始位置。

定義列表<dl>,定義列表內部可以有多個列表項標題,每個列表項標題用<dt>標簽定義,列表項標題內部又可以有多個列表項描述,用<dd>標簽定義。
表格
整合表格html網頁,點擊跳轉:table.html

<table>定義表格
<caption>定義表格標題
<tr>定義若干行
<td>定義若干單元格
<th>定義表頭
表格分頭部,主體,底部:<thead>,<tbody>,<tfoot>三個標簽。

  1. <td>的兩個屬性:colspan用于定義單元格跨行,rowspan用于定義單元格跨列
  2. <tbody>,<thead>,<tfoot>標簽通常用于對表格內容進行分組。
  3. 表單由<form>標簽定義,action屬性定義了表單提交的地址,method屬性定義表單提交的方式。


<input type="text">

<input type="password">

<input type="radio">

<input type="checkbox">

<input type="submit">

<input type="reset">

<input type="button">

<input type="image">

<input type="file">

<input type="hidden"> 




<textarea>元素

<textarea>標簽具有name,cols,rows3個屬性。

  1. name用于提交參數
  2. value用于輸入文本內容
  3. colsrows分別用于文本框的列數和行數,寬度和高度。

效果:

自我評價:


代碼:

<form action="web" method="post">
 自我評價:<br/>
 <textarea rows="10" cols="50" name="introduce">
 </textarea>
 <br/>
 <input type="submit" id="" name="">
</form>



frameset

  1. <frameset>定義一個框架集,用于組織多個窗口,每個框架存有獨立的html文檔
  2. <frameset>不能與<body>共同使用,除非有<noframe>元素
  3. <frame>用于定義<frameset>中一個特定的窗口??赵?code style="box-sizing:border-box;outline:0px;margin:0px;padding:2px 4px;font-family:"font-size:14px;line-height:22px;color:#C7254E;background-color:#F9F2F4;border-radius:2px;overflow-wrap:break-word;"><frame/>

:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>frameset</title>
    </head>
    <frameset cols="25%,50%,25%">
        <frame src="https://blog.csdn.net/qq_36232611" scrolling="no" noresize="noresize"></frame>
        <frame src="https://juejin.im/user/5e477d7ce51d4526c550a27d" ></frame>
        <frame src="https://www.jianshu.com/u/c785ece603d1" ></frame>
    </frameset>
    <noframes>
        <body>您的瀏覽器無法處理框架,請更換瀏覽器打開</body>
    </noframes>
</html>
1




顯示結果 描述 實體名稱 實體編號
空格 &nbsp; &#160;
< 小于號 &lt; &#60;
> 大于號 &gt; &#62;
& 和號 &amp; &#38;
" 引號 &quot; &#34;
' 撇號 &apos; (IE不支持) &#39;
分(cent) &cent; &#162;
鎊(pound) &pound; &#163;
元(yen) &yen; &#165;
歐元(euro) &euro; &#8364;
§ 小節 &sect; &#167;
© 版權(copyright) &copy; &#169;
® 注冊商標 &reg; &#174;
? 商標 &trade; &#8482;
× 乘號 &times; &#215;
÷ 除號 &divide; &#247;
————————————————
版權聲明:本文為CSDN博主「達達前端」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_36232611/article/details/105109467




你不知道的--save-dev和--save的區別

seo達人

網上對于這兩個的區別解釋都是統一口徑的,一個是開發依賴,一個是線上依賴,打包發布需要用到的要添加到線上依賴,一模一樣的回答,誤導了很多人。今天自己測試一下這兩個命令,記錄一下。



–save-dev,會在devDependencies里面添加依賴



-D,會在devDependencies里面添加依賴



–save,會在dependencies里面添加依賴



-S,會在dependencies里面添加依賴



devDependencies和dependencies可以同時存在同一個包的依賴。



如果npm install xxx后面沒有輸入要保存到哪個里面,devDependencies和dependencies都沒有。



我這邊直接npm install jquery,node_modules下有jQuery。然后我刪除node_modules,執行npm install,node_modules下并沒有下載jQuery。



所以,安裝依賴的時候如果沒有加上要依賴到開發還是線上,只是臨時的在node_modules里面幫你下載,而devDependencies和dependencies的依賴都會幫你下載。



然后我在devDependencies下安裝依賴:



"devDependencies": {  

    "html-webpack-plugin": "^4.0.3", 

    "jquery": "^3.4.1",  

    "webpack": "^4.42.1", 

    "webpack-cli": "^3.3.11"

}



在入口文件引用和打印jQuery:



import $ from 'jquery'

console.log($)



打包之后,可以使用jQuery。



然后我在dependencies下安裝依賴:



"dependencies": { 

    "html-webpack-plugin": "^4.0.3", 

    "jquery": "^3.4.1", 

    "webpack": "^4.42.1", 

    "webpack-cli": "^3.3.11"

}



在入口文件引用和打印jQuery:



import $ from 'jquery'

console.log($)



打包之后,可以使用jQuery。



測試的結果就是,無論是–save還是–save-dev,對于打包都沒有任何影響。devDependencies和dependencies兩種情況,打包出來的main.js都把jQuery打包進去。這兩種情況,如果都沒有引用jQuery的情況下,也都不會把jQuery打包。



接著在一個空白的項目里面下載axios,npm install axios -S,打開node_modules文件夾:







發現多出了另外三個依賴,查看axios下的package.json:



"dependencies": {



    "follow-redirects": "1.5.10"



}



查看follow-redirects下的package.json:



"dependencies": {



    "debug": "=3.1.0"



}



查看debugs下的package.json:



"dependencies": {



    "ms": "2.0.0"



}



最后ms的package.json沒有dependencies。



而這幾個包的devDependencies依賴的包沒有一個下載。



接著我在node_modules把follow-redirects、debugs、ms都刪了,把axios里面的package.js的dependencies給刪了,然后執行npm install,發現沒有下載follow-redirects、debugs、ms這幾個,也證明了如果node_modules里面有下載的包,是不會重新去下載的。我把node_modules刪除,執行npm install,這幾個包又都下載下來了。



最后得出 的結論是,–save-dev和–save在平時開發的時候,對于打包部署上線是沒有任何影響的。如果你是發布一個包給別人用,而你開發的包依賴第三方的包,那么你如果是–save,那么別人安裝你開發的包,會默認下載你依賴的包,如果你是–save-dev,那么別人安裝你開發的包,是不會默認幫忙下載你依賴的包。



其實發布的包如果沒有必要,很少會默認幫你下載,比如bootstrap,依賴jQuery,怕你原本就下載了引起沖突,也不會在dependencies里面安裝jQuery而是:



"peerDependencies": {



    "jquery": "1.9.1 - 3",



    "popper.js": "^1.16.0"



}



表示bootstrap依賴于這兩個包,你必須安裝,版本不固定,但是一定要安裝這兩個包,安裝的時候會有警告:



peerDependencies WARNING bootstrap@ requires a peer of jquery@1.9.1 - 3 but none was installed



peerDependencies WARNING bootstrap@
requires a peer of popper.js@^1.16.0 but none was installed



當你引用了然后打包,報錯:



ERROR in ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js



Module not found: Error: Can't resolve 'jquery' in 'C:\Users\wade\Desktop\savedev\node_modules_bootstrap@4.4.1@bootstrap\dist\js'



 @ ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js 7:82-99



 @ ./src/index.js



 



ERROR in ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js



Module not found: Error: Can't resolve 'popper.js' in 'C:\Users\wade\Desktop\savedev\node_modules_bootstrap@4.4.1@bootstrap\dist\js'



 @ ./node_modules/_bootstrap@4.4.1@bootstrap/dist/js/bootstrap.js 7:101-121



 @ ./src/index.js



以上就是對–save和–save-dev的一些測試,想更快的得出結論其實是自己發布一個包。至于本人的答案是不是存在錯誤,歡迎指出,因為只是自己簡單測試的結果。


vue實現移動端懸浮窗效果

前端達人

本文講述,在使用VUE的移動端實現類似于iPhone的懸浮窗的效果。

相關知識點

touchstart 當在屏幕上按下手指時觸發

touchmove 當在屏幕上移動手指時觸發

touchend 當在屏幕上抬起手指時觸發
mousedown mousemove mouseup對應的是PC端的事件

touchcancel 當一些更高級別的事件發生的時候(如電話接入或者彈出信息)會取消當前的touch操作,即觸發touchcancel。一般會在touchcancel時暫停游戲、存檔等操作。

效果圖

實現步驟

1.html

總結了一下評論,好像發現大家都碰到了滑動的問題。就在這里提醒一下吧??蓪⒃搼腋?DIV 同你的 scroller web 同級。 —- (log: 2018-08-21)

html結構: <template> <div>你的web頁面</div> <div>懸浮DIV</div> </template>

<template>
 <div id="webId">
 ...
 <div>你的web頁面</div>
 <!-- 如果碰到滑動問題,1.1 請檢查這里是否屬于同一點。 -->
 <!-- 懸浮的HTML -->
 <div v-if="!isShow" class="xuanfu" id="moveDiv"
  @mousedown="down" @touchstart="down"
  @mousemove="move" @touchmove="move"
  @mouseup="end" @touchend="end"
 >
  <div class="yuanqiu">
  {{pageInfo.totalPage}}
  </div>
 </div>
 ...
 </div>
</template>

2.JS

<script>
data() {
 return {
 flags: false,
 position: { x: 0, y: 0 },
 nx: '', ny: '', dx: '', dy: '', xPum: '', yPum: '',
 }
}

methods: {
 // 實現移動端拖拽
 down(){
 this.flags = true;
 var touch;
 if(event.touches){
  touch = event.touches[0];
 }else {
  touch = event;
 }
 this.position.x = touch.clientX;
 this.position.y = touch.clientY;
 this.dx = moveDiv.offsetLeft;
 this.dy = moveDiv.offsetTop;
 },
 move(){
 if(this.flags){
  var touch ;
  if(event.touches){
   touch = event.touches[0];
  }else {
   touch = event;
  }
  this.nx = touch.clientX - this.position.x;
  this.ny = touch.clientY - this.position.y;
  this.xPum = this.dx+this.nx;
  this.yPum = this.dy+this.ny;
  moveDiv.style.left = this.xPum+"px";
  moveDiv.style.top = this.yPum +"px";
  //阻止頁面的滑動默認事件;如果碰到滑動問題,1.2 請注意是否獲取到 touchmove
  document.addEventListener("touchmove",function(){
   event.preventDefault();
  },false);
 }
 },
//鼠標釋放時候的函數
 end(){
 this.flags = false;
 },
}
</script>

3.CSS

<style>
 .xuanfu {
 height: 4.5rem;
 width: 4.5rem;
 /* 如果碰到滑動問題,1.3 請檢查 z-index。z-index需比web大一級*/
 z-index: 999;
 position: fixed;
 top: 4.2rem;
 right: 3.2rem;
 border-radius: 0.8rem;
 background-color: rgba(0, 0, 0, 0.55);
 }
 .yuanqiu {
 height: 2.7rem;
 width: 2.7rem;
 border: 0.3rem solid rgba(140, 136, 136, 0.5);
 margin: 0.65rem auto;
 color: #000000;
 font-size: 1.6rem;
 line-height: 2.7rem;
 text-align: center;
 border-radius: 100%;
 background-color: #ffffff;
 }
</style>

實現好JS邏輯,基本上,問題不大。

本文鏈接 http://www.luyixian.cn/javascript_show_166242.aspx



再加一點

css之display:inline-block布局

1.解釋一下display的幾個常用的屬性值,inline , block, inline-block

  • inline(行內元素):
    1. 使元素變成行內元素,擁有行內元素的特性,即可以與其他行內元素共享一行,不會獨占一行. 
    2. 不能更改元素的height,width的值,大小由內容撐開. 
    3. 可以使用padding上下左右都有效,margin只有left和right產生邊距效果,但是top和bottom就不行.
  • block(塊級元素):
    1. 使元素變成塊級元素,獨占一行,在不設置自己的寬度的情況下,塊級元素會默認填滿父級元素的寬度. 
    2. 能夠改變元素的height,width的值. 
    3. 可以設置padding,margin的各個屬性值,top,left,bottom,right都能夠產生邊距效果.
  •  inline-block(融合行內于塊級):
    1. 結合了inline與block的一些特點,結合了上述inline的第1個特點和block的第2,3個特點.
    2. 用通俗的話講,就是不獨占一行的塊級元素。如圖:

圖一:1.png

圖二:

2.png

兩個圖可以看出,display:inline-block后塊級元素能夠在同一行顯示,有人這說不就像浮動一樣嗎。沒錯,display:inline-block的效果幾乎和浮動一樣,但也有不同,接下來講一下inline-block和浮動的比較。

 

2.inline-block布局 vs 浮動布局

    a.不同之處:對元素設置display:inline-block ,元素不會脫離文本流,而float就會使得元素脫離文本流,且還有父元素高度坍塌的效果

    b.相同之處:能在某程度上達到一樣的效果

我們先來看看這兩種布局:
圖一:display:inline-block3.png

圖二:4.png

對兩個孩子使用float:left,我在上一篇浮動布局講過,這是父元素會高度坍塌,所以要閉合浮動,對box使用overflow:hidden,效果如下:

>>乍一看兩個都能做到幾乎相同的效果,(仔細看看display:inline-block中有間隙問題,這個留到下面再講)

c.浮動布局不太好的地方:參差不齊的現象,我們看一個效果:
圖三:

圖四:

>>從圖3,4可以看出浮動的局限性在于,若要元素排滿一行,換行后還要整齊排列,就要子元素的高度一致才行,不然就會出現圖三的效果,而inline-block就不會。

 

3.inline-block存在的小問題:

a.上面可以看到用了display:inline-block后,存在間隙問題,間隙為4像素,這個問題產生的原因是換行引起的,因為我們寫標簽時通常會在標簽結束符后順手打個回車,而回車會產生回車符,回車符相當于空白符,通常情況下,多個連續的空白符會合并成一個空白符,而產生“空白間隙”的真正原因就是這個讓我們并不怎么注意的空白符。

 

b.去除空隙的方法:
1.對父元素添加,{font-size:0},即將字體大小設為0,那么那個空白符也變成0px,從而消除空隙
現在這種方法已經可以兼容各種瀏覽器,以前chrome瀏覽器是不兼容的
圖一:

 

c.瀏覽器兼容性:ie6/7是不兼容 display:inline-block的所以要額外處理一下:
在ie6/7下:
對于行內元素直接使用{dislplay:inline-block;}5.png
對于塊級元素:需添加{display:inline;zoom:1;}

 6.png

4.總結:

display:inline-block的布局方式和浮動的布局方式,究竟使用哪個,我覺得應該根據實際情況來決定的:
a.對于橫向排列東西來說,我更傾向與使用inline-block來布局,因為這樣清晰,也不用再像浮動那樣清除浮動,害怕布局混亂等等。
b.對于浮動布局就用于需要文字環繞的時候,畢竟這才是浮動真正的用武之地,水平排列的是就交給inline-block了。



node 模塊簡述

seo達人

Node 的os模塊是操作系統的

Node 的內置模塊 fs


內置模塊在下載node的時候就自帶的,使用 require()方法來導入

語法 :require(‘模塊fs’)



在內置模塊中的方法

1 fs.readFile() —》用來專門 異步 讀取文件的方法 三個參數

語法 :fs.readFile(‘要讀取的文件’,讀取文件的格式,讀取成功的回調函數)

Eg : fs.readFIle(‘a’,’utf8’,’function(err,data){ })



2 fs.readFileSync()-– 專門用來 同步 讀取的方法, 兩個參數

語法: fs.readFileSync(‘要讀取的文件’,讀取格式)



3 fs.writeFIle() —>用來寫入 異步 文件的方法 三個參數

語法: fs.writeFile(‘寫入到哪個文件’,寫入的內容,成功的回調函數)

Eg: fs.writeFile(‘./text.tex’,”內容”, function(){ })

注意:再次寫入的內容會完全覆蓋 。如果文件夾沒有 會自動創建一個文件夾



4 fs.writeFileSync() --> 同步寫入的方法

語法: fs.writeFileSync(‘寫入到文件’,“寫入的內容”)



Node的http模塊

這個模塊專門用來創建服務的

只能支持http協議。

也是使用require()方法

Const http= require(“http”)



方法

1 http.createServer(function(req,res){ }) 兩個形參

Req=request 代表每次的請求信息

Res=response 代表每次請求的響應

返回值是一個服務,當服務監聽端口號的時候,就變成了服務器。

2 監聽端口號

創建的服務.listen(監聽的端口號,監聽成功的回調函數(選填))

server.listen(8080,function(){ 端口號0-65535 建議0-1023不使用 })

此時瀏覽器就可以執行localhost進行訪問了



自定義模塊

每一個js文件都是一個獨立的模塊,他們都自帶一個 module 是一個對象,

其中 module里面的 exports,是一個對象 這個 module.exports 就是這個文件向外導出的內容,也就是說,只有導出,才能導入



Eg: function fn1(){console.log() }

Module.exports.fn1=fn1

這樣,才能是另一個js文件到入這個文件 同樣也是require(‘./js’)方法


教你用面向對象編程寫一個煙花爆炸的

前端達人

點擊查看原圖



想要學會這個漂亮的煙花嗎?快來跟著學習吧~

結構

<div class="container"></div>

我們只需要一個盒子表示煙花爆炸范圍就可以了

樣式

fire是煙花 注意添加絕對定位

 <style>
    .container{
        margin: 0 auto;
        height: 500px;
        width: 1200px;
        background: black;
        position: relative;
        overflow: hidden;
    }
    .fire{
        width: 10px;
        background: white;
        height: 10px;
        /* border-radius: 50%; */
        position: absolute;
        bottom: 0;
    }
    </style>



行為

編寫構造函數Firework

需要用到一個鼠標點擊的位置,一個div選擇器,一個爆炸樣式

 function Firework(x,y,selector,type){
        //此處獲取對象的方式為單例的思想,避免重復獲取相同的元素
        if(Firework.box && selector === Firework.box.selector){
            this.box =  Firework.box.ele;
        }else{
            Firework.box = {
                ele:document.querySelector(selector),
                selector:selector
            }
            this.box = Firework.box.ele;
        }
        this.type = type;
        this.init(x,y)
    }



封裝一個運動的方法
function animation(ele,attroptions,callback){
    for(var attr in attroptions){
        attroptions[attr] ={
            target:attroptions[attr],
            inow:parseInt(getComputedStyle(ele)[attr])
        } 
    }
    clearInterval(ele.timer);
    ele.timer = setInterval(function(){
        for(var attr in attroptions ){
            var item = attroptions[attr]
            var target = item.target;
            var inow = item.inow;
            var speed = (target - inow)/10;
            speed = speed>0?Math.ceil(speed):Math.floor(speed);
            if(Math.abs(target - inow) <= Math.abs(speed)){
                ele.style[attr] = target+"px";
                delete attroptions[attr];
                for(var num  in attroptions){
                    return false;
                }
                clearTimeout(ele.timer);
                if(typeof callback === "function")callback();
            }else{
                attroptions[attr].inow += speed;
                ele.style[attr]  = attroptions[attr].inow+"px";
            }
        }
    },30)
}



編寫原型方法
Firework.prototype = {
        constructor:Firework,
        //初始化
        init:function(x,y){
            //創建一個煙花
            this.ele = this.createFirework();
            //xy為鼠標落點
            this.x = x ;
            this.y = y;
            //maxXy為最大運動范圍
            this.maxX = this.box.offsetWidth - this.ele.offsetWidth;
            this.maxY = this.box.offsetHeight - this.ele.offsetHeight;
            //初始化結束后  煙花隨機顏色
            this.randomColor(this.ele);
            //煙花升空
            this.fireworkUp(this.ele);
        },
        //創造煙花
        createFirework:function(){
            var ele = document.createElement("div");
            ele.className = "fire";
            this.box.appendChild(ele);
            return ele;
        },
        //煙花升空
        fireworkUp:function(ele){
            ele.style.left = this.x + "px";
            //此處用到剛剛封裝的運動方法
            animation(ele,{top:this.y},function(){
                ele.remove();
                this.fireworkBlast()
            }.bind(this));
        },
        //煙花爆炸
        fireworkBlast:function(){
            for(var i = 0 ; i < 20; i++){
                var ele = document.createElement("div");
                ele.className = "fire";
                ele.style.left = this.x + "px";
                ele.style.top = this.y + "px";
                this.box.appendChild(ele);
                ele.style.borderRadius = "50%";
                this.randomColor(ele);
                //判定一下輸入的爆炸方式是原型煙花 還是散落煙花 由此更改獲取的煙花位置
                animation(ele,this.type === "circle"?this.circleBlast(i,20): this.randomPosition(),function(cale){
                    cale.remove();
                }.bind(this,ele))
            }
        },
        //圓形爆炸位置
        circleBlast:function(i,total){
            var r = 200;
            var reg = 360 / total *i;
            var deg = Math.PI / 180 *reg;
            return {
                left:r * Math.cos(deg) + this.x ,
                top:r * Math.sin(deg) + this.y 
            }
        },
        //隨機顏色
        randomPosition:function(){
            return {
                left : Math.random()*this.maxX,
                top : Math.random()*this.maxY
            }
        },
        randomColor:function(ele){
            var color =  "#" + parseInt(parseInt("ffffff",16)*Math.random()).toString(16).padStart(6,0);
            return ele.style.backgroundColor = color;
        }
    }



綁定事件
document.querySelector(".container").addEventListener("click",function(evt){
    var e = evt||event;
    new Firework(e.offsetX,e.offsetY,".container","circle")
    new Firework(e.offsetX,e.offsetY,".container")
})

全部代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    .container{
        margin: 0 auto;
        height: 500px;
        width: 1200px;
        background: black;
        position: relative;
        overflow: hidden;
    }
    .fire{
        width: 10px;
        background: white;
        height: 10px;
        /* border-radius: 50%; */
        position: absolute;
        bottom: 0;
    }
    </style>
</head>
<body>
    <div class="container"></div>
    <script src="./utils.js"></script>
    <script>

    function animation(ele,attroptions,callback){
        for(var attr in attroptions){
            attroptions[attr] ={
                target:attroptions[attr],
                inow:parseInt(getComputedStyle(ele)[attr])
            } 
        }
        clearInterval(ele.timer);
        ele.timer = setInterval(function(){
            for(var attr in attroptions ){
                var item = attroptions[attr]
                var target = item.target;
                var inow = item.inow;
                var speed = (target - inow)/10;
                speed = speed>0?Math.ceil(speed):Math.floor(speed);
                if(Math.abs(target - inow) <= Math.abs(speed)){
                    ele.style[attr] = target+"px";
                    delete attroptions[attr];
                    for(var num  in attroptions){
                        return false;
                    }
                    clearTimeout(ele.timer);
                    if(typeof callback === "function")callback();
                }else{
                    attroptions[attr].inow += speed;
                    ele.style[attr]  = attroptions[attr].inow+"px";
                }
            }
        },30)
    }  

        function Firework(x,y,selector,type){
            if(Firework.box && selector === Firework.box.selector){
                this.box =  Firework.box.ele;
            }else{
                Firework.box = {
                    ele:document.querySelector(selector),
                    selector:selector
                }
                this.box = Firework.box.ele;
            }
            this.type = type;
            this.init(x,y)
        }

        Firework.prototype = {
            constructor:Firework,
            //初始化
            init:function(x,y){
                this.ele = this.createFirework();
                this.x = x ;
                this.y = y;
                this.maxX = this.box.offsetWidth - this.ele.offsetWidth;
                this.maxY = this.box.offsetHeight - this.ele.offsetHeight;
                this.randomColor(this.ele);
                this.fireworkUp(this.ele);
            },
            //創造煙花
            createFirework:function(){
                var ele = document.createElement("div");
                ele.className = "fire";
                this.box.appendChild(ele);
                return ele;
            },
            fireworkUp:function(ele){
                ele.style.left = this.x + "px";
                animation(ele,{top:this.y},function(){
                    ele.remove();
                    this.fireworkBlast()
                }.bind(this));
            },
            //煙花爆炸
            fireworkBlast:function(){
                for(var i = 0 ; i < 20; i++){
                    var ele = document.createElement("div");
                    ele.className = "fire";
                    ele.style.left = this.x + "px";
                    ele.style.top = this.y + "px";
                    this.box.appendChild(ele);
                    ele.style.borderRadius = "50%";
                    this.randomColor(ele);
                    animation(ele,this.type === "circle"?this.circleBlast(i,20): this.randomPosition(),function(cale){
                        cale.remove();
                    }.bind(this,ele))
                }
            },
            circleBlast:function(i,total){
                var r = 200;
                var reg = 360 / total *i;
                var deg = Math.PI / 180 *reg;
                return {
                    left:r * Math.cos(deg) + this.x ,
                    top:r * Math.sin(deg) + this.y 
                }
            },
            randomPosition:function(){
                return {
                    left : Math.random()*this.maxX,
                    top : Math.random()*this.maxY
                }
            },
            randomColor:function(ele){
                var color =  "#" + parseInt(parseInt("ffffff",16)*Math.random()).toString(16).padStart(6,0);
                return ele.style.backgroundColor = color;
            }
        }

        document.querySelector(".container").addEventListener("click",function(evt){
            var e = evt||event;
            new Firework(e.offsetX,e.offsetY,".container","circle")
            new Firework(e.offsetX,e.offsetY,".container")
        })
    </script>
</body>
</html>

————————————————
版權聲明:本文為CSDN博主「SpongeBooob」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_41383900/article/details/105026768


日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
日韩黄色三级在线观看| 国产成人精品国内自产拍免费看| 欧美午夜视频在线| 色94色欧美sute亚洲13| 青青草原国产在线| 97偷自拍亚洲综合二区| 日韩大陆毛片av| 色婷婷av一区二区三区在线观看| 日本黄色一区二区| 成人av毛片| 欧美专区在线观看一区| 沈樵精品国产成av片| 欧美一级高清大全免费观看| 欧美群妇大交群的观看方式| 亚洲欧洲精品在线| 欧美aaaaa性bbbbb小妇| 欧美天天综合色影久久精品| 国产麻豆成人传媒免费观看| 亚洲精品女av网站| 亚洲在线免费看| 97精品久久久久中文字幕| 三级一区在线视频先锋| 亚洲色图欧美制服丝袜另类第一页| 影音先锋日韩资源| 亚洲综合在线小说| 国产精品自在欧美一区| 国产精品一区免费观看| 久久久久久久久成人| 国产精品网址在线| 欧美国产日本韩| 91久久精品一区二区三| 老牛国产精品一区的观看方式| 国产剧情在线观看一区二区| 久久99亚洲精品| 亚洲mv大片欧洲mv大片精品| 欧美成人在线免费观看| 成人在线免费观看网站| 国产真实有声精品录音| 久久综合中文字幕| 综合色一区二区| 亚洲高清色综合| 久热成人在线视频| 中文在线аv在线| 精品一区二区三区的国产在线播放| 电影天堂国产精品| 欧美日本韩国一区| 人人香蕉久久| 91成人免费视频| 国产精品久久精品国产| 日韩和欧美一区二区| 美美哒免费高清在线观看视频一区二区| 羞羞网站在线看| 91精品中国老女人| 99久久久国产精品| 日本韩国一区二区| 国产精品jizz视频| 天天操天天干天天综合网| 狠狠躁夜夜躁人人躁婷婷91| 欧美激情久久久| 97成人资源| 91超碰这里只有精品国产| 亚洲最新视频在线| 成人在线观看免费视频| 久久99久久人婷婷精品综合| 精品久久久香蕉免费精品视频| 亚洲女同中文字幕| 擼擼色在线看观看免费| 久久精品视频在线| 欧美激情自拍偷拍| sm捆绑调教国产免费网站在线观看| 日韩伦理一区二区| 亚洲成人免费| 亚洲成人激情综合网| 91精品国产九九九久久久亚洲| 成人在线tv视频| 日本午夜精品一区二区三区| 女人色偷偷aa久久天堂| 国产福利在线视频| 亚洲 欧美综合在线网络| 免费观看日韩电影| 久久99精品久久久水蜜桃| 日韩一级黄色大片| 亚洲国产婷婷综合在线精品| 在线免费三级电影网站| 亚洲午夜精品视频| 成人免费一区二区三区在线观看| 国产精品大片免费观看| 中文字幕国产亚洲2019| 欧美亚洲自拍偷拍| 国产亚洲精品7777| 日韩在线观看免费高清完整版| 91在线观看免费高清完整版在线观看| 日韩有码中文字幕在线| 欧美日韩亚州综合| 成人免费高清在线观看| 国产精品996| 99在线视频首页| 国产精品18久久久久久麻辣| 欧美精品久久99久久在免费线| 美女国产一区二区| av在线播放国产| 91精品国产综合久久香蕉的特点| 极品日韩久久| 国产精品毛片久久久久久久| 在线日韩国产精品| 久久亚洲美女| 欧美日韩在线一区二区| 亚洲成人1区2区| 中文不卡在线| 日韩中文字幕av在线| 78精品国产综合久久香蕉| 99re8这里有精品热视频免费| 欧美91福利在线观看| 久久66热这里只有精品| 欧美国产日韩免费| 成人久久久精品乱码一区二区三区| 欧美一区二区三区视频在线| 久久视频在线观看中文字幕| 国产日韩欧美激情| 日韩av一二三| 99热这里只有精品首页| 一区在线观看视频| 欧美电影免费观看| gratisvideos另类灌满| 亚洲高清在线观看一区| 高清精品久久| 亚洲天堂视频在线观看| 亚洲精品电影在线一区| 欧美午夜一区二区| 日韩精品视频网站| 免费观看性欧美大片无片| 国产精华一区二区三区| 欧美精品vⅰdeose4hd| 欧美亚洲综合视频| 女生影院久久| 极品美女销魂一区二区三区| 国产麻豆精品久久| 蜜桃精品wwwmitaows| 成人午夜又粗又硬又大| 亚洲国产片色| 91精品91久久久久久| 超碰97人人做人人爱少妇| 亚洲视频你懂的| 亚洲第一福利网站| 26uuu另类欧美亚洲曰本| 自拍亚洲一区欧美另类| 亚洲人亚洲人成电影网站色| 国产黄色大片在线观看| 亚洲不卡在线观看| 亚洲精品按摩视频| 亚洲二区中文字幕| 午夜不卡av在线| 日本一区二区精品视频| 在线成人av影院| 捆绑变态av一区二区三区| heyzo一区| 亚洲第一精品自拍| 亚洲经典一区| 国产精品嫩草久久久久| 欧美老女人另类| 欧美一区二区三区四区久久| 国产高清自产拍av在线| 玉米视频成人免费看| 久久国产毛片|