a.雙倍邊距bug:css
例如:當給父元素內第一個浮動元素設置margin-left或margin-right的時候,margin屬性會加倍,此時須要添加屬性display:inline.
這樣能避免雙倍邊距html
b當浮動元素與非浮動元素相鄰時,這個3像素的Bug就會出現,它會偏移3像素。個人解決辦法是給非浮動元素加上浮動就能夠了前端
c.當子元素浮動未知高度時,使父容器適應子元素的高度bug
overflow:auto;——-讓父容器自適應子元素的高度web
在IE6會自動擴展父層元素的高度,而IE8和FF等瀏覽器加上overflow:auto後,便可清除浮動。編程
全部瀏覽器通用:height: 100px;
IE6 認:_height: 100px;
IE6 ,IE7 都認:*height: 100px;
IE7:*+height: 100px;
瀏覽器
例如border(邊框)、margin(邊距)、padding(補白)和背景
app
HTML結構是頁面的骨架, 一個頁面就好像一幢房子, HTML結構就是鋼筋混泥土的牆,一幢房子若是沒有鋼筋混泥土的牆那就是一堆費磚頭, 不能住人,不能辦公。css是裝飾材料, css若是沒有html結構那就是一堆木板,一同油漆,沒有了實際使用價值。當咱們提到「語義標記」的時候,咱們所說的HTML應該是徹底脫離表現信息的,其中的標籤應該都是語義化地定義了文檔的結構。
意義:框架
SEO就是搜索引擎的優化ide
一、瞭解搜索引擎如何抓取網頁和如何索引網頁
你須要知道一些搜索引擎的基本工做原理,各個搜索引擎之間的區別函數
二、Meta標籤優化
主要包括主題(Title),網站描述(Description),和關鍵詞(Keywords)。還有一些其它的隱藏文字好比Author(做者),Category(目錄),Language(編碼語種)等。
三、如何選取關鍵詞並在網頁中放置關鍵詞
搜索就得用關鍵詞。關鍵詞分析和選擇是SEO最重要的工做之一。首先要給網站肯定主關鍵詞(通常在5個上下),而後針對這些關鍵詞進行優化,包括關鍵詞密度(Density),相關度(Relavancy),突出性(Prominency)等等。
四、瞭解主要的搜索引擎
雖然搜索引擎有不少,可是對網站流量起決定做用的就那麼幾個。好比英文的主要有Google,Yahoo,Bing等;中文的有百度,搜狗,有道等。 不一樣的搜索引擎對頁面的抓取和索引、排序的規則都不同。還要了解各搜索門戶和搜索引擎之間的關係,好比AOL網頁搜索用的是Google的搜索技 術,MSN用的是Bing的技術。
五、主要的互聯網目錄
六、你得學會用最少的廣告投入得到最多的點擊。
七、搜索引擎提交
八、連接交換和連接普遍度(Link Popularity)
跟獲取你的訪問量有很大的關係
九、標籤的合理使用
好比儘可能少用iframe,搜索引擎不會抓取到iframe裏的內容,重要內容不要放在框架中。
不可以使用display:none;的方法讓文字隱藏,由於搜索引擎會過濾掉display:none;裏邊的內容,就不會被蜘蛛檢索了。能夠設置text-indent爲負數,偏離瀏覽器以外,而後再利用overflow:hidden屬性進行隱藏
a.行內樣式
缺點:通用性差,效果特殊,優勢:使用在CSS命令較少,而且不常改動的地方,使用這種方法反而是很好的選擇。
b.內嵌樣式:css寫在head標籤裏面
優勢:直接在HTML文檔中,運用這樣式比較快。缺點:代碼臃腫,不利於維護
c.連接樣式:引入外部的css文件
比較易於維護和美觀的一種方式
d.導入樣式
優勢:一次性導入多個css文件。用於css文件數量龐大的系統中
CSS Sprite其實就是把網頁中一些背景圖片整合到一張圖片文件中,再利用CSS的「background-image」,「background- repeat」,「background-position」的組合進行定位
CSS Sprites能減小圖片的字節,加快網頁的加載速度。缺點是開發和維護都是比較麻煩的。
border:30px;-webkit-border-radius:40px;
`<P>` 哥寫的不是HTML,是寂寞。<br><br> 我說:<br>不要迷戀哥,哥只是一個傳說
缺乏p
標記的結束標記。
在標準模式中,瀏覽器根據規範呈現頁面。在混雜模式中,頁面以一種比較寬鬆的向後兼容的方式顯示。
觸發混亂模式:
IE6的觸發:
DOCTYPE前加入XML聲明<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
IE7的觸發:
在XML聲明和DOCTYPE之間加入HTML註釋<?xml version="1.0" encoding="utf-8"?><!– … and keep IE7 in quirks mode –><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
IE6和IE7均可以觸發:
在HTML4.01的DOCTYPE文檔頭部加入HTML註釋<!– quirks mode –><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
各個瀏覽器的混雜模式,基本就是各個瀏覽器的私有模式,不相互兼容。因此,除非是爲了兼容的問題,才採用混雜模式
行內元素有:a b span I img input select strong
(input用於定義表單中的各個具體的表單元素)
塊級元素有:div ul ol li dl dt dd
盒模型:margin border padding content
網頁分紅三個層次,即:結構層、表示層、行爲層。
網頁的結構層:由HTML 或XHTML 之類的標記語言負責建立,即HTML的語義化。,說白了就是一些標籤
網頁的表示層:說白了就是CSS
網頁的行爲層:說白了就是Javascript 語言和DOM 主宰的領域。
IE9以上開始支持
HTML5標籤的改變:<header>,<footer>, <dialog>, <aside>, <figure>, <section>
等
CSS3實現圓角,陰影(text-shadow)對文字加特效(text-overflow,word-wrap,font-size-adjust),增長了更多的CSS選擇器(全局選擇器,組合選擇器,繼承選擇器,僞類選擇器等)
(1)建立新節點
createDocumentFragment() //建立一個DOM片斷 createElement_x() //建立一個具體的元素 createTextNode() //建立一個文本節點
(2)添加、移除、替換、插入
appendChild() removeChild() replaceChild() insertBefore()
(3)查找
getElementsByTagName() //經過標籤名稱 getElementsByName() //經過元素的Name屬性的值 getElementById() //經過元素Id,惟一性
function A(name,age){ this.name=name?name:'小剛'; this.age=age?age:30; this.say=function(){ alert(this.name+"今年"+this.age+"歲了"); } } function B(){} B.prototype=new A(); var C= new B(); C.say();
function parseQueryString(url) { var pos; var obj = {}; if (pos = url.indexOf("?") != -1) { var urlstring = url.substring(pos + 1, url.lenght – 1); var urlArr = urlstring.split("&"); var keyValue = []; for (var i = 0; i < urlArr.lenght; i++) { keyValue = urlArr[i].split("="); obj[keyValue[0]] = keyValue[1]; } } return obj; } var objUrl = parseQueryString(url);
在工做中會常常遇到一些瀏覽器的兼容性問題,考慮的主要有2塊方面的兼容性問題,一個是css樣式的兼容性,另外一個是js的兼容性問題。
(1).對於css樣式來講,好比IE與火狐兩大瀏覽器,它們對自身的瀏覽器都有默認的padding,margin等值,咱們只須要在寫樣式的時候先清除它們默認樣式的值,引入一個reset.css樣式有能很大程度上解決一些常見問題,除此以外固然還有其它的樣式問題,好比IE6的雙邊距問題,解決辦法對IE6寫樣式display:inline;就能解決問題,還好比當子元素浮動未知高度時,使父容器自適應子元素的高度bug,解決辦法就是在父容器樣式裏面加上overflow:auto就能解決(這個問題IE6中能適應子元素的高度,可是IE8跟火狐等其它瀏覽器不行,須要加上剛纔的代碼才能實現自適應),還好比當一個浮動元素跟一個非浮動元素相鄰時就會出現3像素的bug,解決辦法其實很簡單給非浮動元素加上浮動就能夠解決。
(2).對於js代碼來講,也有一些常見的瀏覽器兼容性問題,就拿瀏覽器事件處理來講,IE事件處理程序須要2個方法來實現,attachEvent()和detachEvent()兩個方法來實現,它們裏邊的參數只有2個,好比attachEvent()方法的兩個參數:事件處理程序名字與事件處理程序函數。其它瀏覽器用到的是addEventListener()和removeEventListener()兩個方法,可是它們的參數有3個,拿addEventListener()方法舉例,第一個參數,要處理的事件名,好比onclick,可是不須要加上on,參數裏面只須要click,第二個參事件處理程序的函數,最後一個參數是布爾值。布爾值若是是true,表示在捕獲階段調用事件處理程序;若是是false,表示在冒泡階段調用事件處理程序。
new共經歷了四個過程。
var fn = function () { }; var fnObj = new fn();
一、建立了一個空對象
var obj = new object();
二、設置原型鏈
obj._proto_ = fn.prototype;
三、讓fn的this指向obj,並執行fn的函數體
var result = fn.call(obj);
四、判斷fn的返回值類型,若是是值類型,返回obj。若是是引用類型,就返回這個引用類型的對象。
if (typeof(result) == "object"){ fnObj = result; } else { fnObj = obj; }