HTML 開発では間違いなく CSS を使用しますが、開発が思ったほどスムーズにいかない場合があります。たとえば、HTML と CSS の一般的なブラウザ互換性の問題について、このセクションではその解決方法を説明します。
1. 中央揃えの問題
IE ではデフォルトで div のコンテンツが中央揃えになりますが、次のコードを追加してみてください:
margin: 0 auto;
2. 高さの問題
2 つの div を 1 つ上に配置します。その他またはネストされた、上 div の高さ (高さ) を設定します。 div 内の実際のコンテンツが設定された高さよりも大きい場合、FF では 2 つの div が重なりますが、IE では下の div に自動的にスペースが確保されます。上の div なので、レイヤーの重なりを避けるには、高さを適切に制御するか、単に高さを書き込まずに自動的に調整する必要があります。ただし、この div 内のすべての第 1 レベルの要素が浮動している場合は、高さを 100% に設定する必要があります。 div ブロックの最後に、閉じて閉じる前に空の div を追加する必要があります:
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のフローティングマージンによる距離が2倍になります
FF パディングを設定すると、divの高さと幅が増加しますが、 IEはそうではありません(*標準のXHTML1.0定義のdtdは一貫しているようです) 高さの制御は適切です、またはheight:100%を使用して幅を縮小してみてください。 しかし、実際の経験によると、一般的にはそれほど多くはありません。 FF と IE のパディングの違いは、div の実際の幅 = width + パディングであるため、div の全幅が書き込まれ、幅は実際の必要な幅からパディングを引いたものになります。
6. div がネストされている場合の y 軸のパディングとマーラインの問題
FF の y 軸上の子 div から親 div までの距離は、親のパディング + 子のマーラインです
7 パディング、マージン、高さ、幅に対する愚かな解決策です
これはメソッドではなくスキルであることに注意してください。
01#box { float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略 }
1. FFではデフォルトでulタグにpadding値がありますが、IEではmarginのみに値があります
9. 表示クラス (display: block, inline)
// インライン要素をブロック要素としてシミュレートできます
//同じ行に配置された効果を実現します
display:table; //FF の場合、table の効果をシミュレートします
特徴は次のとおりです:
は常に新しい行の高さで始まります。行の高さと上下の余白はすべて制御できます。幅が設定されていない限り、幅はデフォルトでコンテナの 100% になります
、
要素の特徴は次のとおりです: 要素はすべて 1 行に表示されます。高さと上下の余白は変更できません。幅はテキストまたは画像の幅であり、変更できません。 、、
すべて 標準の書き込みカーソルを使用します: ポインター;
1. 背景、画像カテゴリすべての幅と高さの属性に注意してください
2. IE: フィルター: progid: DXImageTransform.Microsoft.Alpha(style=0,opacity=60);
IE: フィルター: alpha(opacity=10);
11. min-heightの実装(IE6,IE7,FF対応)
機能は:コンテナの中身が小さい場合、レイアウトや UI デザインの効果を損なうことを避けるために、最小の高さを維持できます。コンテナ内のコンテンツが増加すると、コンテンツの変化に合わせてコンテナが自動的に伸縮します。<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=” 高尽量用padding,慎用margin,height尽量补上100%,父级height有定值子级height不用100%,子级全为浮动时底部补个空clear:both的div宽尽量用margin,慎用padding,width算准实际要的减去padding
#mrjin { background:#ccc; min-height:100px; height:auto !important; height:100px; overflow:visible; }
13. クロスブラウザー CSS 透明度
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: "" ""; }
14. テキストシャドウ (CSS3)
.transparent { opacity: 0.7; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter: alpha(opacity=70); -moz-opacity: 0.7; -khtml-opacity: 0.7;
16. スティッキーフッター (絶対位置に基づいてではなく、フッターを常にページの下部にドッキングさせます)
.text { text-shadow: 1px 1px 1px #666; filter: Shadow(Color=#666666, Direction=135, Strength=5); }
17. iframe 要素が埋め込まれたページから継承された HTML と本文の背景色/背景画像を削除する方法
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浏览器滚动条颜色了?
原来样式设置:
body{2scrollbar-face-color:#f6f6f6; 3scrollbar-highlight-color:#fff; 4scrollbar-shadow-color:#eeeeee; 5scrollbar-3dlight-color:#eeeeee; 6scrollbar-arrow-color:#000; 7scrollbar-track-color:#fff; 8scrollbar-darkshadow-color:#fff; }
解决办法是将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 line="1"> <param name="wmode" value="transparent" />
22、怎样使一个div层居中于浏览器中?
div { position:absolute; top:50%; left:50%; margin:-100px 0 0 -100px; width:200px; height:200px; border:1px solid red; }
23、怎样使div背景透明?
首先,需要这两个层都是兄弟关系,其次,这两个层都需要绝对定位。举个例子:
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; }
这里很多的文字,这里很多的文字,这里很多的文字,这里很多的文字,
24、怎样去掉选中时的虚线框?
利用onfocus="this.blur();"例如:测试
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
/*第一种*/ .title{ height:200px; *height:200px; _height:200px; } /*第二种*/ .title{ height:200px; *height:200px !important; *height:200px; } /*第三种*/ .title{ height:200px; } *html.title{ height:200px;} *+html.title{ height:200px;}
虽然篇幅有点长,但是这里面的内容对我们真的很有用,大家赶紧收藏起来吧。
相关教程:
以上がHTML と CSS における一般的なブラウザ互換性の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。