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

首頁

移動端用戶體驗:底部導航

藍藍設計的小編

設計師都知道,設計不只是為了好看。設計也決定用戶如何融入一個產品,無論是網站還是app。這是一種交談。導航就是一種交談。因為如果用戶不明白使用方式,你的網站或app再漂亮都沒用。

js瀏覽器兼容問題總結及解決辦法

seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

javascript部分

  1. document.form.item 問題 
    問題: 
    代碼中存在 document.formName.item(“itemName”) 這樣的語句,不能在FF下運行 
    解決方法: 
    改用 document.formName.elements[“elementName”]

  2. 集合類對象問題 
    問題: 
    代碼中許多集合類對象取用時使用(),IE能接受,FF不能 
    解決方法: 
    改用 [] 作為下標運算,例:

document.getElementsByName("inputName")(1) 改為 document.getElementsByName("inputName")[1]
    
  • 1
  1. window.event 
    問題: 
    使用 window.event 無法在FF上運行 
    解決方法: 
    FF的 event 只能在事件發生的現場使用,此問題暫無法解決??梢园?event 傳到函數里變通解決:
onMouseMove = "functionName(event)" function functionName (e) { e = e || window.event;
    ......
}
    
  • 1
  • 2
  • 3
  • 4
  • 5
  1. HTML對象的 id 作為對象名的問題 
    問題: 
    在IE中,HTML對象的 ID 可以作為 document 的下屬對象變量名直接使用,在FF中不能 
    解決方法: 
    使用對象變量時全部用標準的 getElementById(“idName”)

  2. 用 idName 字符串取得對象的問題 
    問題: 
    在IE中,利用 eval(“idName”) 可以取得 id 為 idName 的HTML對象,在FF中不能 
    解決方法: 
    用 getElementById(“idName”) 代替 eval(“idName”)

  3. 變量名與某HTML對象 id 相同的問題 
    問題: 
    在FF中,因為對象 id 不作為HTML對象的名稱,所以可以使用與HTML對象 id 相同的變量名,IE中不能 
    解決方法: 
    在聲明變量時,一律加上 var ,以避免歧義,這樣在IE中亦可正常運行 
    最好不要取與HTML對象 id 相同的變量名,以減少錯誤

  4. event.x 與 event.y 問題 
    問題: 
    在IE中,event 對象有x,y屬性,FF中沒有 
    解決方法: 
    在FF中,與 event.x 等效的是 event.pageX ,但event.pageX IE中沒有 
    故采用 event.clientX 代替 event.x ,在IE中也有這個變量 
    event.clientX 與 event.pageX 有微妙的差別,就是滾動條 
    要完全一樣,可以這樣: 
    mX = event.x ? event.x : event.pageX; 
    然后用 mX 代替 event.x

  5. 關于frame 
    問題: 
    在IE中可以用 window.testFrame 取得該frame,FF中不行 
    解決方法:

window.top.document.getElementById("testFrame").src = 'xx.htm' window.top.frameName.location = 'xx.htm'
    
  • 1
  • 2
  1. 取得元素的屬性 
    在FF中,自己定義的屬性必須 getAttribute() 取得

  2. 在FF中沒有 parentElement,parement.children 而用 parentNode,parentNode.childNodes 
    問題: 
    childNodes 的下標的含義在IE和FF中不同,FF的 childNodes 中會插入空白文本節點 
    解決方法: 
    可以通過 node.getElementsByTagName() 來回避這個問題 
    問題: 
    當html中節點缺失時,IE和FF對 parentNode 的解釋不同,例如:

<form> <table> <input/> </table> </form>
    
  • 1
  • 2
  • 3
  • 4
  • 5

FF中 input.parentNode 的值為form,而IE中 input.parentNode 的值為空節點 
問題: 
FF中節點自己沒有 removeNode 方法 
解決方法: 
必須使用如下方法 node.parentNode.removeChild(node)

  1. const 問題 
    問題: 
    在IE中不能使用 const 關鍵字 
    解決方法: 
    以 var 代替

  2. body 對象 
    FF的 body 在 body 標簽沒有被瀏覽器完全讀入之前就存在,而IE則必須在 body 完全被讀入之后才存在 
    這會產生在IE下,文檔沒有載入完時,在body上appendChild會出現空白頁面的問題 
    解決方法: 
    一切在body上插入節點的動作,全部在onload后進行

  3. url encoding 
    問題: 
    一般FF無法識別js中的& 
    解決方法: 
    在js中如果書寫url就直接寫&不要寫&

  4. nodeName 和 tagName 問題 
    問題: 
    在FF中,所有節點均有 nodeName 值,但 textNode 沒有 tagName 值,在IE中,nodeName 的使用有問題 
    解決方法: 
    使用 tagName,但應檢測其是否為空

  5. 元素屬性 
    IE下 input.type 屬性為只讀,但是FF下可以修改

  6. document.getElementsByName() 和 document.all[name] 的問題 
    問題: 
    在IE中,getElementsByName()、document.all[name] 均不能用來取得 div 元素 
    是否還有其它不能取的元素還不知道(這個問題還有爭議,還在研究中)

  7. 調用子框架或者其它框架中的元素的問題 
    在IE中,可以用如下方法來取得子元素中的值

document.getElementById("frameName").(document.)elementName
window.frames["frameName"].elementName
    
  • 1
  • 2

在FF中則需要改成如下形式來執行,與IE兼容:

window.frames["frameName"].contentWindow.document.elementName window.frames["frameName"].document.elementName
    
  • 1
  • 2
  1. 對象寬高賦值問題 
    問題: 
    FireFox中類似 obj.style.height = imgObj.height 的語句無效 
    解決方法: 
    統一使用 obj.style.height = imgObj.height + “px”;

  2. innerText的問題 
    問題: 
    innerText 在IE中能正常工作,但是 innerText 在FireFox中卻不行 
    解決方法: 
    在非IE瀏覽器中使用textContent代替innerText

  3. event.srcElement和event.toElement問題 
    問題: 
    IE下,even對象有srcElement屬性,但是沒有target屬性;Firefox下,even對象有target屬性,但是沒有srcElement屬性 
    解決方法:

var source = e.target || e.srcElement; var target = e.relatedTarget || e.toElement;
    
  • 1
  • 2
  1. 禁止選取網頁內容 
    問題: 
    FF需要用CSS禁止,IE用JS禁止 
    解決方法:
IE: obj.onselectstart = function() {return false;}
FF: -moz-user-select:none;
    
  • 1
  • 2
  1. 捕獲事件 
    問題: 
    FF沒有setCapture()、releaseCapture()方法 
    解決方法:
IE: obj.setCapture(); obj.releaseCapture(); FF: window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP); window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP); if (!window.captureEvents) {
           o.setCapture(); }else {
           window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP); }
    if (!window.captureEvents) {
           o.releaseCapture(); }else {
           window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP); }
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

CSS部分

div類

  1. 居中問題 
    div里的內容,IE默認為居中,而FF默認為左對齊 
    可以嘗試增加代碼margin:auto

  2. 高度問題 
    兩上下排列或嵌套的div,上面的div設置高度(height),如果div里的實際內容大于所設高度,在FF中會出現兩個div重疊的現象;但在IE中,下面的div會自動給上面的div讓出空間 
    所以為避免出現層的重疊,高度一定要控制恰當,或者干脆不寫高度,讓他自動調節,比較好的方法是 height:100%; 
    但當這個div里面一級的元素都float了的時候,則需要在div塊的最后,閉和前加一個沉底的空div,對應CSS是:

.float_bottom { clear:both; font-size:0px; margin:0; line-height:0px; }
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. clear:both; 
    不想受到float浮動的,就在div中寫入clear:both;

  2. IE浮動 margin 產生的雙倍距離

#box { float:left; width:100px; margin:0 0 0 100px; //這種情況之下IE會產生200px的距離 display:inline; //使浮動忽略 }
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. padding 問題 
    FF設置 padding 后,div會增加 height 和 width,但IE不會 (* 標準的 XHTML1.0 定義 dtd 好像一致了) 
    高度控制恰當,或嘗試使用 height:100%; 
    寬度減少使用 padding 
    但根據實際經驗,一般FF和IE的 padding 不會有太大區別,div 的實際寬 = width + padding ,所以div寫全 width 和 padding,width 用實際想要的寬減去 padding 定義

  2. div嵌套時 y 軸上 padding 和 marign 的問題 
    FF里 y 軸上 子div 到 父div 的距離為 父padding + 子marign 
    IE里 y 軸上 子div 到 父div 的距離為 父padding 和 子marign 里大的一個 
    FF里 y 軸上 父padding=0 且 border=0 時,子div 到 父div 的距離為0,子marign 作用到 父div 外面

  3. padding,marign,height,width 的傻瓜式解決技巧 
    注意是技巧,不是方法: 
    寫好標準頭

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
    
  • 1
  • 2

高盡量用padding,慎用margin,height盡量補上100%,父級height有定值子級height不用100%,子級全為浮動時底部補個空clear:both的div 
寬盡量用margin,慎用padding,width算準實際要的減去padding

列表類

  1. ul 標簽在FF中默認是有 padding 值的,而在IE中只有margin有值 
    先定義 ul {margin:0;padding:0;}

  2. ul和ol列表縮進問題 
    消除ul、ol等列表的縮進時,樣式應寫成: {list-style:none;margin:0px;padding:0px;}

顯示類

  1. display:block,inline 兩個元素 
    display:block; //可以為內嵌元素模擬為塊元素 
    display:inline; //實現同一行排列的的效果 
    display:table; //for FF,模擬table的效果 
    display:block 塊元素,元素的特點是: 
    總是在新行上開始; 
    高度,行高以及頂和底邊距都可控制; 
    寬度缺省是它的容器的100%,除非設定一個寬度

IE: filter: progid: DXImageTransform.Microsoft.Alpha(style=0,opacity=60); IE: filter: alpha(opacity=10); FF: opacity:0.6; FF: -moz-opacity:0.10;
    
  • 1
  • 2
  • 3
  • 4

最好兩個都寫,并將opacity屬性放在下面


css和js的瀏覽器兼容問題匯總2009-05-31 13:48首先談一下瀏覽器,雖然現在ie依然是瀏覽器市場的老大,大約占有67%的份額,但是由于其各方面的欠缺,用戶開始選擇其他瀏覽器作為自己瀏覽網頁的主要 工具,比如firefox、theworld、maxthon、chrome、opera等等,在用戶使用比較多的瀏覽器中,分為2大派系 - ie內核和非ie內核,像theworld、maxthon、greenbrower等等都屬于ie內核,而firefox、chrome、opera則 為非ie內核,眾多的瀏覽器使我們的web程序就出現了兼容問題,像ie就有ie 6、ie7、ie8之分,同樣的樣式控制和js腳本,在不同的ie版本中也會出現不同的效果,甚至bug,何況在非ie內核的firefox、 chrome、opera了。從市場份額分析,目前ie依然是瀏覽器市場老大,并會在很長一段時間內很難改變,不過我們不能忽略firefox以及其他瀏 覽器的快速成長,未來我們沒有辦法估計,很多初級用戶還沒有看到其他非ie內核的優勢,當他們發現時,我們的在去滿足他們的需求是否已經晚了呢,所以我們 必須做到多瀏覽器的兼容?,F在市場上大多web開發著選擇兼容ie7和firefox作為主要兼容對象,這兩款也是目前用戶使用最多的,那好我們就主要講 兼容這兩款瀏覽器。

眾多的瀏覽器使我們就要面臨多種瀏覽器測試的尷尬,比如ie在一臺機器上只能安裝一個版本,我們要測試程序在ie 3個版本中的顯示效果,就要在安裝3個版本的機器上分別測試將是一件非常繁瑣的事情,這里推薦一款工具,ietester可以同時測試3個版本的ie程 序,非常不錯。至于其他瀏覽器在同一臺機器上安裝是沒有問題的,所以我們準備好了測試環境。

Firefox是一款有著豐富插件的瀏覽器,這里我推薦3款web開發人員必備的開發工具 - Firebug、web developer、ie tab。 
Firebug 是Firefox下的一款開發類插件,現屬于Firefox的五星級強力推薦插件之一。它集HTML查看和編輯、Javascript控制臺、網絡狀況監 視器于一體,是開發JavaScript、CSS、HTML和 Ajax的得力助手。Firebug如同一把精巧的瑞士軍刀,從各個不同的角度剖析Web頁面內部的細節層面,給Web開發者帶來很大的便利。 
Web Developer 插件以工具欄的形式對網頁的(X)HTML、腳本、多媒體、CSS、緩存、圖象等多方面的實用工具。使我們能輕易的獲得網頁的更多信息,使我們進一步的了解當前所瀏覽的網頁。 
ie tab是firefox下一款firefox和ie互相切換的插件,這樣開發人員可以很輕松的一鍵查看2中主流瀏覽器的兼容效果。 
以上3款工具具體使用方法到Google、baidu中搜索使用關鍵字即可。 
debugBar是在ie中類似firebug的工具,不過功能就差很遠了,不過這里也推薦一下。

Firefox瀏覽器良好支持W3C標準,是目前對CSS支持最好的瀏覽器,而ie是出現的比較早,在w3c支持方面做的一直不是很好,所以兩種瀏覽器在很多方面不盡相同。 
下面總結一下這兩種瀏覽器的兼容問題: 
1.集合類對象問題 
說明:IE下,可以使用()或[]獲取集合類對象; 
Firefox下,只能使用[]獲取集合類對象. 
解決方法:統一使用[]獲取集合類對象.

2.HTML對象獲取問題 
FireFox:document.getElementById(“idName”); 
ie:document.idname或者document.getElementById(“idName”). 
解決辦法:統一使用document.getElementById(“idName”);

3.const問題 
說明:Firefox下,可以使用const關鍵字或var關鍵字來定義常量; 
IE下,只能使用var關鍵字來定義常量. 
解決方法:統一使用var關鍵字來定義常量.

4.window.event問題 
說明:window.event只能在IE下運行,而不能在Firefox下運行,這是因為Firefox的event只能在事件發生的現場使用. Firefox必須從源處加入event作參數傳遞。Ie忽略該參數,用window.event來讀取該event。 
解決方法: 
IE&Firefox: 
Submitted(event)”/> …

function Submitted(evt) { evt=evt?evt:(window.event?window.event:null); }

5.event.x與event.y問題 
說明:IE下,even對象有x,y屬性,但是沒有pageX,pageY屬性; 
Firefox下,even對象有pageX,pageY屬性,但是沒有x,y屬性. 
解決方法:使用mX(mX = event.x ? event.x : event.pageX;)來代替IE下的event.x或者Firefox下的event.pageX.

6.event.srcElement問題 
說明:IE下,event對象有srcElement屬性,但是沒有target屬性; 
Firefox下,even對象有target屬性,但是沒有srcElement屬性. 
解 決方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)來代替IE下的event.srcElement或者Firefox下的event.target. 請同時注意event的兼容性問題。

7.window.location.href問題 
說明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href; 
Firefox1.5.x下,只能使用window.location. 
解決方法:使用window.location來代替window.location.href.

8.模態和非模態窗口問題 
說明:IE下,可以通過showModalDialog和showModelessDialog打開模態和非模態窗口;Firefox下則不能. 
解決方法:直接使用window.open(pageURL,name,parameters)方式打開新窗口。 
如果需要將子窗口中的參數傳遞回父窗口,可以在子窗口中使用window.opener來訪問父窗口. 
例如:var parWin = window.opener; parWin.document.getElementById(“Aqing”).value = “Aqing”;

9.frame問題 
以下面的frame為例: 

(1)訪問frame對象: 
IE:使用window.frameId或者window.frameName來訪問這個frame對象. frameId和frameName可以同名。 
Firefox:只能使用window.frameName來訪問這個frame對象. 
另外,在IE和Firefox中都可以使用window.document.getElementById(“frameId”)來訪問這個frame對象.

(2)切換frame內容: 
在 IE和Firefox中都可以使用window.document.getElementById(“testFrame”).src = “xxx.html”或window.frameName.location = “xxx.html”來切換frame的內容. 
如果需要將frame中的參數傳回父窗口(注意不是opener,而是parent frame),可以在frame中使用parent來訪問父窗口。例如:parent.document.form1.filename.value=”Aqing”;

10.body問題 
Firefox的body在body標簽沒有被瀏覽器完全讀入之前就存在;而IE的body則必須在body標簽被瀏覽器完全讀入之后才存在.

  1. 事件委托方法 
    IE:document.body.onload = inject; //Function inject()在這之前已被實現 
    Firefox:document.body.onload = inject();

  2. firefox與IE的父元素(parentElement)的區別 
    IE:obj.parentElement 
    firefox:obj.parentNode 
    解決方法: 因為firefox與IE都支持DOM,因此使用obj.parentNode是不錯選擇.

13.cursor:hand VS cursor:pointer 
firefox不支持hand,但ie支持pointer 
解決方法: 統一使用pointer

14.innerText在IE中能正常工作,但是innerText在FireFox中卻不行. 需用textContent。 
解決方法: 
if(navigator.appName.indexOf(“Explorer”) > -1){ 
document.getElementById(‘element’).innerText = “my text”; 
} else{ 
document.getElementById(‘element’).textContent = “my text”; 
}

  1. FireFox中設置HTML標簽的style時,所有位置性和字體尺寸的值必須后跟px。這個ie也是支持的。

  2. ie,firefox以及其它瀏覽器對于 table 標簽的操作都各不相同, 
    在ie中不允許對table和tr的innerHTML賦值,使用js增加一個tr時,使用appendChild方法也不管用。 
    解決方法:

//向table追加一個空行:
var   row   =   otable.insertRow(-1); var   cell   =   document.createElement("td"); cell.innerHTML = "   ";  cell.className = "XXXX";  row.appendChild(cell);
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. padding 問題 
    padding 5px 4px 3px 1px FireFox無法解釋簡寫, 
    必須改成 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;

  2. 消除ul、ol等列表的縮進時 
    樣式應寫成:list-style:none;margin:0px;padding:0px; 
    其中margin屬性對IE有效,padding屬性對FireFox有效

  3. CSS透明 
    IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。 
    FF:opacity:0.6。

  4. CSS圓角 
    IE:不支持圓角。

FF: -moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。
    
  • 1
  1. CSS雙線凹凸邊框
IE:border:2px   outset;。 
FF: -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;
    
  • 1
  • 2
  1. 對select的options集合操作 
    枚 舉元素除了[]外,SelectName.options.item()也是可以的, 另外SelectName.options.length, SelectName.options.add/remove都可以在兩種瀏覽器上使用。注意在add后賦值元素,否則會失敗。

  2. XMLHTTP的區別

//mf if (window.XMLHttpRequest)  //mf {
    xmlhttp=new XMLHttpRequest()
    xmlhttp.onreadystatechange=xmlhttpChange
    xmlhttp.open("GET",url,true)
    xmlhttp.send(null)
    } //ie else if (window.ActiveXObject)  //   code   for   IE {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") if (xmlhttp)
        {
        xmlhttp.onreadystatechange=xmlhttpChange
        xmlhttp.open("GET",url,true)
        xmlhttp.send()
        }
    }
} 
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

24.css中的width和padding 
在IE7和FF中width寬度不包括padding,在Ie6中包括padding.

25.css hack 
根據不同瀏覽器對CSS樣式的支持程度,解析結果和識別CSS的優先級不同,設計師們就可以根據這些不同瀏覽器 的特點來書寫不同的CSS樣式代碼。IE6能識別下劃線和星號*,IE7能識別星號*,不能識別下劃線,而firefox兩個都不能識別,如此,就可 以針對IE6.IE7和FF通過對這些特殊符號的使用寫不同的代碼了。

<style> div{ background:green; /* for FireFox */ *background:red; /* for IE7 */ _background:blue; /* for IE6 */ } </style>
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

該樣式顯示的效果是:在FireFox中背景色為green;在IE7中背景色為red;在IE6中背景色為blue。

此外,!important聲明也可以很好地提升指定樣式規則的應用優先權。在IE6和FF中用!important聲明可以提高優先級別,但在 IE6中 的!important聲明會被之后的同名屬性定義替換。所以,通過*和!important聲明兩者的搭配也可以很好地解決IE6,IE7和FF三者之 間的兼容性問題。

區別FF,IE7,IE6:background:red; *background:green !important; *background:blue;

注:IE都能識別;FF不能識別;IE6能識別,但不能識別 !important;IE7能識別,也能識別!important;FF不能識別*,但能識別!important;

針對IE7/firefox 在css的前面加 [xmlns], 如下面的left屬性,如果我想要只針對IE7/firefox起作用,寫法如下: 
[xmlns] #left { 
float:left; 
border:4px solid #999; 
padding:5px; 
width:200px; 
height:200px; 

只針對IE6起作用,可以在css前面加* html,如: 
* html #left { 
clear:both; 
}

只針對IE7起作用,在css里前面加*+html,如: 
*+html #left { 
clear:both; 
}

書寫的順序都是FireFox的寫在前面,IE7的寫在中間,IE6的寫在最后面。

26.使用IE專用的條件注釋

<!--其他瀏覽器 --> <link rel="stylesheet" type="text/css" href="css.css" /> <!--[if IE 7]> 
<!-- 適合于IE7 --> <link rel="stylesheet" type="text/css" href="ie7.css" /> <![endif]--> <!--[if lte IE 6]> 
<!-- 適合于IE6及一下 --> <link rel="stylesheet" type="text/css" href="ie.css" /> <![endif]-->
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

27.div 的垂直居中問題: vertical-align:middle; 將行距增加到和整個DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點是要控制內容不要換行

28.cursor: pointer 可以同時在 IE FF 中顯示游標手指狀, hand 僅 IE 可以

29.FF: 鏈接加邊框和背景色,需設置 display: block, 同時設置 float: left 保證不換行。參照 menubar, 給 a 和 menubar 設置高度是為了避免底邊顯示錯位, 若不設 height, 可以在 menubar 中插入一個空格。

30.在mozilla firefox和IE中的BOX模型解釋不一致導致相差2px解決方法:div{margin:30px!important;margin:28px;} 
注意這兩個margin的順序一定不能寫反,據阿捷的說法!important這個屬性IE不能識別,但別的瀏覽器可以識別。所以在IE下其實解釋成這樣:div{maring:30px;margin:28px} 
重復定義的話按照最后一個來執行,所以不可以只寫margin:XXpx!important;

31.IE5 和IE6的BOX解釋不一致 
IE5下div{width:300px;margin:0 10px 0 10px;} 
div 的寬度會被解釋為300px-10px(右填充)-10px(左填充)最終div的寬度為280px,而在IE6和其他瀏覽器上寬度則是以 300px+10px(右填充)+10px(左填充)=320px來計算的。這時我們可以做如下修改 div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


簡述:騰訊移動端頁面設計規范 對你有啟發嗎?

藍藍設計的小編

小編今天分享一下騰訊移動端頁面設計規范,看看會對你有什么啟發?

網站內部結構優化_如何優化網站的內部結構

seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

如何優化網站的內部結構?網站內部結構優化是網站SEO過程中不可缺少的環節,在網站建設的初期就要做好設置工作。網站內部結構的優化主要包括:網站結構、頁面元素、后期優化等,下面就從這幾個方面為大家講解,希望能給一些不了解的朋友提供實質性的指導作用。

      1、結構目錄

目錄的設計是網站建設中很關鍵的環節,是一個網站的骨架,所以網站目錄直接關系到用戶的體驗。建議:目錄的組織結構從首頁到內容頁點擊不超過三次,也就是三級:首頁-欄目頁-內容頁。目錄名可采用網站的一些核心產品詞。

2、鏈接

我們說一個網站的優化最重要的兩點是什么?對,是鏈接和關鍵詞。如果說目錄是一個網站的骨架,那么鏈接就是網站的血液。建議:網站鏈接的設置以英文形式展現,簡短易懂,使用靜態化URL,迎合搜索引擎的喜好,更好的服務于網站優化。

3、robots協議

robots.txt相當于網站的一張臉,一張接客的臉,接的搜索引擎的蜘蛛(或機器人、爬蟲)。它是一種抓取協議文件,用于告訴搜索引擎spider,此網站中的哪些內容是不應被搜索引擎的索引,哪些是可以被索引的。

現在很多地方都有自動生成工具,百度站長工具,或者一些插件等,根據自己的喜好選擇使用。這里有一個小技巧,將網站的地圖鏈接放置在robots內,對網站的收錄絕對是不小的幫助。具體方法:在最后一行增加 Sitemap:http://www.example.com/sitemap.xml。

4、Sitemaps

Sitemaps就是一個管家,總結統計網站的數據鏈接,將匯總的結果更好的展現給網站的客人-搜索引擎spider。

Sitemaps一般有html與XML兩種格式。目前百度、Google、雅虎、微軟等搜索引擎都支持Sitemaps,Sitemaps的提交可以通過各個搜索引擎的站長平臺提交,也可以將其地址放在robots.txt文件里,上面已經說過了。

5、404頁面

  404頁面是客戶端在瀏覽網頁時,服務器無法正常提供信息,或是服務器無法回應,且不知道原因所返回的頁面。據說在第三次科技革命之前,互聯網的形態就是一個大型的中央數據庫,這個數據庫就設置在404房間里面。那時候所有的請求都是由人工手動完成的,如果在數據庫中沒有找到請求者所需要的文件,或者由于請求者寫錯了文件編號,用戶就會得到一個返回信息:room 404 : file not found。404錯誤信息通常是在目標頁面被更改或移除,或客戶端輸入頁面地址錯誤后顯示的頁面,人們也就習慣了用404作為服務器未找到文件的錯誤代碼了。當然實際考證傳說中的room 404是不存在的,在http請求3位的返回碼中,4開頭的代表客戶錯誤,5開頭代表服務器端錯誤。

6、nofollow標簽

nofollow標簽是盡量減少垃圾鏈接對搜索引擎的影響,當超鏈接中出現nofollow標簽后,搜索引擎會不考慮這些鏈接的權重,也不用使用這些鏈接用于排名。

nofollow標簽通常有兩種使用方法:一種方法是將"nofollow"寫在網頁上的meta標簽上,例如:。另一種方法是將"nofollow"放在超鏈接中,例如: 。

需要注意的是,如果一個網站鏈向了某些被搜索引擎認為是垃圾網站的地址,那么這個網站的權重也會受到影響。因此對于一個網站來說,nofollow標簽的使用十分必要。

7、統計代碼

網站統計分析工具應該是每一位站長都了解的,現在常用的就是百度統計、cnzz、谷歌分析、51等,具體的就不做介紹了。網站統計代碼添加時,為了不 影響網站的加載速度,最好放在網站底部。

      相關拓展:關鍵詞的爬行和抓取

       搜索引擎派出一個能夠在網上發現新網頁并抓文件的程序,這個程序通常稱之為蜘蛛。搜索引擎從已知的數據庫出發,就像正常用戶的瀏覽器一樣訪問這些網頁并抓取文件。搜索引擎會跟蹤網頁中的鏈接,訪問更多的網頁,這個過程就叫爬行。這些新的網址會被存入數據庫等待抓取。所以跟蹤網頁鏈接是搜索引擎蜘蛛發現新網址的最基本的方法,所以反向鏈接成為搜索引擎優化的最基本因素之一。沒有反向鏈接,搜索引擎連頁面都發現不了,就更談不上排名了。

       搜索引擎抓取的頁面文件與用戶瀏覽器得到的完全一樣,抓取的文件存入數據庫。

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

如何搞定響應式網頁的布局設計?

seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

編者按:作為今年大熱的設計趨勢,響應式已然是設計師的標配技能。今天阿里的同學從響應式設計的布局類型、布局實現兩方面深入講解,有哪些實現布局的方式,該采用何種方式,都有相當專業細致的解答,不多說,來收 >>>

Heyuchan :在談響應式布局前,我們先梳理下網頁設計中整體頁面排版布局,常見的主要有如下幾種類型:

布局類型


640?wx_fmt=png&wxfrom=5&wx_lazy=1

布局實現


采用何種方式實現布局設計,也有不同的方式,這里基于頁面的實現單位而言,分為四種類型:固定布局、可切換的固定布局、彈性布局、混合布局。

?固定布局:以像素作為頁面的基本單位,不管設備屏幕及瀏覽器寬度,只設計一套尺寸;


?可切換的固定布局:同樣以像素作為頁面單位,參考主流設備尺寸,設計幾套不同寬度的布局。通過設別的屏幕尺寸或瀏覽器寬度,選擇最合適的那套寬度布局;


?彈性布局:以百分比作為頁面的基本單位,可以適應一定范圍內所有尺寸的設備屏幕及瀏覽器寬度,并能完美利用有效空間展現最佳效果;


?混合布局:同彈性布局類似,可以適應一定范圍內所有尺寸的設備屏幕及瀏覽器寬度,并能完美利用有效空間展現最佳效果;只是混合像素、和百分比兩種單位作為頁面單位。


640?wx_fmt=png

可切換的固定布局、彈性布局、混合布局都是目前可被采用的響應式布局方式。

其中可切換的固定布局的實現成本,但拓展性比較差;而彈性布局與混合布局效果具響應性,都是比較理想的響應式布局實現方式。

只是對于不同類型的頁面排版布局實現響應式設計,需要采用不用的實現方式。通欄、等分結構的適合采用彈性布局方式、而對于非等分的多欄結構往往需要采用混合布局的實現方式。

640?wx_fmt=png

布局響應 對頁面進行響應式的設計實現,需要對相同內容進行不同寬度的布局設計,有兩種方式:

桌面優先(從桌面端開始向下設計);

移動優先(從移動端向上設計);

 無論基于那種模式的設計,要兼容所有設備,布局響應時不可避免地需要對模塊布局做一些變化(發生布局改變的臨界點稱之為斷點), 我們通過JS獲取設備的屏幕寬度,來改變網頁的布局,這一過程我們可以稱之為布局響應屏幕。

常見的主要有如下幾種方式:

布局不變,即頁面中整體模塊布局不發生變化,主要有:

?模塊中內容:擠壓-拉伸;

?模塊中內容:換行-平鋪;

?模塊中內容:刪減-增加;

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

布局改變,即頁面中的整體模塊布局發生變化,主要有:

?模塊位置變換;

?模塊展示方式改變:隱藏-展開;

?模塊數量改變:刪減-增加;

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

很多時候,單一方式的布局響應無法滿足理想效果,需要結合多種組合方式,但原則上盡可能時保持簡單輕巧,而且同一斷點內(發生布局改變的臨界點稱之為斷點)保持統一邏輯。

否則頁面實現得太過復雜,也會影響整體體驗和頁面性能。

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

LOGO UI設計7大要點

藍藍設計的小編

大部分視覺設計師在工作中都會遇到logo UI設計,每個UI設計師都有自己獨特的思路和方法。在設計過程中有理性的方法也有感性的發揮,我接下來講的理性的部分比較多,因為感性的東西跟個人平時的積累、經驗、生活閱歷等等相關。不是什么大神,寫的都是自己慢慢沉淀下來的方式方法。Logo的意義和重要性,在這不再贅述,我主要講logo設計的每個階段個人覺得比較重要的幾點。

國外非常高端的UI界面設計,UI設計小白須學

藍藍設計的小編

國外非常高端的UI界面設計,UI設計小白須學

ES6(一):Promise對象

seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

介紹Promise

promise的概念和實現最初來源于社區,用于解決異步編程的回調嵌套問題,即將多級的嵌套改良成順序的代碼行。ES6將其寫入了語言標準,統一了用法,提供了原生的Promise。

Promise是一個構造函數,用于生成一個Promise實例。Promise實例代表一次異步操作。 它只可能有3種轉態,分別是Pending(未決議)Resolved(完成) 和 Rejected(出錯) 。

創建一個Promise實例時,其處于Pending狀態,當異步操作完成,執行回調函數的時候,根據回調函數中的err的值,如果err 為空則異步操作成功,否則異步操作失敗。此后,Promise實例的狀態將不再改變。

Promise實例

var pro = function () { return new Promise(function(resolve, reject) { fs.readdir(_dirname, function(err, data) { if (err) {
                reject(err); //失敗則將Promise對象置為rejected狀態 } else {
                resolve(data); //成功則將Promise對象置為resolved轉態 }
        });
    });
} /*pro是一個函數
 調用該函數返回一個Promise實例
*/ var promiseObject = pro(); /*then方法執行Resolved和Rejected狀態的回調函數*/ promiseObject
.then(doneCallbacks, failCallbacks)
.catch(function(err) { console.log(err);
}); var doneCallbacks = function(data) { console.log(data);
}; var failCallbacks = function(err) { console.log(err)
};
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

catch是then的一個語法糖,相當于

promiseObject.then(undefined, function(err) {
    console.log(err)
});
    
  • 1
  • 2
  • 3

Promise對象的錯誤具有向后傳遞的性質,因此,如果在調用過程拋出異常,則異??偰鼙蛔詈笠粋€catch捕獲。這也是為什么我們習慣在then的調用后跟隨一個catch調用。

then的鏈式寫法

then 方法是定義在構造函數Promise 的原型對象上的。這個方法為Promise實例添加狀態改變時的回調函數。then方法返回一個新的Promise實例,因此then方法后面可以調用then()方法。傳給then()方法的函數,可返回三類值,分別如下:

  • 一個Promise實例
  • 一個普通值
  • 拋出一個異常

如果返回的是一個新的Promise對象,則下一級的then接收函數在這個Promise實例 狀態發生改變時被觸發執行。因此,then的鏈式寫法,可以按順序執行一系列的異步操作,并且后一個異步操作在前一個完成之后開始。如下代碼實例所示:

var fs = require('fs'); var pro = function () { return new Promise(function(resolve, reject) { fs.readdir(_dirname, function(err, data) { if (err) {
                reject(err); //失敗則將Promise對象置為rejected狀態 } else {
                resolve(data); //成功則將Promise對象置為resolved轉態 }
        });
    });
} var newPro = function(data) { return new Promise(function(resolve, reject) { setTimeout(function(){ resolve(data);
        },2000);
    });
}; /*pro是一個函數
 調用該函數返回一個Promise實例
*/ var promiseObject = pro(); /*then方法執行Resolved和Rejected狀態的回調函數*/ promiseObject
    .then(function(data){ console.log("fisrt sync op");
        console.log(data); return newPro(data);//返回一個新的Promise對象 })
    .then(function(data) { console.log("second sync op");
        console.log(data);//兩秒鐘后才會被執行 })
    .catch(function(err) { console.log(err);
    });

promiseObject.then(undefined, function(err) { console.log(err)
}); var doneCallbacks = function(data) { console.log(data);
}; var failCallbacks = function(err) { console.log(err)
}; 
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

把上一級異步調用的結果返回給下一級調用,then這樣的鏈式寫法,解決了回調函數的多層嵌套調用。

解決異步嵌套回調的更多方案

“回調金字塔”

多層嵌套

bluebird庫 + Generator

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


UI設計的工作范疇有哪些?UI設計是做什么的?

藍藍設計的小編

當我還是一枚單純的p圖師的時候,誰要是叫我美工,我是拒絕的!我跟他們講,我是設計師,是能duang的一下就加的設計師。突然有一天,有人問起我什么是UI,作為一枚經歷了歲月沉淪能寫點代碼能P圖的大美工(此刻我已經不拒絕美工的稱呼了,因為要做到好看真的不那么簡單)我告訴他,我就是,然而他不信,他覺得UI設計師該是高大上的,是美工需要仰視的!

Android沉浸式狀態欄

seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

隨著越來越的的app使用沉浸式狀態欄,有必要對沉浸式狀態欄學習一下,查看了很多資料,沉浸式狀態欄重要的無法三點:1.實現全屏 (Android4.4跟5.0全屏處理方式有別需分開處理 )2.設置全屏之后為了保證自己寫的布局不與狀態欄重疊,需要在跟xml的跟布局設置android:fitsSystemWindows=”true” 。基于這幾點處理方式可能很多,但是為了便于項目中工具類封裝,本編實現方式均已代碼方式呈現,xml設置方式可以自行查閱相關資料 3.改變狀態欄顏色

—1.全屏設置 
對于4.4以上系統,因4.4以上系統是可以設置全屏,代碼如下:

window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
  • 1
  • 2

對于5.0系統 具體代碼

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
  • 1
  • 2
  • 3
  • 4
  • 5

僅僅做全屏處理,我們會發現不管是在4.4系統上還是在5.0系統上,我們的布局內容會與狀態欄內容出現重疊。

下圖為4.4系統 
這里寫圖片描述

下圖為8.0系統 
這里寫圖片描述

為了解決全屏設置重疊狀態欄,我們需要在全屏之上預留狀態欄的高度以便正常顯示狀態欄,而處理方式也很簡單 activity layout根目錄添加下面代碼 
android:fitsSystemWindows=”true” 而此處我建議用代碼設置,因為通常我們項目中會提取BaseActivity基類抽出一些共性,這種方式比在每個xml中設置屬性更方便 
rootView.setFitsSystemWindows(true) 此處的rootView指的就是activity對應的跟布局; 
進行以上處理之后我們會發現現在狀態欄跟我們的布局內容不再重疊了,接下來我們就只需要處理狀態欄的顏色問題了。具體代碼如下

ViewGroup content= (ViewGroup) findViewById(android.R.id.content); ViewGroup childView= (ViewGroup) content.getChildAt(0); if(childView!=null){
                childView.setFitsSystemWindows(true); } 
  • 1
  • 2
  • 3
  • 4
  • 5

對于4.4系統因為沒有改變狀態欄顏色的api,我們可以通過添加一個與狀態欄等高的View到根布局的父容器中,而根布局的父容器就是一個ID為android.R.id.content的幀布局被裝飾的容器中,這樣只需要設置View的顏色即可。對于5.0及以上系統,因已提供設置狀態欄和導航欄顏色的api,直接設置即可; 
對于4.4以上5.0一下系統

View view=new View(this); view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,getStatusHeight())); view.setBackgroundColor(Color.RED); content.addView(view); 
  • 1
  • 2
  • 3
  • 4

對于5.0及以上系統

window.setStatusBarColor(Color.RED); 
  • 1

獲取狀態欄高度

 private int getStatusHeight() { int statusHeight=-1; int resourceId=getResources().getIdentifier("status_bar_height","dimen","android"); if(resourceId>0){ return getResources().getDimensionPixelSize(resourceId);
        } return 0;
    } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

以上就是實現沉浸式狀態欄的具體過程。整體代碼如下:

package com.example.administrator.myjavadeamo.activity; import android.graphics.Color; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import com.example.administrator.myjavadeamo.R; public class StatusBarActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_NO_TITLE);//隱藏標題欄 setContentView(R.layout.activity_status_bar); initWindow(); }

    private void initWindow() {
        Window window=getWindow(); if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
            //5.0以上的手機
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); ViewGroup content= (ViewGroup) findViewById(android.R.id.content); ViewGroup childView= (ViewGroup) content.getChildAt(0); if(childView!=null){
                childView.setFitsSystemWindows(true); }
            window.setStatusBarColor(Color.GREEN); }else if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT){
            //4.4以上5.0一下的手機
            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); ViewGroup content= (ViewGroup) findViewById(android.R.id.content); ViewGroup childView= (ViewGroup) content.getChildAt(0); if(childView!=null){
                childView.setFitsSystemWindows(true); }

            View view=new View(this); view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,getStatusHeight())); view.setBackgroundColor(Color.GREEN); content.addView(view); }
    } /**
     * 獲取狀態欄高度
     * @return
     */ private int getStatusHeight() {
        int statusHeight=-1; int resourceId=getResources().getIdentifier("status_bar_height","dimen","android"); if(resourceId>0){
           return getResources().getDimensionPixelSize(resourceId); }
        return 0; }
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

最終實現結果:

4.4系統 
4.4以上5.0一下系統 
8.0系統

5.0以上系統

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

日歷

鏈接

個人資料

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

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
情事1991在线| 性欧美长视频免费观看不卡| 日本高清视频一区| 亚洲欧洲国产精品| 日韩精品在线视频观看| 久久精品影视伊人网| 亚洲天堂av电影| 91在线观看免费观看| 久久97精品久久久久久久不卡| 欧美激情第三页| 久久久人成影片一区二区三区观看| 欧美激情综合色| 日韩一区二区三区在线播放| 久久久久一本一区二区青青蜜月| 久久久免费观看视频| 亚洲天堂av在线免费| 欧美精品www| 欧美精品www在线观看| 日韩在线激情视频| 日韩专区在线播放| 亚洲网站视频福利| 久久久久久久成人| 国产精品自拍偷拍视频| 成人a免费视频| 91免费精品国偷自产在线| 欧洲精品久久久| 欧美极品少妇xxxxⅹ裸体艺术| 欧美理论电影在线观看| 国产日韩欧美视频| 奇米4444一区二区三区| 精品视频久久久久久| 欧美日韩国产一区二区| 国产精品视频在线观看| 国产精品久久久久久av下载红粉| 亚洲精品福利资源站| 国产日本欧美一区二区三区| 国产精品视频精品| 欧美激情乱人伦| 欧美特级www| 亚洲电影免费观看高清完整版在线观看| 欧洲成人午夜免费大片| 欧美大荫蒂xxx| 亚洲一区二区三区乱码aⅴ| 日韩在线观看高清| 精品高清美女精品国产区| 国产精品99久久久久久人| 亚洲男人av电影| 亚洲男人天堂视频| 精品久久久久久久久久久久| 国产亚洲激情视频在线| 中文字幕久热精品视频在线| 日韩av影院在线观看| 国产精品狠色婷| 亚洲a区在线视频| 欧美性猛交xxxx乱大交极品| 亚洲国内高清视频| 久久久久国产精品一区| 日本精品久久久久影院| 亚洲最大的av网站| 精品中文字幕乱| 96精品视频在线| 久久久久久久影视| 懂色av影视一区二区三区| 日韩性生活视频| 亚洲欧美一区二区激情| 国产精品久久999| 粉嫩av一区二区三区免费野| 国产97色在线| 国产欧美一区二区三区四区| 在线精品国产成人综合| 亚洲xxxx妇黄裸体| 欧美精品videossex性护士| 色噜噜亚洲精品中文字幕| 97色在线播放视频| 国模私拍一区二区三区| www.日本久久久久com.| 一道本无吗dⅴd在线播放一区| 狠狠久久五月精品中文字幕| 亚洲国产精品一区二区三区| 国产成人亚洲综合91精品| 国产亚洲精品美女久久久| 亚洲有声小说3d| 丝袜美腿精品国产二区| 久久男人av资源网站| 亚洲精品欧美日韩| 91精品国产91久久久久| 欧美精品久久久久久久久| 92福利视频午夜1000合集在线观看| 日韩经典第一页| 黑人精品xxx一区| 欧美黑人又粗大| 亚洲裸体xxxx| 亚洲成人黄色网| 日韩高清欧美高清| 97成人精品区在线播放| 欧美主播福利视频| 中文字幕av一区中文字幕天堂| 欧美日韩亚洲91| 国产丝袜精品视频| 亚洲视频视频在线| 国产精品99久久久久久久久久久久| 美女久久久久久久久久久| 国产精品一区二区久久精品| 在线视频欧美日韩精品| 久久综合免费视频影院| 日韩免费av在线| 亚洲男人天堂视频| 日韩免费在线视频| 亚洲人成伊人成综合网久久久| 亚洲成人精品久久| 永久免费毛片在线播放不卡| 国产亚洲精品美女久久久| 日韩欧美在线国产| 一区二区三区美女xx视频| 国产视频精品一区二区三区| 成人网中文字幕| 日本亚洲欧美成人| 国产精品电影一区| 亚洲最大的网站| 亚洲男女自偷自拍图片另类| 久久人人爽人人爽人人片亚洲| 精品国产区一区二区三区在线观看| 亚洲精品美女在线| 亚洲午夜激情免费视频| 日韩av网址在线| 欧美激情第三页| 精品国产一区二区三区四区在线观看| 久久久爽爽爽美女图片| 午夜精品福利在线观看| 久青草国产97香蕉在线视频| 91探花福利精品国产自产在线| 欧美日韩国产精品专区| 亚洲精品色婷婷福利天堂| 久久影院资源站| 国产精品一区二区电影| 欧美成年人视频网站欧美| 欧美一乱一性一交一视频| 国产做受高潮69| 亚洲精品久久久一区二区三区| 国产狼人综合免费视频| 91欧美激情另类亚洲| 国产精品高清网站| 精品亚洲男同gayvideo网站| 成人网中文字幕| 亚洲精品视频播放| 精品动漫一区二区| 日韩电影中文字幕在线| 亚洲精品自拍视频| 成人中文字幕+乱码+中文字幕| 国内精品久久久久久| 亚洲综合小说区| 久久久国产视频91| 91日韩在线播放| 久久av红桃一区二区小说| 国产日韩av在线播放| 久久国产精品久久国产精品| 日本久久亚洲电影| 狠狠久久亚洲欧美专区| 国产欧美在线播放| 国产成人久久久精品一区| 国产亚洲精品综合一区91| 精品香蕉在线观看视频一| 国产精品老牛影院在线观看| 91久久久久久久久久久久久|