常见的浏览器兼容问题和解决方法
為什么會有兼容問題?
由于市場上瀏覽器種類眾多,而不同瀏覽器其內核亦不盡相同,所以各個瀏覽器對網頁的解析就有一定出入,這也是導致瀏覽器兼容問題出現的主要原因,我們的網頁需要在主流瀏覽器上正常運行,就需要做好瀏覽器兼容。
使用Trident內核的瀏覽器:IE、Maxthon、TT; 使用Gecko內核的瀏覽器:Netcape6及以上版本、FireFox; 使用Presto內核的瀏覽器:Opera7及以上版本; 使用Webkit內核的瀏覽器:Safari、Chrome。?
而我現在所說的兼容性問題,主要是說IE與幾個主流瀏覽器如firefox,google等。而對IE瀏覽器來說,IE7又是個跨度,因為之前的版本更新甚慢,bug甚多。從IE8開始,IE瀏覽器漸漸遵循標準,到IE9后由于大家都一致認為標準很重要,可以說在兼容性上比較好了,但是在中國來說,由于xp的占有率問題,使用IE7以下的用戶仍然很多,所以我們不得不考慮低版本瀏覽器的兼容。
對瀏覽器兼容問題,一般分,HTML,Javascript兼容,CSS兼容。 其中html相關問題比較容易處理,無非是高版本瀏覽器用了低版本瀏覽器無法識別的元素,導致其不能解析,所以平時注意一點就是。特別是HTML5增加了許多新標簽,低版本瀏覽器有點影響時代進步啊
問題一:不同瀏覽器的標簽默認的外補丁和內補丁不同
- 問題癥狀:隨便寫幾個標簽,不加樣式控制的情況下,各自的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,遨游中高度超出自己設置高度
- 問題癥狀:ie6、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是正道
問題六:標簽最低高度設置min-height不兼容
- 問題癥狀:因為min-height本身就是一個不兼容的css屬性,所以設置min-height時不能很好的被各個瀏覽器兼容
- 碰到幾率:5%
- 解決方案:如果我們要設置一個標簽的最小高度200px,需要進行的設置為:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
- 備注:在B/S系統前端開時,有很多情況下我們有這種需求。當內容小于一個值(如300px)時。容器的高度為300px;當內容高度大于這個值時,容器高度被撐高,而不是出現滾動條。這時候我們就會面臨這個兼容性問題。
問題七:透明度的兼容css設置
方法是:每寫一小段代碼(布局中的一行或者一塊)我們都要在不同的瀏覽器中看是否兼容,當然熟練到一定的程度就沒這么麻煩了。建議經常會碰到兼容性問題的新手使用。很多兼容性問題都是因為瀏覽器對標簽的默認屬性解析不同造成的,只要我們稍加設置都能輕松地解決這些兼容問題。如果我們熟悉標簽的默認屬性的話,就能很好的理解為什么會出現兼容問題以及怎么去解決這些兼容問題。技巧一:css hack
使用hacker 我可以把瀏覽器分為3類:ie6 ;ie7和遨游;其他(ie8 chrome ff safari opera等)
- ie6認識的hacker 是下劃線_ 和星號 *
- ie7 遨游認識的hacker是星號 * (包括上面問題6中的 !important也算是hack的一種。不過實用性較小。)
來源:https://blog.csdn.net/xustart7720/article/details/73604651/
因為優先級相同且相沖突的屬性設置后一個會覆蓋掉前一個,所以書寫的次序是很重要的。
/* CSS屬性級Hack */ color:red; /* 所有瀏覽器可識別*/_color:red; /* 僅IE6 識別 */*color:red; /* IE6、IE7 識別 */ +color:red; /* IE6、IE7 識別 */ *+color:red; /* IE6、IE7 識別 */ [color:red; /* IE6、IE7 識別 */ color:red\9; /* IE6、IE7、IE8、IE9 識別 */ color:red\0; /* IE8、IE9 識別*/ color:red\9\0; /* 僅IE9識別 */ color:red \0; /* 僅IE9識別 */ color:red!important; /* IE6 不識別!important 有危險*/ /* CSS選擇符級Hack */ *html #demo { color:red;} /* 僅IE6 識別 */ *+html #demo { color:red;} /* 僅IE7 識別 */ body:nth-of-type(1) #demo { color:red;} /* IE9+、FF3.5+、Chrome、Safari、Opera 可以識別 */ head:first-child+body #demo { color:red; } /* IE7+、FF、Chrome、Safari、Opera 可以識別 */ :root #demo { color:red\9; } : /* 僅IE9識別 */?
來源:https://blog.csdn.net/xustart7720/article/details/73604651/
?
越少的浮動,就會越少的代碼,會有更靈活的頁面,會有擴展性更強的頁面。這不多說,歸結為到一定水平了,浮動會用的較少。另外,您也會避免使用浮動+margin的用法。所以,越后來越不易遇到這種bug。
技巧二:padding,marign,height,width
注意是技巧,不是方法: 寫好標準頭?http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>?http://www.w3.org/1999/xhtml”>?盡量用padding,慎用margin,height盡量補上100%,父級height有定值子級height不用100%,子級全為浮動時底部補個空clear:both的div寬盡量用margin,慎用padding,width算準實際要的減去padding
技巧三:顯示類(display:block,inline)
display:block,inline兩個元素display:block; //可以為內嵌元素模擬為塊元素display:inline; //實現同一行排列的的效果 display:table; //for FF,模擬table的效果?
display:block塊元素,元素的特點是: 總是在新行上開始;高度,行高以及頂和底邊距都可控制;寬度缺省是它的容器的100%,除非設定一個寬度
display:inline就是將元素顯示為行內元素,元素的特點是:和其他元素都在一行上;高,行高及頂和底邊距不可改變;寬度就是它的文字或圖片的寬度,不可改變。span,a,label,input,img,strong和em是 inline 元素的例子
技巧四:怎樣使一個div層居中于瀏覽器中?
1)
<style type="text/css"> <!-- div { position:absolute; top:50%; left:50%; margin:-100px 0 0 -100px; width:200px; height:200px; border:1px solid red; } --> </style>?
2)div里的內容,IE默認為居中,而FF默認為左對齊,可以嘗試增加代碼margin: 0 auto;
技巧五:float的div閉合;清除浮動;自適應高度
① 例如:<div id="floatA"><div id="floatB"><div id="NOTfloatC">
- 這里的NOTfloatC并不希望繼續平移,而是希望往下排。(其中floatA、floatB的屬性已經設置為float:left;)
- 這段代碼在IE中毫無問題,問題出在FF。原因是NOTfloatC并非float標簽,必須將float標簽閉合。在<divclass="floatB"><div class="NOTfloatC">之間加上<div class="clear">這個div一定要注意位置,而且必須與兩個具有float屬性的div同級,之間不能存在嵌套關系,否則會產生異常。并且將clear這種樣式定義為為如下即可:.clear{clear:both;}
②作為外部 wrapper 的 div 不要定死高度,為了讓高度能自適應,要在wrapper里面加上overflow:hidden; 當包含float的box的時候,高度自適應在IE下無效,這時候應該觸發IE的layout私有屬性(萬惡的IE啊!)用zoom:1;可以做到,這樣就達到了兼容。?
例如某一個wrapper如下定義:
?
③對于排版,我們用得最多的css描述可能就是float:left.有的時候我們需要在n欄的float div后面做一個統一的背景,譬如:
<div id=”page”><div id=”left”></div> <div id=”center”></div> <div id=”right”></div> </div>?
比如我們要將page的背景設置成藍色,以達到所有三欄的背景顏色是藍色的目的,但是我們會發現隨著left centerright的向下拉長,而page居然保存高度不變,問題來了,原因在于page不是float屬性,而我們的page由于要居中,不能設置成float,所以我們應該這樣解決:
<div id=”page”><div id=”bg” style=”float:left;width:100%”> <div id=”left”></div> <div id=”center”></div> <div id=”right”></div> </div> </div>?
再嵌入一個float left而寬度是100%的DIV解決之。
④萬能float 閉合(非常重要!)
關于 clear float 的原理可參見 [How To ClearFloats Without Structural Markup],將以下代碼加入Global CSS 中,給需要閉合的div加上class=”clearfix”即可,屢試不爽。
/* Clear Fix */ .clearfix:after { content:"."; display:block; height:0; clear:both;visibility:hidden; } .clearfix { display:inline-block; } /* Hide from IE Mac */ .clearfix {display:block;} /* End hide from IE Mac */ /* end of clearfix */?
或者這樣設置:.hackbox{display:table; //將對象作為塊元素級的表格顯示}
技巧六: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 外面
?
web前端開發過程中,出現瀏覽器兼容問題,一般從什么角度考慮解決:
1、寫代碼的時候遵循W3C標準,按照最新穩定版本的IE或WebKit內核瀏覽器進行編碼。
2、遇到部分無法全面解決瀏覽器兼容的時候,采取CSS的hack手段進行針對性微調。
3、遇到特別難解決的,可以用JS強制修改。
?
border:none與border:0的區別
體現有兩點:
1、理論上的性能差異;
2、瀏覽器兼容性的差異。
1、性能差異:
【border:0】把border設為“0“像素雖然在頁面上看不見,但按border默認值理解,瀏覽器依然會對border-width/border-color進行渲染,即已經占用了內存值。
【border:none】把border設為”none“即沒有,瀏覽器解析”none“時將不作出渲染動作,即不會消耗內存值。
2、兼容性差異:
兼容性差異只針對IE6、IE7與標簽button、input而言,在win、win7的XP主題下均會出現此現象。
當border為”none“時對IE6、IE7無效邊框依然存在,如下圖所示:
當border為”0“時對IE6、IE7,如下圖所示:
當border為”0“或者”none“時Firefox下顯示一致,如下圖所示:
不同瀏覽器margin和padding差異較大
顯示區別
對于IE,父元素用text-align:center;可實現父級元素內的子元素居中,
對于FF,子元素需要用margin:0 auto。
在IE6中無法設置微型高度
顯示區別
?
?
?
1、居中問題
div里的內容,IE默認為居中,而FF默認為左對齊,可以嘗試增加代碼margin: 0 auto;
2、高度問題
兩上下排列或嵌套的div,上面的div設置高度(height),如果div里的實際內容大于所設高度,在FF中會出現兩個div重疊的現象;但在IE中,下面的div會自動給上面的div讓出空間所以為避免出現層的重疊,高度一定要控制恰當,或者干脆不寫高度,讓他自動調節,比較好的方法是 height:100%;但當這個div里面一級的元素都float了的時候,則需要在div塊的最后,閉和前加一個沉底的空div,對應CSS是:.float_bottom {clear:both;height:0px;font-size:0px;padding:0;margin:0;border:0;line-height:0px;overflow:hidden;}
3、clear:both;
不想受到float浮動的,就在div中寫入clear:both;
4、IE浮動 margin產生的雙倍距離
#box {
float:left;
width:100px;
margin:0 0 0 100px; //這種情況之下IE會產生200px的距離
display:inline; //使浮動忽略
}
5、padding問題
FF設置 padding 后,div會增加 height 和 width,但IE不會 (* 標準的 XHTML1.0 定義 dtd 好像一致了)高度控制恰當,或嘗試使用 height:100%;寬度減少使用 padding但根據實際經驗,一般FF和IE的 padding 不會有太大區別,div 的實際寬 = width + padding ,所以div寫全 width 和 padding,width 用實際想要的寬減去 padding 定義。
6、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 外面
7、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”>
高盡量用padding,慎用margin,height盡量補上100%,父級height有定值子級height不用100%,子級全為浮動時底部補個空clear:both的div寬盡量用margin,慎用padding,width算準實際要的減去padding
8、列表類
1. ul標簽在FF中默認是有 padding值的,而在IE中只有margin有值
先定義 ul {margin:0;padding:0;}
2. ul和ol列表縮進問題消除ul、ol等列表的縮進時,樣式應寫成: {list-style:none;margin:0px;padding:0px;}
9、顯示類(display:block,inline)
1. display:block,inline兩個元素
display:block; //可以為內嵌元素模擬為塊元素
display:inline; //實現同一行排列的的效果
display:table; //for FF,模擬table的效果
display:block 塊元素,元素的特點是:
總是在新行上開始;高度,行高以及頂和底邊距都可控制;寬度缺省是它的容器的100%,除非設定一個寬度
<div>,<p>,<h1>,<form>,<ul> 和 <li> 是塊元素的例子
display:inline 就是將元素顯示為行內元素,元素的特點是:和其他元素都在一行上;高,行高及頂和底邊距不可改變;寬度就是它的文字或圖片的寬度,不可改變。<span>,<a>,<label>,<input>,<img>,<strong> 和 <em> 是 inline 元素的例子
2.鼠標手指狀顯示
全部用標準的寫法 cursor: pointer;
10、背景、圖片類
1. background顯示問題
全部注意補齊 width,height 屬性
2.背景透明問題
IE: filter: progid: DXImageTransform.Microsoft.Alpha(style=0,opacity=60);
IE: filter: alpha(opacity=10);
FF: opacity:0.6;
FF: -moz-opacity:0.10;
最好兩個都寫,并將opacity屬性放在下面
11、min-height最小高度的實現(兼容IE6、IE7、FF)
作用是:當容器的內容較少時,能保持一個最小的高度,以免破壞了布局或UI設計效果。而當容器內的內容增加的時候,容器能夠自動的伸展以適應內容的變化。
#mrjin {
background:#ccc;
min-height:100px;
height:auto !important;
height:100px;
overflow:visible;
}
12、著名的 Meyer Reset(重置)
html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6,p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, font, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td
{?
margin: 0;?
padding: 0;?
border: 0;?
outline: 0;?
font-weight: inherit;?
font-style: inherit;?
font-size: 100%;?
font-family: inherit;?
vertical-align: baseline;?
}?
:focus {?
outline: 0;?
}?
body {?
line-height: 1;?
color: black;?
background: white;?
}?
ol, ul {?
list-style: none;?
}?
table {?
border-collapse: separate;?
border-spacing: 0;?
}?
caption, th, td {?
text-align: left;?
font-weight: normal;?
}?
blockquote:before, blockquote:after,?
q:before, q:after {?
content: "";?
}?
blockquote, q {?
quotes: "" "";?
}?
13、跨瀏覽器的CSS透明度
.transparent {?
opacity: 0.7;?
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
filter: alpha(opacity=70);?
-moz-opacity: 0.7;?
-khtml-opacity: 0.7;
14、文字陰影(CSS3)
.text { text-shadow: 1px 1px 1px #666; filter: Shadow(Color=#666666, Direction=135, Strength=5); }
15、Box陰影(CSS3)
.box { box-shadow: 5px 5px 5px #666; -moz-box-shadow: 5px 5px 5px #666; -webkit-box-shadow: 5px 5px 5px #666; }
16、Sticky Footer (讓頁腳永遠停靠在頁面底部,而不是根據絕對位置)
<div id="wrap">?
<div id="main" class="clearfix"></div>?
</div>?
<div id="footer"> </div>
CSS:
* { margin:0; padding:0; }?
html, body, #wrap { height: 100%; }?
body > #wrap {height: auto; min-height: 100%;}?
#main { padding-bottom: 150px; }?
#footer {?
position: relative;?
margin-top: -150px;?
height: 150px;?
clear:both;}?
.clearfix:after {content: ".";?
display: block;?
height: 0;?
clear: both;?
visibility: hidden;}?
.clearfix {display: inline-block;}?
* html .clearfix { height: 1%;}?
.clearfix {display: block;}
17、iframe元素內嵌頁面如何去掉繼承的html及body背景色/背景圖片
iframe元素的功能是在一個文檔里內嵌一個文檔,創建一個浮動的幀。內嵌文檔時一個完整的頁面,有HTML,BODY等屬性。這樣遇到了一個問題,如果樣式表中對BODY定義過背景色/背景圖片,那么內嵌文檔將全部繼承過來。所以如何去掉背景色和背景圖片:
【1】去掉背景色:filter:Chroma(Color=white);
舉例:<iframe width="100%" height="400" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" leftmargin="0" topmargin="0" style="filter:Chroma(Color=white);" ></iframe>
【2】去掉背景圖片:
舉例:<iframe width="100%" height="400" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" leftmargin="0" topmargin="0" style="filter:Chroma(Color=white);" allowTransparency="true" ></iframe>
注意:內嵌頁面同時也要增加BODY屬性:
<body bgcolor="transparent" style='background:transparent'>
18、為什么web標準中無法設置IE瀏覽器滾動條顏色了?
原來樣式設置:
<style type="text/css">
body{scrollbar-face-color:#f6f6f6; scrollbar-highlight-color:#fff; scrollbar-shadow-color:#eeeeee; scrollbar-3dlight-color:#eeeeee; scrollbar-arrow-color:#000; scrollbar-track-color:#fff; scrollbar-darkshadow-color:#fff; }
</style>
解決辦法是將body換成html。
19、為什么中火狐瀏覽器下文本無法撐開容器的高度?
標準瀏覽器中固定高度值的容器是不會象IE6里那樣被撐開的,那我又想固定高度,又想能被撐開需要怎樣設置呢?辦法就是去掉height設置min-height:200px; 這里為了照顧不認識min-height的IE6 可以這樣定義:
div { height:auto!important; height:200px; min-height:200px; }
20、如何定義1px左右高度的容器?
IE6下這個問題是因為默認的行高造成的,解決的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px
21、怎么樣才能讓層顯示在FLASH之上呢?
解決的辦法是給FLASH設置透明:
<a href="http://www.chinaz.com/">:</a>
<pre lang="html" line="1">
<param name="wmode" value="transparent" />
22、怎樣使一個div層居中于瀏覽器中?
<style type="text/css">
<!--
div {
position:absolute;
top:50%;
left:50%;
margin:-100px 0 0 -100px;
width:200px;
height:200px;
border:1px solid red;
}
-->
</style>
23、怎樣使div背景透明?
首先,需要這兩個層都是兄弟關系,其次,這兩個層都需要絕對定位。舉個例子:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="colinivy" />
<title> Colinivy's world</title>
<style type="text/css">
body {
font:normal 12px/30px Verdana; }
#test {
position:relative;
width:400px;
height:50px;
}
#inner {
z-index:2;
position:absolute;
top:10px;
left:10px;
width:380px;
height:30px;
color:#003;
font-weight:bold;
text-align:center;
}
#transbox {
z-index:1;
position:absolute;
top:0px;
left:0px;
width:400px;
height:50px;
background:#eef;
border:1px solid #a00;
filter:alpha(opacity=40);
-moz-opacity:0.4;
opacity:0.4;
}
</style>
</head>
<body>
<div id="test">
<div>
<p>這里很多的文字,這里很多的文字,這里很多的文字,這里很多的文字,</p>
</div>
<div id="transbox"></div>
<div id="inner">
BlueIdea,BlueIdea,BlueIdea?
</div>
</div>
</body>
</html>
24、怎樣去掉選中時的虛線框?
利用οnfοcus="this.blur();"例如:<a href="#" οnfοcus="this.blur();">測試</a>
25、ie6下png背景顯示問題?
針對ie6下png背景顯示問題,CSS中可以這樣解決:_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’http://www.0351zhuangxiu.com/uploads/images/bj.jpg’);
26、文字與表單對齊方法?
設置表單元素第一字體為Tahoma(Verdana系列也可),并設置vertical-align:middle.建設大家把這個約定寫入CSS RESET中,能減小很多麻煩:
body,button,input,select,textarea{font:12px/1.5 tahoma,arial,sans-serif; vertical-align:middle}
27、optgroup標簽的用法?
optgroup標簽,鮮為人知,它對提升選擇表單用戶體驗很有幫助。就是可以在有很多選項時,對這些選項分組:例子:
<select id="selectId">
<optgroup label="GROUP ONE">
<option value="1">one select</option>
<option value="2">two select</option>
</optgroup>
<optgroup label="GROUP TWO">
<option value="3">three select</option>
<option value="4">four select</option>
</optgroup>
</select>
28、文字與圖片垂直居中對齊方法?
為圖片與文字的共同父元素所有的后代元素定義*{vertical-align:middle};例如:
<p>我要的堅強<img src="i/image.gif" /></p>
只需定義p*{vertical-align:middle}即可使文字與圖片同行垂直居中.
29、文章標題列表中日期居右顯示的兩種方法?
方法A相對方法B省資源,但比方法B要多寫兩句代碼,使用時請視情況而定:
方法A:
<p>這是文章標題<span>2010-10-10</span></p>
然后定義p和span的樣式:
p{ position:relative}
p span{ position:absolute; right:0}
方法B:
<p><span>2010-10-10</span>這是文章標題</p>
然后定義span右浮動:
p span{float:right}
30、ie6下max/min-width/height實現?
ie6下max/min-width/height實現,_width: expression_r(this.width >600 ? “600px” : true);,height同理.
31、空白外邊距互相疊加的問題?
一般通過添加透明邊框或者1px的內邊距避免;
其一,為外圍元素定義透明邊框.具體到本例,即在樣式div中加入border:1px solid transparent;
其二,為外圍元素定義內邊距填充..具體到本例,即在樣式div中加入padding:1px;
例如:<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>空白邊距疊加demo@Mr.Think</title>
<style>
body{width:300px; font-family:'微軟雅黑'; font-size:1em; text-indent:10px; line-height:1.25}
div{background:#a40000;margin:10px}
div p{background:#eee;margin:15px}
</style>
</head>
<body>
<div><p>空白邊距疊加demo@Mr.Think</p></div>
</body>
</html>
32、網頁設計中的默認字體
font: 12px/1.5 Tahoma, Helvetica, Arial, sans-serif;
說明:line-height采用1.5, 也就是18px. 這是淘寶視覺規范中定義的行高,對于12px字體,這個行高看起來很舒服。font-family默認采用Tahoma. Tahoma是英文Windows操作系統的默認字體,這個字體比較均衡,顯示中英文混排很不錯,是經久耐看的一款字體。
33、瀏覽器兼容——常用的css hack
(1).title{ height:200px;
*height:200px;
_height:200px; }
(2).title{ height:200px;
*height:200px !important;
*height:200px; }
(3).title{ height:200px; }
*html.title{ height:200px;}
*+html.title{ height:200px;}
轉載于:https://www.cnblogs.com/sunshinezjb/p/9247845.html
總結
以上是生活随笔為你收集整理的常见的浏览器兼容问题和解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lame编译 android,Andro
- 下一篇: 浏览器的发展史