CSS 브라우저 호환성 문제 해결
1. !important(제한된 기능)
IE7의 !important 지원으로 인해 !important 메소드는 이제 IE6에서만 호환됩니다. (작성에 주의하세요. 선언 위치는 다음과 같아야 합니다. 미리.)
예:
#example { width: 100px !important; /* IE7+FF */ width: 200px; /* IE6 */ }
2. CSS HACK 방법(초보도 볼 수 있고 전문가는 그냥 지나칠 수도 있음)
가장 먼저 알아야 할 사항 is:
모든 보기 공통 높이:
IE6 특정 높이: 100px;
IE7 특정*+높이: 100px; IE6, IE7 공유*높이:
IE7, FF 공유 높이: 100px 중요;
#example { height:100px; /* FF+IE7 */ _height:200px; /* IE6 */ }
#example { height:100px !important; /* FF+IE7 */ height:200px; /* IE6 */ }
#example { height:100px; /* FF */ *height:200px; /* IE6+IE7 */ }
#example { height:100px; /* IE6+FF */ *+height:200px; /* IE7 */ }
#example { height:100px; /* FF */ _height:200px; /* IE6 */ *+height:300px; /* IE7 */ }
#example { height:100px; /* FF */ *height:300px; /* IE7 */ _height:200px; /* IE6 */ }
올 때 두 번째 줄에 *height: 300px; FF는 이 속성을 인식하지 못하고 IE6과 IE7은 이를 인식하므로 FF는 여전히 100px를 표시하지만 IE6과 IE7은 첫 번째 줄에서 얻은 높이 속성을 덮어쓰고 둘 다 300px를 표시합니다. 세 번째 줄인 _height:200px에 이르면 IE6에서만 인식하므로 IE6은 두 번째 줄에서 얻은 높이를 덮어쓰고 최종적으로 200px를 표시합니다.
이런 식으로 세 브라우저는 각각 고유한 높이 속성을 갖게 됩니다. 가지고 놀아보세요
아직 이해가 안 되시면 벽에 부딪치러 가셔도 되고, 제가 가셔도 됩니다. 하지만 당신이 가는 게 더 낫습니다.
아, 깜빡할 뻔했어요:
*+html IE7과의 호환성을 위해서는 HTML 상단에 다음 문장이 보장되어야 합니다:〈!DOCTYPE HTML PUBLIC "-//W3C// DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"〉
〈! --기타 브라우저--〉
〈link rel="stylesheet" type="text/css" href="http://www.php1.cn/">
〈!--[IE 7인 경우]〉
〈!-- IE7에 적합 --〉
〈link rel="stylesheet" type="text/css" href= "http ://www.php1.cn/">
〈![endif]--〉
〈!--[if lte IE 6]〉
〈 !--IE6 이하에 적합--〉
〈link rel="stylesheet" type="text/css" href="http://www.php1.cn/">
〈![endif]-->
CSS 3세트를 컴파일해야 할 것 같습니다. 아직 사용해본 적은 없습니다.
IE의 if 조건 해킹
1. 〈!--[if !IE]〉〈!--〉 IE를 제외한 모든 항목에서 인식〈!--〈![endif]--〉
2. 〈!--[if IE]〉 모든 IE는 〈![endif]--〉을 인식할 수 있습니다. 3. 〈!--[if IE 5.0]〉 IE5.0만 〈![endif]-를 인식할 수 있습니다. ->
4. 〈!- -[IE 5인 경우]〉 IE5.0 및 IE5.5만 〈![endif]--〉
5. 〉 IE5.0 및 IE5.0 이상 〈![endif]--〉 〈![endif]--〉 〈!--[IE 6인 경우]〉 〈!--[IE 6인 경우]〉 IE6만 인식 가능 〈![endif]--〉 〈!--[if lt IE 6]〉 IE6 이하 버전에서는 〈![endif]--〉
8 〈!--[if gte IE 6]〉 IE6을 인식할 수 있습니다. 이상 버전에서는 〈![endif]--〉
9를 인식할 수 있습니다. 〈!--[IE 7의 경우]〉 IE7만 〈![endif]--〉
10을 인식할 수 있습니다. if lt IE 7]〉 IE7 이하 버전에서는 〈![endif]--〉
11을 인식할 수 있습니다. 〈!--[if gte IE 7]〉 IE7 이상에서는 〈![endif]--〉를 인식할 수 있습니다. : gt = 크다 그러면 다음보다 큼
> = 〉 초과 기호
lt = 작음 다음 작음
〈 = 〈 미만 기호
gte = 큼 그러면 또는 같음 <보다 크거나 같음
lte = Less Then or Equal Less than orequal to
4. CSS 필터 방식 (저자에 따르면 외국 고전 사이트에서 번역한 것이라고 합니다)
새로 만들기 CSS 스타일은 다음과 같습니다.
#item { width: 200px; height: 200px; background: red; }
추가 여기 본문 표현의 lang 속성, 중국어는 zh:
〈body〉
이제 div 요소에 대해 다른 스타일을 정의합니다.
이 작업은 덮어쓰기로 수행됩니다. !important가 포함된 원래 CSS 스타일입니다. :lang 선택기 ie7.0이 이를 지원하지 않기 때문에 이 문장은 아무런 효과가 없으므로 IE6.0에서도 동일한 효과를 얻을 수 있지만 안타깝게도 Safari는 이 속성을 지원하지 않습니다. 따라서 다음 CSS 스타일을 추가해야 합니다.#item:empty { background: green !important }
:empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。
五、FLOAT闭合(clearing float)
网页在某些浏览器上显示错位很多时候都是因为使用了float浮动而没有真正闭合,这也是div无法自适应高度的一个原因。如果父div没有设float而其子div却设了float的话,父div无法包住整个子DIV,这种情况一般出现在一个父DIV下包含多个子DIV。解决办法:
1、给父DIV也设上float(不要骂我,我知道是废话)
2、在所有子DIV后新加一个空DIV(不推荐,有些浏览器可以看见空DIV产生的空隙)
比如:
.parent{width:100px;}
.son1{float:left;width:20px;}
.son2{float:left;width:80px;}
.clear{clear:both;margin:0;parding0;height:0px;font-size:0px;}
〈div〉
〈div〉〈/div〉
〈div〉〈/div〉
〈div〉〈/div〉
〈/div〉
3、万能 float 闭合
将以下代码加入Global CSS 中,给需要闭合的div加上 class=”clearfix” 即可,屡试不爽.
代码:
〈style〉 /* 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 */ 〈/style〉
:after(伪对象),设置在对象后发生的内容,通常和content配合使用,IE不支持此伪对象,非Ie 浏览器支持,所以并不影响到IE/WIN浏览器。这种的最麻烦。
4、overflow:auto(刚看到的,极力推荐)
只要在父DIV的CSS中加上overflow:auto就搞定。
举例:
.parent{width:100px;overflow:auto}
.son1{float:left;width:20px;}
.son2{float:left;width:80px;}
〈div〉
〈div〉〈/div〉
〈div〉〈/div〉
〈/div〉
作者原话:原理是,外围元素之所以不能很好的延伸,问题出在了overflow上,因为overflow不可见(见W3C的解释)。现在只要将给外围元素添 加一个“overflow:auto”,就可以解决问题,结果是除了IE,真的可以解决。下来就要解决IE的问题了,再加上“_height:1%”,这个问题就完全解决了。
我试了一下,其实不加"_height:1%“在IE下也行,留着吧。
六、需要注意的一些兼容细节
1, FF下给 div 设置 padding 后会导致 width 和 height 增加(DIV的实际宽度=DIV宽+Padding), 但IE不会.
解决办法:给DIV设定IE、FF两个宽度,在IE的宽度前加上IE特有标记" * "号。
2, 页面居中问题.
body {TEXT-ALIGN: center;} 在IE下足够了,但FF下失效。
解决办法:加上"MARGIN-RIGHT: auto; MARGIN-LEFT: auto; "
3, 有的时候在IE6上看见一些奇怪的间隙,可我们高度明明设好了呀。
解决办法:试试在有空隙的DIV上加上"font-size:0px;"
4, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.
5, 浮动IE6产生的双倍距离
#box{ float:left; width:100px; margin:0 0 0 100px; }
这种情况之下IE6会产生200px的距离
解决办法:加上display:inline,使浮动忽略
这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,…不可控制(内嵌元素);
#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果
6 页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里 这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。比如要设置背景图片,这个宽度是比较重 要的。
解决办法:为了让这一命令在IE上也能用,可以把一个〈div〉 放到 〈body〉 标签下,然后为div指定一个类:
然后CSS这样设计:
#container{ min-width: 600px; width:e?xpression(document.body.clientWidth 〈 600? “600px”: “auto” ); }
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
7、UL和FORM标签的padding与margin
ul标签在FF中默认是有padding值的,而在IE中只有margin默认有值。FORM标签在IE中,将会自动margin一些边距,而在FF中margin则是0;
解决办法:css中首先都使用这样的样式ul,form{margin:0;padding:0;}给定义死了,后面就不会为这个头疼了.
8 ,DIV浮动IE文本产生3象素的bug
下面这段是我在网上粘过来的
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.
#box{ float:left; width:800px;} #left{ float:left; width:50%;} #right{ width:50%; } *html #left{ margin-right:-3px; //这句是关键 }
HTML代码
〈DIV id=box〉 〈DIV id=left〉〈/DIV〉 〈DIV id=right〉〈/DIV〉 〈/DIV〉
针对上面这段代码,下面说一下我的理解:
第一、只要right定义了width属性,在FF下绝对就会两行显示
第二、两个width都定义为百分比的话,就算都为100%在IE下也会一行显示。所以上面那句所谓“这句是关键”根本没用,不加也在一行,除非你width定义的是数值才用得上。
所以说上面这段代码其实用处不大,至少在FF下不行。其实只要只定义left的width就行了,right不定义width就不管在IE还是FF下都能成功,但这样的话父DIV BOX并没有真正的包含LEFT和RIGHT两子DIV,可以用我上面说的第5种办法解决。最简单的办法就是在RIGHT中加上float:left就OK了,真磨叽!
9,截字省略号
.hh { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space: nowrapoverflow:hidden; }
这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾。技术是好技术,很多人都喜欢乱用,但注意Firefox并不支持。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Vue.js에서 placeholder 속성은 사용자가 콘텐츠를 입력하지 않을 때 표시되는 입력 요소의 자리 표시자 텍스트를 지정하고 입력 팁이나 예제를 제공하며 양식 접근성을 향상시킵니다. 사용법은 입력 요소에 자리 표시자 속성을 설정하고 CSS를 사용하여 모양을 사용자 정의하는 것입니다. 모범 사례에는 입력과 관련성, 짧고 명확함, 기본 텍스트 방지, 접근성 고려 등이 포함됩니다.

스팬 태그는 텍스트에 스타일, 속성 또는 동작을 추가할 수 있습니다. 색상 및 글꼴 크기와 같은 스타일을 추가하는 데 사용됩니다. ID, 클래스 등의 속성을 설정합니다. 클릭, 호버 등과 같은 관련 동작 추가 처리 또는 인용을 위해 텍스트를 표시합니다.

CSS의 REM은 루트 요소(html)의 글꼴 크기에 상대적인 단위입니다. 여기에는 다음과 같은 특징이 있습니다. 루트 요소의 글꼴 크기를 기준으로 하며 상위 요소의 영향을 받지 않습니다. 루트 요소의 글꼴 크기가 변경되면 REM을 사용하는 요소가 그에 따라 조정됩니다. 모든 CSS 속성과 함께 사용할 수 있습니다. REM 사용의 장점은 다음과 같습니다. 반응성: 다양한 장치 및 화면 크기에서 텍스트를 읽을 수 있도록 유지합니다. 일관성: 웹사이트 전체에서 글꼴 크기가 일관되게 유지되어야 합니다. 확장성: 루트 요소 글꼴 크기를 조정하여 전역 글꼴 크기를 쉽게 변경할 수 있습니다.

Vue에 이미지를 도입하는 방법에는 URL, 필수 함수, 정적 파일, v-bind 지시어 및 CSS 배경 이미지 등 5가지 방법이 있습니다. 동적 이미지는 Vue의 계산된 속성이나 리스너에서 처리할 수 있으며, 번들 도구를 사용하여 이미지 로딩을 최적화할 수 있습니다. 경로가 올바른지 확인하세요. 그렇지 않으면 로딩 오류가 나타납니다.

SPAN 태그는 스타일, 색상, 글꼴 크기 등의 속성을 적용하여 텍스트를 강조 표시하는 데 사용되는 인라인 HTML 태그입니다. 여기에는 텍스트 강조, 텍스트 그룹화, 호버 효과 추가 및 동적인 콘텐츠 업데이트가 포함됩니다. 강조하려는 텍스트 주위에 <span>, </span> 태그를 배치하여 사용하며, CSS 스타일링이나 JavaScript를 통해 조작됩니다. SPAN 태그의 이점에는 의미의 명확성, 스타일 유연성 및 유지 관리 용이성이 포함됩니다.

JavaScript에서 프롬프트() 메서드를 사용할 때 다음 세 가지 방법을 통해 줄 바꿈을 수행할 수 있습니다. 1. 줄을 끊으려는 위치에 "\n" 문자를 삽입합니다. 2. 줄 바꿈 문자를 사용합니다. 프롬프트 텍스트; 3. CSS의 "white" -space: pre" 스타일을 사용하여 줄바꿈을 강제합니다.

브라우저 플러그인은 일반적으로 다음 언어로 작성됩니다. 프런트엔드 언어: JavaScript, HTML, CSS 백엔드 언어: C++, Rust, WebAssembly 기타 언어: Python, Java

노드는 HTML 요소를 나타내는 JavaScript DOM의 엔터티입니다. 이는 페이지의 특정 요소를 나타내며 해당 요소에 액세스하고 조작하는 데 사용될 수 있습니다. 일반적인 노드 유형에는 요소 노드, 텍스트 노드, 주석 노드 및 문서 노드가 포함됩니다. getElementById()와 같은 DOM 메서드를 통해 노드에 액세스하고 속성 수정, 하위 노드 추가/제거, 노드 삽입/교체, 노드 복제 등의 작업을 수행할 수 있습니다. 노드 순회는 DOM 구조 내에서 탐색하는 데 도움이 됩니다. 노드는 페이지 콘텐츠, 이벤트 처리, 애니메이션 및 데이터 바인딩을 동적으로 생성하는 데 유용합니다.
