5.9隨筆

margin的屬性css

margin: 包括margin-top、margin-right、margin-bottom、margin-left,控制塊級元素之間的距離,它們是透明不可見的。根據上、 右、下、左的順時針規則,能夠寫爲 margin: 40px 40px 40px 40px;
html

當上下、左右margin值分別一致, 可簡寫爲:margin:40px 40px;前端

雙標籤於單標籤chrome

雙標籤:
<html><head><title><body><table><tr><td><span><p><form><h1><h2><h3><h4><h5><h6><object><style><b><u><strong><i><div><a><script><center>

單標籤:
<br><hr><img><input><param><meta><link>

相對長度的em怎麼用瀏覽器

em:即%,是相對單位,是一個相對長度單位,最初是指字母M的寬度,故名em。現指的是字符寬度的倍數,用法相似百分比,如:0.8em, 1.2em,2em等。一般1em=16px。,通常用來測量長度的通用單位(例如元素週轉的頁邊空白和填充),當用於指定字體大小時,em單位是指父元素的字體大小。安全

在一個頁面上給定了一個父元素的字體大小,這樣就能夠經過調整一個元素來成比例的改變全部元素大小.它能夠自由縮放,好比用來製做可伸縮的樣式表。服務器

瀏覽器的默認字體高都是16px,因此未經調整的瀏覽器在顯示1em=16px,也就是說1px=0.0625em。爲了簡化font-size的換算,能夠在css中的body中先全局聲明font-size=62.5%,也就是定義了默認字體大小爲16px*0.625=10px,子元素會繼承父級元素的字體大小,因而1em=10px,因此12px=1.2em。佈局

瀏覽器的不一樣兼容性post

所謂的瀏覽器兼容性問題,是指由於不一樣的瀏覽器對同一段代碼有不一樣的解析,形成頁面顯示效果不統一的狀況。在大多數狀況下,咱們的需求是,不管用戶用什麼瀏覽器來查看咱們的網站或者登錄咱們的系統,都應該是統一的顯示效果。因此瀏覽器的兼容性問題是前端開發人員常常會碰到和必需要解決的問題。學習

 

在學習瀏覽器兼容性以前,我想把前端開發人員劃分爲兩類:

第一類是精確按照設計圖開發的前端開發人員,能夠說是精確到1px的,他們很容易就會發現設計圖的不足,而且在不多的狀況下會碰到瀏覽器的兼容性問題,而這些問題每每都死瀏覽器的bug,而且他們製做的頁面後期易維護,代碼重用問題少,能夠說是比較牢固放心的代碼。

第二類是基本按照設計圖來開發的前端開發人員,不少細枝末節差距很大,不如間距,行高,圖片位置等等常常會差幾px。某種效果的實現也是反覆調試獲得,具體爲何出現這種效果還模模糊糊,總體佈局十分脆弱。稍有改動就亂七八糟。代碼爲何這麼寫還不知因此然。這類開發人員每每常常爲兼容性問題所困。修改好了這個瀏覽器又亂了另外一個瀏覽器。改來改去也毫無頭緒。其實他們碰到的兼容性問題大部分不該該歸咎於瀏覽器,而是他們的技術自己了。

文章主要針對的是第一類,嚴謹型的開發人員,所以這裏主要從瀏覽器解析差別的角度來分析兼容性問題。

瀏覽器兼容問題一:不一樣瀏覽器的標籤默認的外補丁和內補丁不一樣

問題症狀:隨便寫幾個標籤,不加樣式控制的狀況下,各自的margin 和padding差別較大。

碰到頻率:100%

解決方案:CSS裏    *{margin:0;padding:0;}

備註:這個是最多見的也是最易解決的一個瀏覽器兼容性問題,幾乎全部的CSS文件開頭都會用通配符*來設置各個標籤的內外補丁是0。

瀏覽器兼容問題二:塊屬性標籤float後,又有橫行的margin狀況下,在IE6顯示margin比設置的大

問題症狀:常見症狀是IE6中後面的一塊被頂到下一行

碰到頻率:90%(稍微複雜點的頁面都會碰到,float佈局最多見的瀏覽器兼容問題)

解決方案:在float的標籤樣式控制中加入 display:inline;將其轉化爲行內屬性

備註:咱們最經常使用的就是div+CSS佈局了,而div就是一個典型的塊屬性標籤,橫向佈局的時候咱們一般都是用div float實現的,橫向的間距設置若是用margin實現,這就是一個必然會碰到的兼容性問題。

瀏覽器兼容問題三:設置較小高度標籤(通常小於10px),在IE6,IE7,遨遊中高度超出本身設置高度

問題症狀:IE六、7和遨遊裏這個標籤的高度不受控制,超出本身設置的高度

碰到頻率:60%

解決方案:給超出高度的標籤設置overflow:hidden;或者設置行高line-height 小於你設置的高度。

備註:這種狀況通常出如今咱們設置小圓角背景的標籤裏。出現這個問題的緣由是IE8以前的瀏覽器都會給標籤一個最小默認的行高的高度。即便你的標籤是空的,這個標籤的高度仍是會達到默認的行高。

瀏覽器兼容問題四:行內屬性標籤,設置display:block後採用float佈局,又有橫行的margin的狀況,IE6間距bug

問題症狀:IE6裏的間距比超過設置的間距

碰到概率:20%

解決方案:在display:block;後面加入display:inline;display:table;

備註:行內屬性標籤,爲了設置寬高,咱們須要設置display:block;(除了input標籤比較特殊)。在用float佈局並有橫向的margin後,在IE6下,他就具備了塊屬性float後的橫向margin的bug。不過由於它自己就是行內屬性標籤,因此咱們再加上display:inline的話,它的高寬就不可設了。這時候咱們還須要在display:inline後面加入display:talbe。

瀏覽器兼容問題五:圖片默認有間距

問題症狀:幾個img標籤放在一塊兒的時候,有些瀏覽器會有默認的間距,加了問題一中提到的通配符也不起做用。

碰到概率:20%

解決方案:使用float屬性爲img佈局

備註:由於img標籤是行內屬性標籤,因此只要不超出容器寬度,img標籤都會排在一行裏,可是部分瀏覽器的img標籤之間會有個間距。去掉這個間距使用float是正道。(個人一個學生使用負margin,雖然能解決,但負margin自己就是容易引發瀏覽器兼容問題的用法,因此我禁止他們使用)

瀏覽器兼容問題六:標籤最低高度設置min-height不兼容

問題症狀:由於min-height自己就是一個不兼容的CSS屬性,因此設置min-height時不能很好的被各個瀏覽器兼容

碰到概率:5%

解決方案:若是咱們要設置一個標籤的最小高度200px,須要進行的設置爲:{min-height:200px; height:auto !important; height:200px; overflow:visible;}

備註:在B/S系統前端開時,有不少狀況下咱們又這種需求。當內容小於一個值(如300px)時。容器的高度爲300px;當內容高度大於這個值時,容器高度被撐高,而不是出現滾動條。這時候咱們就會面臨這個兼容性問題。

瀏覽器兼容問題七:透明度的兼容CSS設置

作兼容頁面的方法是:每寫一小段代碼(佈局中的一行或者一塊)咱們都要在不一樣的瀏覽器中看是否兼容,固然熟練到必定的程度就沒這麼麻煩了。建議常常會碰到兼容性問題的新手使用。不少兼容性問題都是由於瀏覽器對標籤的默認屬性解析不一樣形成的,只要咱們稍加設置都能輕鬆地解決這些兼容問題。若是咱們熟悉標籤的默認屬性的話,就能很好的理解爲何會出現兼容問題以及怎麼去解決這些兼容問題。

  1. /* CSS hack*/ 

我不多使用hacker的,多是我的習慣吧,我不喜歡寫的代碼IE不兼容,而後用hack來解決。不過hacker仍是很是好用的。使用hacker我能夠把瀏覽器分爲3類:IE6 ;IE7和遨遊;其餘(IE8 chrome ff safari opera等)

◆IE6認識的hacker 是下劃線_ 和星號 *

◆IE7 遨遊認識的hacker是星號 *

好比這樣一個CSS設置:

  1. height:300px;*height:200px;_height:100px; 

IE6瀏覽器在讀到height:300px的時候會認爲高時300px;繼續往下讀,他也認識*heihgt, 因此當IE6讀到*height:200px的時候會覆蓋掉前一條的相沖突設置,認爲高度是200px。繼續往下讀,IE6還認識_height,因此他又會覆蓋掉200px高的設置,把高度設置爲100px;

IE7和遨遊也是同樣的從高度300px的設置往下讀。當它們讀到*height200px的時候就停下了,由於它們不認識_height。因此它們會把高度解析爲200px,剩下的瀏覽器只認識第一個height:300px;因此他們會把高度解析爲300px。由於優先級相同且想衝突的屬性設置後一個會覆蓋掉前一個,因此書寫的次序是很重要的。

post.get的區別

一、Get是用來從服務器上得到數據,而Post是用來向服務器上傳遞數據。
二、 Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,而且二者使用「?」鏈接,而各個變量之間使用 「&」鏈接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL。
三、 Get是不安全的,由於在傳輸過程,數據被放在請求的URL中,而現在現有的不少服務器、代理服務器或者用戶代理都會將請求URL記錄到日誌文件中,而後 放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也能夠在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。 Post的全部操做對用戶來講都是不可見的。
四、Get傳輸的數據量小,這主要是由於受URL長度限制;而Post能夠傳輸大量的數據,因此在上傳文件只能使用Post(固然還有一個緣由,將在後面的提到)。
五、Get限制Form表單的數據集的值必須爲ASCII字符;而Post支持整個ISO10646字符集。
六、Get是Form的默認方法。

http協議的傳輸方式

HTTP是超文本傳輸協議,是客戶端瀏覽器或其餘程序與Web服務器之間的應用層通訊協議。在Internet上的Web服務器上存放的都是超文本信息,客戶機須要經過HTTP協議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不只可用於Web訪問,也能夠用於其餘因特網/內聯網應用系統之間的通訊,從而實現各種應用資源超媒體訪問的集成。

協議基礎

HTTP(HyperText Transfer Protocol)是超文本轉移協議的縮寫,它用於傳送WWW方式的數據,關於HTTP協議的詳細內容請參考RFC2616。HTTP協議採用了請求/響應模型。客戶端向服務器發送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶信息和內容的相似於MIME的消息結構。服務器以一個狀態行做爲響應,相應的內容包括消息協議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。 一般HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個指示頭域結束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每一個頭域由一個域名,冒號(:)和域值三部分組成。域名是大小寫無關的,域值前能夠添加任何數量的空格符,頭域能夠被擴展爲多行,在每行開始處,使用至少一個空格或製表符。

相關文章
相關標籤/搜索