ブラウザ互換性に関するいくつかの問題
5510 ワード
一.CSS hackとは?
Internet Explorer、Safari、Mozilla Firefox、Chromeなど、異なるメーカーのブラウザ、または同じメーカーのブラウザの異なるバージョン、例えばIE 6とIE 7は、CSSの解析認識が全く同じではないため、生成されたページの効果が異なり、私たちが必要とするページの効果が得られない.この时、私达は异なるブラウザに対して异なるCSSを书く必要があって、それが同时に异なるブラウザに対応することができて、异なるブラウザの中で私达の望むページの効果を得ることができます.私たちはこの異なるブラウザ/異なるバージョンに対して対応するCSSを書く過程をCSS hackと言います.
二.ブラウザの互換性についてお話しします
四.ブラウザ対応の書き方を5つ以上挙げます
CSS hack方式1:条件注釈法この方式はIEブラウザ独自のHack方式であり,マイクロソフトが公式に推奨しているhack方式である.
:
HTML
:
! [if !IE] IE
lt [if lt IE 5.5] IE 5.5
lte [if lte IE 6] IE6
gt [if gt IE 5] IE5
gte [if gte IE 7] IE7
| [if (IE 6)|(IE 7)] IE6 IE7
:
IE
IE6
IE8
IE
CSS hack方式2:クラス内属性接頭辞法属性接頭辞法は、CSSスタイル属性名に特定のブラウザでしか認識できないhack接頭辞を加えて、所望のページ表示効果を達成する.
.test {
background-color:red; /* All browsers */
background-color:blue !important; /* All browsers but IE6 */
*background-color:black; /* IE6, IE7 */
+background-color:yellow; /* IE6, IE7*/
background-color:gray\9; /* IE6, IE7, IE8, IE9, IE10 */
background-color:purple\0; /* IE8, IE9, IE10 */
background-color:orange\9\0; /*IE9, IE10*/
_background-color:green; /* Only works in IE6 */
}
CSS hack方式3:ブラウザプライベートプレフィックス法
-o opera
-ms IE
-moz firefox
-webkit safari,chrome
:
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
-o-box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
CSS hack方式4:セレクタ接頭辞法セレクタ接頭辞法は、一部のページの表現が一致しない、または特別な扱いが必要なブラウザに対して、CSSセレクタの前に特定のブラウザでしか認識できない接頭辞を加えてhackを行う.
:
*html * IE6
*+html *+ IE7
@media screen\9{...} IE6/7
@media \0screen {body { background: red; }} IE8
@media \0screen\,screen\9{body { background: blue; }} IE6/7/8
@media screen\0 {body { background: green; }} IE8/9/10
@media screen and (min-width:0\0) {body { background: gray; }} IE9/10
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} IE10
CSS hack方式5:CSS 3セレクタとJavaScriptのHack
JavaScript :
function test() {
var htmlObj = document.documentElement;
htmlObj.setAttribute('data-useragent',navigator.userAgent);
htmlObj.setAttribute('data-platform', navigator.platform );
}
CSS3 :
html[data-useragent*='MSIE 10.0'] #id {
color: #F00;
}
五.以下のツール/名詞は何をしていますか.
五.一般的にどのサイトで属性互換性を調べますか?
http://caniuse.com/