放到 标签下,然后为 div 指定一个类 , 然后 CSS 这样设计: #container{ min-width: 600px; width:e-xpression(document.body.clientWidth < 600? "600px": "auto" );} 第一个 min-width 是正常的;但第 2 行的 width 使用了 Javascript ,这只有 IE 才认得,这也会让你的 HTML 文档不太正规。它实际上通过 Javascript 的判断来实现最小宽度。
6.DIV 浮动 IE 文本产生 3 象素的 bug 左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有 3px 的间距 . #box{ float:left; width:800px;} #left{ float:left; width:50%;} #right{ width:50%;} *html #left{ margin-right:-3px; // 这句是关键 }
7.IE 捉迷藏的问题 当 div 应用复杂的时候每个栏中又有一些链接, DIV 等这个时候容易发生捉迷藏的问题。 有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对 #layout 使用 line-height 属性 或者给 #layout 使用固定高和宽。页面结构尽量简单。
8.float 的 div 闭合 ; 清除浮动 ; 自适应高度 ;
① 例如: <#div id=”floatA” ><#div id=”floatB” ><#div id=” NOTfloatC” > 这里的 NOTfloatC 并不希望继续平移,而是希望往下排。 ( 其中 floatA 、 floatB 的属性已经设置为 float:left;) 这段代码在 IE 中毫无问题,问题出在 FF 。原因是 NOTfloatC 并非 float 标签,必须将 float 标签闭合。在 <#div class=”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 如下定义: .colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}
③ 对于排版 , 我们用得最多的 css 描述可能就是 float:left. 有的时候我们需要在 n 栏的 float div 后面做一个统一的背景 , 譬如 : 比如我们要将 page 的背景设置成蓝色 , 以达到所有三栏的背景颜色是蓝色的目的 , 但是我们会发现随着 left center right 的向下拉长 , 而 page 居然保存高度不变 , 问题来了 , 原因在于 page 不是 float 属性 , 而我们的 page 由于要居中 , 不能设置成 float, 所以我们应该这样解决 再嵌入一个 float left 而宽度是 100% 的 DIV 解决之
④ 万能 float 闭合 ( 非常重要 !) 关于 clear float 的原理可参见 [How To Clear Floats 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; // 将对象作为块元素级的表格显示 }
11. 高度不适应 高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用 margin 或 paddign 时。 例: #box {background-color:#eee; } #box p {margin-top: 20px;margin-bottom: 20px; text-align:center; } 解决方法:在 P 对象上下各加 2 个空的 div 对象 CSS 代码: .1{height:0px;overflow:hidden;} 或者为 DIV 加上 border 属性。
12 .IE6 下为什么图片下有空隙产生 解决这个 BUG 的方法也有很多 , 可以是改变 html 的排版 , 或者设置 img 为 display:block 或者设置 vertical-align 属性为 vertical-align:top | bottom |middle |text-bottom 都可以解决 .
13. 如何对齐文本与文本输入框 加上 vertical-align:middle;
14.web 标准中定义 id 与 class 有什么区别吗 一 .web 标准中是不容许重复 ID 的 , 比如 div id="aa" 不容许重复 2 次 , 而 class 定义的是类 , 理论上可以无限重复 , 这样需要多次引用的定义便可以使用他 . 二 . 属性的优先级问题 ID 的优先级要高于 class, 看上面的例子 三 . 方便 JS 等客户端脚本 , 如果在页面中要对某个对象进行脚本操作 , 那么可以给他定义一个 ID, 否则只能利用遍历页面元素加上指定特定属性来找到它 , 这是相对浪费时间资源 , 远远不如一个 ID 来得简单 .
15. LI 中内容超过长度后以省略号显示的方法 此方法适用与 IE 与 OP 浏览器
16. 为什么 web 标准中 IE 无法设置滚动条颜色了 解决办法是将 body 换成 html
17. 为什么无法定义 1px 左右高度的容器 IE6 下这个问题是因为默认的行高造成的 , 解决的方法也有很多 , 例如 :overflow:hidden | zoom:0.08 | line-height:1px
18. 怎么样才能让层显示在 FLASH 之上呢 解决的办法是给 FLASH 设置透明
19. 怎样使一个层垂直居中于浏览器中 这里我们使用百分比绝对定位 , 与外补丁负值的方法 , 负值的大小为其自身宽度高度除以二
FF 与 IE
1. Div 居中问题 div设置 margin-left, margin-right 为 auto 时已经居中, IE 不行, IE 需要设定 body 居中,首先在父级元素定义 text-algin: center; 这个的意思就是在父级元素内的内容居中。
2. 链接 (a 标签 ) 的边框与背景 a 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位 , 若不设 height, 可以在 menubar 中插入一个空格。
3. 超链接访问过后 hover 样式就不出现的问题 被点击访问过的超链接样式不在具有 hover 和 active 了 , 很多人应该都遇到过这个问题 , 解决方法是改变 CSS 属性的排列顺序 : L-V-H-A Code:
4. 游标手指 cursor cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
5.UL 的 padding 与 margin ul 标签在 FF 中默认是有 padding 值的 , 而在 IE 中只有 margin 默认有值 , 所以先定义 ul{margin:0;padding:0;} 就能解决大部分问题
6. FORM 标签 这个标签在 IE 中 , 将会自动 margin 一些边距 , 而在 FF 中 margin 则是 0, 因此 , 如果想显示一致 , 所以最好在 css 中指定 margin 和 padding, 针对上面两个问题 , 我的 css 中一般首先都使用这样的样式 ul,form{margin:0;padding:0;} 给定义死了 , 所以后面就不会为这个头疼了 .
7. BOX 模型解释不一致问题 在 FF 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法: div{margin:30px!important;margin:28px;} 注意这两个 margin 的顺序一定不能写反, important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样: div {maring:30px;margin:28px} 重复定义的话按照最后一个来执行,所以不可以只写 margin:xx px!important; #box{ width:600px; //for ie6.0- w/idth:500px; //for ff+ie6.0} #box{ width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px; //for ie6.0-}
8. 属性选择器 ( 这个不能算是兼容 , 是隐藏 css 的一个 bug) p[id]{}div[id]{} 这个对于 IE6.0 和 IE6.0 以下的版本都隐藏 ,FF 和 OPera 作用 . 属性选择器和子选择器还是有区别的 , 子选择器的范围从形式来说缩小了 , 属性选择器的范围比较大 , 如 p[id] 中 , 所有 p 标签中有 id 的都是同样式的 .
9. 最狠的手段 - !important; 如果实在没有办法解决一些细节问题 , 可以用这个方法 .FF 对于 ”!important” 会自动优先解析 , 然而 IE 则会忽略 . 如下 .tabd1{ background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/ background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */} 值得注意的是,一定要将 xxxx !important 这句放置在另一句之上,上面已经提过
10.IE,FF 的默认值问题 或许你一直在抱怨为什么要专门为 IE 和 FF 写不同的 CSS ,为什么 IE 这样让人头疼,然后一边写 css ,一边咒骂那个可恶的 M$ IE. 其实对于 css 的标准支持方面, IE 并没有我们想象的那么可恶,关键在于 IE 和 FF 的默认值不一样而已,掌握了这个技巧,你会发现写出兼容 FF 和 IE 的 css 并不是那么困难,或许对于简单的 css ,你完全可以不用 ”!important” 这个东西了。 我们都知道,浏览器在显示网页的时候,都会根据网页的 css 样式表来决定如何显示,但是我们在样式表中未必会将所有的元素都进行了具体的描述,当然也没有必要那么做,所以对于那些没有描述的属性,浏览器将采用内置默认的方式来进行显示,譬如文字,如果你没有在 css 中指定颜色,那么浏览器将采用黑色或者系统颜色来显示, div 或者其他元素的背景,如果在 css 中没有被指定,浏览器则将其设置为白色或者透明,等等其他未定义的样式均如此。所以有很多东西出现 FF 和 IE 显示不一样的根本原因在于它们的默认显示不一样,而这个默认样式该如何显示我知道在 w3 中有没有对应的标准来进行规定,因此对于这点也就别去怪罪 IE 了。
11. 为什么 FF 下文本无法撑开容器的高度 标准浏览器中固定高度值的容器是不会象 IE6 里那样被撑开的 , 那我又想固定高度 , 又想能被撑开需要怎样设置呢?办法就是去掉 height 设置 min-height:200px; 这里为了照顾不认识 min-height 的 IE6 可以这样定义 : { height:auto!important; height:200px; min-height:200px; }
12.FireFox 下如何使连续长字段自动换行 众所周知 IE 中直接使用 word-wrap:break-word 就可以了 , FF 中我们使用 JS 插入的方法来解决 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/* var ōbj=document.getElementById(el); var strContent=obj.innerHTML; var strTemp=""; while(strContent.length>intLen){ strTemp+=strContent.substr(0,intLen)+" "; strContent=strContent.substr(intLen,strContent.length); } strTemp+=" "+strContent; obj.innerHTML=strTemp; } if(document.getElementById && !document.all) toBreakWord("ff", 37); /* ]]> */
13. 为什么 IE6 下容器的宽度和 FF 解释不同呢 让 FireFox 与 IE 兼容
问题的差别在于容器的整体宽度有没有将边框( border )的宽度算在其内 , 这里 IE6 解释为 200PX , 而 FF 则解释为 220PX, 那究竟是怎么导致的问题呢?大家把容器顶部的 xml 去掉就会发现原来问题出在这 , 顶部的申明触发了 IE 的 qurks mode, 关于 qurks mode 、 standards mode 的相关知识 , 请参考 :http: //www.microsoft.com/china/msdn/library/webservices/asp.net/ ASPNETusStan.mspx?mfr=true
IE6,IE7,FF IE7.0 出来了,对 CSS 的支持又有新问题。浏览器多了,网页兼容性更差了,疲于奔命的还是我们 ,为解决 IE7.0 的兼容问题,找来了下面这篇文章: 现在我大部分都是用 !important 来 hack ,对于 ie6 和 firefox 测试可以正常显示,但是 ie7 对 !important 可以正确解释,会导致页面没按要求显示!下面是三个浏览器的兼容性收集 .
第一种,是 CSS HACK 的方法 height:20px; /*For Firefox*/ *height:25px; /*For IE7 & IE6*/ _height:20px; /*For IE6*/ 注意顺序。 这样也属于 CSS HACK ,不过没有上面这样简洁。 #example { color: #333; } /* Moz */ * html #example { color: #666; } /* IE6 */ *+html #example { color: #999; } /* IE7 */
第三种, css filter 的办法,以下为经典从国外网站翻译过来的。 . 新建一个 css 样式如下: #item { width: 200px; height: 200px; background: red; } 新建一个 div, 并使用前面定义的 css 的样式: some text here
在 body 表现这里加入 lang 属性 , 中文为 zh : 现在对 div 元素再定义一个样式: *:lang(en) #item{ background:green !important; } 这样做是为了用 !important 覆盖原来的 css 样式 , 由于 :lang 选择器 ie7.0 并不支持 , 所以对这句话不会有任何作用 , 于是也达到了 ie6.0 下同样的效果 , 但是很不幸地的是 ,safari 同样不支持此属性 , 所以需要加入以下 css 样式: #item:empty { background: green !important } :empty选择器为 css3 的规范 , 尽管 safari 并不支持此规范 , 但是还是会选择此元素 , 不管是否此元素存在 , 现在绿色会现在在除 ie 各版本以外的浏览器上。 对 IE6 和 FF 的兼容可以考虑以前的 !important 个人比较喜欢用第一种,简洁,兼容性比较好。
div+css 网站布局设计常见错误大全
div+css 是网站设计标准(或称 “WEB 标准 ” )中常用的术语之一,通常为了说明与 HTML 网页设计语言中的表格( table )定位方式的区别,因为 XHTML 网站设计标准中,不再使用表格定位技术,而是采用 css+div 的方式实现各种定位。应用应用 DIV+CSS 编码时很容易犯一些错误。本文列举了一些常见的错误:
1. 检查 HTML 元素是否有拼写错误、是否忘记结束标记
即使是老手也经常会弄错 div 的嵌套关系。可以用 dreamweaver 的验证功能检查一下有无错误。
2. 检查 CSS 是否正确
检查一下有无拼写错误、是否忘记结尾的 } 等。可以利用 CleanCSS 来检查 CSS 的拼写错误。 CleanCSS 本是为 CSS 减肥的工具,但也能检查出拼写错误。
3. 确定错误发生的位置
如果错误影响了整体布局,则可以逐个删除 div 块,直到删除某个 div 块后显示恢复正常,即可确定错误发生的位置。
4. 利用 border 属性确定出错元素的布局特性
使用 float 属性布局一不小心就会出错。这时为元素添加 border 属性确定元素边界,错误原因即水落石出。
5. float 元素的父元素不能指定 clear 属性
MacIE 下如果对 float 的元素的父元素使用 clear 属性,周围的 float 元素布局就会混乱。这是 MacIE 的著名的 bug ,倘若不知道就会走弯路。
6. float 元素务必指定 width 属性
很多浏览器在显示未指定 width 的 float 元素时会有 bug 。所以不管 float 元素的内容如何,一定要为其指定 width 属性。
另外指定元素时尽量使用 em 而不是 px 做单位。
7. float 元素不能指定 margin 和 padding 等属性
IE 在显示指定了 margin 和 padding 的 float 元素时有 bug 。因此不要对 float 元素指定 margin 和 padding 属性 ( 可以在 float 元素内部嵌套一个 div 来设置 margin 和 padding) 。也可以使用 hack 方法为 IE 指定特别的值。
8. float 元素的宽度之和要小于 100%
如果 float 元素的宽度之和正好是 100% ,某些古老的浏览器将不能正常显示。因此请保证宽度之和小于 99% 。
9. 是否重设了默认的样式 ?
某些属性如 margin 、 padding 等,不同浏览器会有不同的解释。因此最好在开发前首先将全体的 margin 、 padding 设置为 0 、列表样式设置为 none 等。
10. 是否忘记了写 DTD?
如果无论怎样调整不同浏览器显示结果还是不一样,那么可以检查一下页面开头是不是忘了写下面这行 DTD 。
DIV CSS 完美兼容 IE6/IE7/FF 的通用方法
关于 CSS 对各个浏览器兼容已经是老生常谈的问题了 , 网络上的教程遍地都是 . 以下内容没有太多新颖 , 纯属个人总结 , 希望能对初学者有一定的帮助 .
一、 CSS HACK
以下两种方法几乎能解决现今所有 HACK.
1, !important
随着 IE7 对 !important 的支持 , !important 方法现在只针对 IE6 的 HACK.( 注意写法 . 记得该声明位置需要提前 .)
以下为引用的内容:
#wrapper
{
width: 100px!important; /* IE7+FF */
width: 80px; /* IE6 */
}
2, IE6/IE77 对 FireFox
以下为引用的内容:
*+html 与 *html 是 IE 特有的标签 , firefox 暂不支持 . 而 *+html 又为 IE7 特有标签 .
#wrapper
{
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width: 80px;} /* ie6 fixed */
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */
}
注意 :
*+html 对 IE7 的 HACK 必须保证 HTML 顶部有如下声明:
"http://www.w3.org/TR/html4/loose.dtd">
二、万能 float 闭合
关于 clear float 的原理可参见 [How To Clear Floats 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 */
三、其他兼容技巧
1, FF 下给 div 设置 padding 后会导致 width 和 height 增加 , 但 IE 不会 .( 可用 !important 解决 )
2, 居中问题 .
1). 垂直居中 . 将 line-height 设置为 当前 div 相同的高度 , 再通过 vertical-align: middle.( 注意内容不要换行 .)
2). 水平居中 . margin: 0 auto;( 当然不是万能 )
3, 若需给 a 标签内内容加上 样式 , 需要设置 display: block;( 常见于导航标签 )
4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float 的 div 在 ie 下 margin 加倍等问题 .
5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明 , 以避免不必要的麻烦 . ( 常见于导航标签和内容列表 )
6, 作为外部 wrapper 的 div 不要定死高度 , 最好还加上 overflow: hidden. 以达到高度自适应 .
7, 关于手形光标 . cursor: pointer. 而 hand 只适用于 IE.
1 针对 firefox ie6 ie7 的 css 样式
现在大部分都是用 !important 来 hack ,对于 ie6 和 firefox 测试可以正常显示,
但是 ie7 对 !important 可以正确解释,会导致页面没按要求显示!找到一个针
对 IE7 不错的 hack 方式就是使用 “*+html” ,现在用 IE7 浏览一下,应该没有问题了。
现在写一个 CSS 可以这样:
以下为引用的内容:
#1 { color: #333; } /* Moz */
* html #1 { color: #666; } /* IE6 */
*+html #1 { color: #999; } /* IE7 */
那么在 firefox 下字体颜色显示为 #333 , IE6 下字体颜色显示为 #666 , IE7 下字体颜色显示为 #999 。
2 css 布局中的居中问题
主要的样式定义如下:
body {TEXT-ALIGN: center;}
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }
说明:
首先在父级元素定义 TEXT-ALIGN: center; 这个的意思就是在父级元素内的内容居中;对于 IE 这样设定就已经可以了。
但在 mozilla 中不能居中。解决办法就是在子元素定义时候设定时再加上 “MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”
需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个 DIV 里,你可以依次拆出多个 div ,
只要在每个拆出的 div 里定义 MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。
3 盒模型不同解释
#box{ width:600px; //for ie6.0- w/idth:500px; //for ff+ie6.0}
#box{ width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px; //for ie6.0-}
4 浮动 ie 产生的双倍距离
#box{ float:left; width:100px; margin:0 0 0 100px; // 这种情况之下 IE 会产生 200px 的距离 display:inline; // 使浮动忽略 }
这里细说一下 block,inline 两个元素 ,Block 元素的特点是 : 总是在新行上开始 , 高度 , 宽度 , 行高 , 边距都可以控制 ( 块元素 );Inline 元素的特点是 : 和其他元素在同一行上 ,... 不可控制 ( 内嵌元素 );
#box{ display:block; // 可以为内嵌元素模拟为块元素 display:inline; // 实现同一行排列的的效果 diplay:table;
IE 不认得 min- 这个定义,但实际上它把正常的 width 和 height 当作有 min 的情况来使。这样问题就大了,如果只用宽度和高度,
正常的浏览器里这两个值就不会变,如果只用 min-width 和 min-height 的话, IE 下面根本等于没有设置宽度和高度。
比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样:
#box{ width: 80px; height: 35px;}html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}
6 页面的最小宽度
min-width 是个非常方便的 CSS 命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但 IE 不认得这个,
而它实际上把 width 当做最小宽度来使。为了让这一命令在 IE 上也能用,可以把一个 放到 标签下,然后为 div 指定一个类:
然后 CSS 这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}
第一个 min-width 是正常的;但第 2 行的 width 使用了 Javascript ,这只有 IE 才认得,这也会让你的 HTML 文档不太正规。它实际上通过 Javascript 的判断来实现最小宽度。
7 清除浮动
.hackbox{ display:table; // 将对象作为块元素级的表格显示 } 或者 .hackbox{ clear:both;}
或者加入 :after (伪对象) , 设置在对象后发生的内容,通常和 content 配合使用, IE 不支持此伪对象,非 Ie 浏览器支持,
所 以并不影响到 IE/WIN 浏览器。这种的最麻烦的 ......#box:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden;}
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 代码
9 属性选择器 ( 这个不能算是兼容 , 是隐藏 css 的一个 bug)
p[id]{}div[id]{}
这个对于 IE6.0 和 IE6.0 以下的版本都隐藏 ,FF 和 OPera 作用
属性选择器和子选择器还是有区别的 , 子选择器的范围从形式来说缩小了 , 属性选择器的范围比较大 , 如 p[id] 中 , 所有 p 标签中有 id 的都是同样式的 .
10 IE 捉迷藏的问题
当 div 应用复杂的时候每个栏中又有一些链接, DIV 等这个时候容易发生捉迷藏的问题。
有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。
解决办法:对 #layout 使用 line-height 属性 或者给 #layout 使用固定高和宽。页面结构尽量简单。
11 高度不适应
高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用
margin 或 paddign 时。
例:
CSS : #box {background-color:#eee; }
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }
解决方法:在 P 对象上下各加 2 个空的 div 对象 CSS 代码: .1{height:0px;overflow:hidden;} 或者为 DIV 加上 border 属性。
六、 CSS 兼容要点分析 IE vs FF
CSS 兼容要点:
DOCTYPE 影响 CSS 处理
FF: div 设置 margin-left, margin-right 为 auto 时已经居中 , IE 不行
FF: body 设置 text-align 时 , div 需要设置 margin: auto( 主要是 margin-left,margin-right) 方可居中
FF: 设置 padding 后 , div 会增加 height 和 width, 但 IE 不会 , 故需要用 !important 多设一个 height 和 width
FF: 支持 !important, IE 则忽略 , 可用 !important 为 FF 特别设置样式
div 的垂直居中问题 : vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位 , 若不设 height, 可以在 menubar 中插入一个空格 XHTML+CSS 兼容性解决方案小集
使用 XHTML + CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找 ^^
1 、在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:
div{margin:30px!important;margin:28px;}
注意这两个 margin 的顺序一定不能写反,据阿捷的说法 !important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样:
div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important;
2 、 IE5 和 IE6 的 BOX 解释不一致 IE5 下 div{width:300px;margin:0 10px 0 10px;}div 的宽度会被解释为 300px-10px( 右填充 )-10px( 左填充 ) 最终 div 的宽度为 280px ,而在 IE6 和其他浏览器上宽度则 是以 300px+10px( 右填充 )+10px( 左填充 )=320px 来计算的。这时我们可以做如下修改
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
,关于这个 /**/ 是什么我也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持,如果有人理解的话,请告诉我一声,谢了!:)
3 、 ul 标签在 Mozilla 中默认是有 padding 值的 , 而在 IE 中只有 margin 有值所以先定义
ul{margin:0;padding:0;}
就能解决大部分问题
4 、关于脚本,在 xhtml1.1 中不支持 language 属性,只需要把代码改为
< type="text/java">
就可以了
七、 10 个你未必知道的 CSS 技巧
1 、 CSS 字体属性简写规则
一般用 CSS 设定字体属性是这样做的:
以下为引用的内容:
font-weight:bold;
font-style:italic;
font-varient:small-caps;
font-size:1em;
line-height:1.5em;
font-family:verdana,sans-serif;
但也可以把它们全部写到一行上去:
font: bold italic small-caps 1em/1.5em verdana,sans-serif;
真不错!只有一点要提醒的:这种简写方法只有在同时指定 font-size 和 font-family 属性时才起作用。而且,如果你没有设定 font-weight, font-style, 以及 font-varient ,他们会使用缺省值,这点要记上。
2 、同时使用两个类
一般只能给一个元素设定一个类( Class ),但这并不意味着不能用两个。事实上,你可以这样:
...
同时给 P 元素两个类,中间用空格格开,这样所有 text 和 side 两个类的属性都会加到 P 元素上来。如果它们两个类中的属性有冲突的话,后设置的起作用,即在 CSS 文件中放在后面的类的属性起作用。
补充:对于一个 ID ,不能这样写 ...
也不能这样写
3 、 CSS border 的缺省值
通常可以设定边界的颜色,宽度和风格,如:
border: 3px solid #000
这位把边界显示成 3 像素宽,黑色,实线。但实际上这里只需要指定风格即可。
如果只指定了风格,其他属性就会使用缺省值。一般地, Border 的宽度缺省是 medium ,一般等于 3 到 4 个像素;缺省的颜色是其中文字的颜色。如果这个值正好合适的话,就不用设那么多了。
4 、 CSS 用于文档打印
许多网站上都有一个针对打印的版本,但实际上这并不需要,因为可以用 CSS 来设定打印风格。
也就是说,可以为页面指定两个 CSS 文件,一个用于屏幕显示,一个用于打印:
第 1 行就是显示,第 2 行是打印,注意其中的 media 属性。
但应该在打印 CSS 中写什么东西呢?你可以按设计普通 CSS 的方法来设定它。设计的同时就可以把这个 CSS 设成显示 CSS 来检查它的效果。也许你会使用 display: none 这个命令来关掉一些装饰图片,再关掉一些导航按钮。要想了解更多,可以看 “ 打印差异 ” 这一篇。
5 、图片替换技巧
一般都建议用标准的 HTML 来显示文字,而不要使用图片,这样不但快,也更具可读性。但如果你想用一些特殊字体时,就只能用图片了。
比如你想整个卖东西的图标,你就用了这个图片:
这当然可以,但对搜索引擎来说,和正常文字相比,它们对 alt 里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的:
Buy widgets
但这样就没有特殊字体了。要想达到同样效果,可以这样设计 CSS :
h1 { background: url(/blog/widget-image.gif) no-repeat; height: image height text-indent: -2000px }
注意把 image height 换成真的图片的高度。这里,图片会当作背景显示出来,而真正的文字由于设定了 -2000 像素这个缩进,它们会出现在屏幕左边 2000 点的地方,就看不见了。但这对于关闭图片的人来说,可能全部看不到了,这点要注意。
6 、 CSS box 模型的另一种调整技巧
这个 Box 模型的调整主要是针对 IE6 之前的 IE 浏览器的,它们把边界宽度和空白都算在元素宽度上。比如:
#box { width: 100px; border: 5px; padding: 20px }
这样调用它:
...
这时盒子的全宽应该是 150 点,这在除 IE6 之前的 IE 浏览器之外的所有浏览器上都是正确的。但在 IE5 这样的浏览器上,它的全宽仍是 100 点。可以用以前人发明的 Box 调整方法来处理这种差异。
但用 CSS 也可以达到同样的目的,让它们显示效果一致。
#box { width: 150px } #box div { border: 5px; padding: 20px }
这样调用:
这样,不管什么浏览器,宽度都是 150 点了。
7 、块元素居中对齐
如果想做个固定宽度的网页并且想让网页水平居中的话,通常是这样:
#content { width: 700px; margin: 0 auto }
你会使用 来围上所有元素。这很简单,但不够好, IE6 之前版本会显示不出这种效果。改 CSS 如下:
body { text-align: center } #content { text-align: left; width: 700px; margin: 0 auto }
这会把网页内容都居中,所以在 Content 中又加入了
text-align: left 。
8 、用 CSS 来处理垂直对齐
垂直对齐用表格可以很方便地实现,设定表格单元 vertical-align: middle 就可以了。但对 CSS 来说这没用。如果你想设定一个导航条是 2em 高,而想让导航文字垂直居中的话,设定这个属性是没用的。
CSS 方法是什么呢?对了,把这些文字的行高设为 2em : line-height: 2em ,这就可以了。
9 、 CSS 在容器内定位
CSS 的一个好处是可以把一个元素任意定位,在一个容器内也可以。比如对这个容器:
#container { position: relative }
这样容器内所有的元素都会相对定位,可以这样用:
如果想定位到距左 30 点,距上 5 点,可以这样:
#navigation { position: absolute; left: 30px; top: 5px }
当然,你还可以这样:
margin: 5px 0 0 30px
注意 4 个数字的顺序是:上、右、下、左。当然,有时候定位的方法而不是边距的方法更好些。
10 、直通到屏幕底部的背景色
在垂直方向是进行控制是 CSS 所不能的。如果你想让导航栏和内容栏一样直通到页面底部,用表格是很方便的,但如果只用这样的 CSS :
#navigation { background: blue; width: 150px }
较短的导航条是不会直通到底部的,半路内容结束时它就结束了。该怎么办呢?
不幸的是,只能采用欺骗的手段了,给这较短的一栏加上个背景图,宽度和栏宽一样,并让它的颜色和设定的背景色一样。
body { background: url(/blog/blue-image.gif) 0 0 repeat-y }
此时不能用 em 做单位,因为那样的话,一旦读者改变了字体大小,这个花招就会露馅,只能使用 px 。
HTML 的 SPAN 和 DIV 的区别
SPAN 和 DIV 的区别在于, DIV(division) 是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而 SPAN 是行内元素, SPAN 的前后是不会换行的,它没有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用 SPAN 。
SPAN 标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕你的 HTML 代码中的其它元素,这样你就可以为它们指定样式了。在此例中, 标识符允许你将一个段落分成不同的部分。 还有一个标识符具有类似的功能, DIV
也被用来在 HTML 文件中建立逻辑部分。但与 SPAN
不同, 工作于文本块一级,它在它所包含的 HTML 元素的前面及后面都引入了行分隔。
SPAN 标记有一个重要而实用的特性,即它什么事也不会做,它的唯一目的就是围绕你的 HTML 代码中的其它元素,这样你就可以为它们指定样式了。在此例中,标识符允许你将一个段落分成不同的部分。 还有一个标识符具有类似的功能, DIV 也被用来在 HTML 文件中建立逻辑部分。但与 SPAN 不同, 工作于文本块一级,它在它所包含的 HTML 元素的前面及后面都引入了行分隔。
div 布局时不能居中、居中失灵的解决
一般情况下, div 不能居中, div 居中失灵是因为页面没有声明引起的:加上
即可
使用 margin-left:auto;margin-right:auto; 可以让你的 div 居中对齐。如
.style{margin-left:auto;margin-right:auto;}
缩写形式为:
.style{margin:0 auto;}
数字 0 表示上下边距是 0 。可以按照需要设置成不同的值。
查看下面的例子:
以下为引用的内容:
居中 div 演示效果
居中 div 演示效果
注意,需要加上上面的那句
才能生效,要是不想要这句的话,也可以给 body 加一个属性:
body{text-align:center;}
另外,让 div 内的内容(包括文字及图片)居中的代码是: text-align:center;
解决 Flash 在 Div 中无法居中
以下为引用的内容:
/* ----- 页面统一设置 ----- */
html,body{ margin:0px; padding:0px; background:url(images/boydBg.gif) repeat-x;}
img{ border:0px; }
/* ----- 开始顶部统一设置 ----- */
#head{ width:1000px; height:364px; text-align:center; }
#logo{ height:110px; background-color:#0099CC; background:url(images/home01.jpg) repeat-x; text-align:right; padding-right:420px;}
#nav{ height:54px;}
#banner{ width:950px; height:200px; text-align:center;}
/* ----- 顶部设置完毕 ----- */
#banner{margin:0 auto;} ----- 用这个动画是距中了
#head{margin:0 auto;} ------ 用这个整个页面都距中啦 ~~
FireFox 和 IE 浏览器对于 DIV+CSS 设计的区别及对策
1 、实际像素
IE/Opera :对象的实际宽度 = (margin-left) + width + (margin-right)
Firefox/Mozilla :对象的实际宽度 = (margin-left) + (border-left-width) + (padding- left) + width + (padding-right) + (border-right-width) + (margin-right)
所以排列好及列的表格时 ie 和 ff 显示宽度稍有区别
2 、水平居中
问题: div 里的内容, ie 默认为 center ,而 ff 默认 left
解决: mairgin:0px auto;
3 、高度问题
问题:如果设置了一个 DIV 的高度,当 DIV 里实际内容大于所设高度, ie 会自动拉伸以适应 DIV 容器大小, ff 会固定 DIV 的告诉,超过部分超出 DIV 底线以外,出现和下面的内容重叠的现象
解决:控制恰当的高度,或者不写,让浏览器自动调节高度,或者设置 overflow:hidden;
4 、 clear:both;
问题:如果上面用 float 控制了 n 列 DIV ,下面 ie 会自动检测自动排列, ff 则可能很不老实,到处乱动
解决: float 结束后的下一个标签加 clear:both; 以结束 float 的控制
5 、最大 / 小宽度问题
问题: min-width,max-width 只是 ff 的命令,如何让 ie 实现同样的效果
解决: ie 不认识 min- 和 max- ,实际 ie 认为 min-width 、 max-width 和 width 效果一样,可以用下面方法解决
#cctext{
min-width: 700px;
max-width: 1000px;
width:expression(document.body.clientWidth<700 ? "700px" : document.body.clientWidth>1000 ? "1000px" : "auto");
}
6 、 !important 支持
问题: ff 支持 ie6.0 不支持
解决:无。 ie 会忽略。
7 、游标状态
问题: cursor:hand; 仅 ie 支持,显示手指状态
解决:使用 cursor:pointer;ie 和 ff 都支持
8 、单位问题
问题:任何距离的数值 ie 可以不加单位, ff 必须要求写单位( 0 除外)
解决:写全单位如 padding:0px;
查看文章
/zz/div+css - Firefox 和 IE 浏览器兼容问题 - padding-right 在 IE6 下导致抖动 2008-01-11 17:33 由于 IE6 的盒模型计算缺陷, padding-right 在特定的情况会下导致抖动。
[ 出现抖动的代码 ]
最近在写一个 Div+Css 布局的网站首页,以前写的页面都统一 width:900px; 不存在什么布局呀 什么 float 的设置。现在没办法呀!要对页面进行切割,分块。幸好,有点 css 的基础,不过用起来就比较郁闷了。在 ie 和 firefox 下,相同的属性值往往会有不同的显示效果。没办法 要兼容浏览器 只得一个一个 bug 去找。但完全兼容浏览器是无法做到的,所以也只能将个大概的效果展示出来,不要偏差太大太明显就行。
首先,需要提出的是 float 这个浮动属性,这是 div+css 布局的关键所在。 float:left;float:right; 是常用的浮动属性。为了使 div 能在一行排列,不得补用到它们。呵呵!不就是个 float 吗?这有什么好提的,要浮动我就 float 一下呀。哎!话是这么说,但真正用到时却出问题了。在 ie 下,只要前一个 div 有 float:left; 后面的 div 宽度不超过(总 body 的宽度) - (前一个 div 的宽度),后面的 div 就自动浮动,并排列在同一行。 ie 和 firefox 下,这点效果是一样。好,接着往下,下一行也这样布局,就分两栏吧。
#div1{}{width:200px;height:80px;float:left;border:1px solid blue;}
#div2{}{width:600px;height:80px;border:1px solid blue;}
这样的布局,在 ie 下和火狐下的显示效果就不同了 在 firefox 下的 margin-top:20px; 没效果。。。。
在 ie 下 div3 的 margin-top 有效果,而在 firefox 下却没效果。为什么?翻来覆去的想,终究没有想明白。没办法了,后来我有改 css. 偶然,给 div2 加上了 float:left 属性,然后 margin-top:20px 都有效果了。郁闷吧 呵呵 不过还是没弄明白为什么会这样,问题解决了就 ok 了!
下一个问题是 ul 的问题。在 ie 下和 firefox 下注意了 ul{margin-left:10px;} 的效果是不同的,这样设置的效果才会相同
ul{padding:0;margin-left:10px;} 在火狐下默认的 padding!=0 所以需要这样来设置下 ...
呵呵 愚昧的个人见解 !
div+css 扩展框问题浮动下降 IE 与 Firefox 兼容性整理 2008-08-14 10:57div+css 扩展框问题浮动下降 IE 与 Firefox 兼容性整理
图文混排 容易导致 扩展框问题 .
扩展框问题
这样排版容易导致 扩展框问题 .
尽量定义宽高给定值
* 浮动下降问题 [size=+0]
加上 { float : left ;} 即可 ```
IE6 的双倍边距 BUG
解决办法是加上 display:inline
IE6 下为什么图片下方有空隙产生
解决这个 BUG 的方法也有很多,可以是改变 html 的排版,或者设置 img 为 display:block 或者设置 vertical-align 属性为 vertical-align:top | bottom |middle |text-bottom 都可以解决 .
IE6 下这两个层中间怎么有间隙
这个 IE 的 3PX BUG 也是经常出现的,解决的办法是给 .right 也同样浮动 float:left 或者相对 IE6 定义 .left
如何对齐文本与文本输入筐
遇到此种问题,设置文本框的 vertical-align:middle 就可以了
为什么 FF 下文本无法撑开容器的高度
[size=+0]
标准浏览器中固定高度值的容器是不会象 IE6 里那样被撑开的 , 那我又想固定高度,又想能被撑开需要怎样设置呢?办法就是去掉 height 设置 min-height:200px; 这里为了照顾不认识 min-height 的 IE6 可以这样定义:
{
height:auto!important;
height:200px;
min-height:200px;
}
怎么样才能让层显示在 FLASH 之上呢
解决的办法是给 FLASH 设置透明 或者
怎样使一个层垂直居中于浏览器中
使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二 .
方法二 : 首先在父级元素定义 TEXT-ALIGN: center; 这个的意思就是在父级元素内的内容居中;对于 IE 这样设定就已经可以了。
但在 mozilla 中不能居中。解决办法就是在子元素定义时候设定时再加上 “MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”
需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个 DIV 里,你可以依次拆出多个 div ,
只要在每个拆出的 div 里定义 MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。
{
width:300px;
margin-left:auto;
margin-right:auto;
}
针对 firefox ie6 ie7 的 css 样式
现在大部分都是用 !important 来 hack ,对于 ie6 和 firefox 测试可以正常显示,
但是 ie7 对 !important 可以正确解释,会导致页面没按要求显示!找到一个针
对 IE7 不错的 hack 方式就是使用 “*+html” ,现在用 IE7 浏览一下,应该没有问题了。
现在写一个 CSS 可以这样:
#1 { color: #333; } /* Moz */
* html #1 { color: #666; } /* IE6 */
*+html #1 { color: #999; } /* IE7 */
那么在 firefox 下字体颜色显示为 #333 , IE6 下字体颜色显示为 #666 , IE7 下字体颜色显示为 #999 。
页面的最小宽度
min-width 是个非常方便的 CSS 命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但 IE 不认得这个,
而它实际上把 width 当做最小宽度来使。为了让这一命令在 IE 上也能用,可以把一个 放到 标签下,然后为 div 指定一个类:
然后 CSS 这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}
第一个 min-width 是正常的;但第 2 行的 width 使用了 Javascript ,这只有 IE 才认得,这也会让你的 HTML 文档不太正规。它实际上通过 Javascript 的判断来实现最小宽度。
属性选择器 ( 这个不能算是兼容 , 是隐藏 css 的一个 bug)
p[id]{}div[id]{}
这个对于 IE6.0 和 IE6.0 以下的版本都隐藏 ,FF 和 OPera 作用
属性选择器和子选择器还是有区别的 , 子选择器的范围从形式来说缩小了 , 属性选择器的范围比较大 , 如 p[id] 中 , 所有 p 标签中有 id 的都是同样式的 .
最狠的手段 - !important;
如果实在没有办法解决一些细节问题 , 可以用这个方法 .FF 对于 ”!important” 会自动优先解析 , 然而 IE 则会忽略 .
关于容器的包涵关系
很多时候,尤其是容器内有平行布局,例如两、三个 float 的 div 时,宽度很容易出现问题。在 IE 中,外层的宽度会被内层更宽的 div 挤破。一定要用 Photoshop 或者 Firework 量取像素级的精度。
1. 写两句代码来控制一个属性,区别 Firefox 与 IE :
backgroundrange; *background:green;
// 这一句代码写出来时,你用 Firefox 浏览,会发现背景是橙色的,而 IE 里却是绿色的,很简单,因为 Firefox 不能识别 * ,而 IE6 , IE7 都可以识 *, 标准浏览器 ( 如 Firefox,Opera,Netscape) 不能识别 *; 。
2. 写两句代码来控制一个属性,区别 IE7 与 IE6 :
background:green !important;background:blue;
// 这一句代码写出来时,你用 IE7 浏览,会发现,写了该代码的区域背景是绿色的,如果用 IE6 浏览,却是蓝色的,这是因为 IE7 能识别 !important* ,一但识别了,就执行,忽略了后面的那一句,但 IE6 却不能识别 !important ,所以前面部分跳过,直接执行了后半部份 .
3. 写三句代码来控制一个属性,区别 Firefox , IE7 , IE6 :
backgroundrange;*background:green !important;*background:blue;
// 这一句会使在 Firefox 在,背景呈橙色, IE7 中为绿色, IE6 中为蓝色,道理和前面一样, Firefox 不能识别 * ,所以后面两句都不执行,直接执行第一句, IE7 当然也能执行第一行代码,但是因为第二句,他也能识别,所以就执行了第二句代码,把前面的效果给过滤了,而最后一句, IE7 是不能识别的。 IE6 不能识别 !imprtant ,本来运行了第一句代码了,第二句不能识别,那就理所当然的执行了最后一句。
注: IE 都能识别 *; 标准浏览器 ( 如 Firefox,Opera,Netscape) 不能识别 * ; IE6 能识别 * ,但不能识别 !important,IE7 能识别 * ,也能识别 !important;FF 不能识别 * ,但能识别 !important;
div+css 在 FireFox 里居中的问题。 2008-07-15 15:31 尽管有 CSS 的 vertical-align 特性,但是并不能有效解决未知高度的垂直居中问题(在一个 DIV 标签里有未知高度的文本或图片的情况下)。
标准浏览器如 Mozilla, Opera, Safari 等 . ,可将父级元素显示方式设定为 TABLE(display: table;) ,内部子元素定为 table-cell (display: table-cell), 通过 vertical-align 特性使其垂直居中,但非标准浏览器是不支持的。
非标准浏览器只能在子元素里设距顶部 50% ,里面再套个元素距顶部 -50% 来抵消。
解决代码如下:
CSS:
body {padding: 0; margin: 0;}body,html{height: 100%;}
#outer {height: 100%; overflow: hidden; position: relative;width: 100%; background:ivory;}
#outer[id] {display: table; position: static;}
#middle {position: absolute; top: 50%;} /* for explorer only*/
#middle[id] {display: table-cell; vertical-align: middle; position: static;}
#inner {position: relative; top: -50%;width: 400px;margin: 0 auto;} /* for explorer only */
div.greenBorder {border: 1px solid green; background-color: ivory;}
以上 CSS 代码的优点是没有 hacks ,采用了 IE 不支持的 CSS2 选择器 #value[id] 。
CSS2 选择器 #value[id] 相当于选择器 #value ,但是 Internet Explorer 不支持这种类型的选择器。同样地 .value[class] ,相当于 .value, 这些只有标准浏览器能读懂。
div+css 实现 Firefox 和 IE6 兼容的垂直居中 2008 年 03 月 10 日 星期一 02:06div+css 实现 Firefox 和 IE6 兼容的垂直居中
Firefox 中使用 display: table-cell; vertical-align: middle; 可以实现 div 垂直居中,而 IE6 中则需要借助 IE6 中 css 的特点实现垂直居中。为了实现 Firefox 和 IE6 兼容的垂直居中,还需要 借助于 !important 标记。 Firefox 支持 !important 标记,而 IE6 忽略 !important 标记,因此可以使用 ! important 标记区别 Firefox 和 IE6 。
[ 示例代码 ]
垂直居中, Firefox only
垂直居中, Firefox only
垂直居中, Firefox only
垂直居中, IE6 only
垂直居中, IE6 only
垂直居中, IE6 only
垂直居中, Firefox IE6 only
垂直居中, Firefox IE6 only
垂直居中, Firefox IE6 only
IE VS FireFox
CSS 兼容要点: DOCTYPE 影响 CSS 处理
FF: div 设置 margin-left, margin-right 为 auto 时已经居中 , IE 不行
FF: body 设置 text-align 时 , div 需要设置 margin: auto( 主要是 margin-left,margin-right) 方可居中
FF: 设置 padding 后 , div 会增加 height 和 width, 但 IE 不会 , 故需要用 !important 多设一个 height 和 width
FF: 支持 !important, IE 则忽略 , 可用 !important 为 FF 特别设置样式
div 的垂直居中问题 : vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位 , 若不设 height, 可以在 menubar 中插入一个空格 XHTML+CSS 兼容性解决方案小集
使用 XHTML+CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面。
1. 在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{margin:30px!important;margin:28px;}
注意这两个 margin 的顺序一定不能写反,据阿捷的说法 !important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样:
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important;
2.IE5 和 IE6 的 BOX 解释不一致 IE5 下 div{width:300px;margin:0 10px 0 10px;}div 的宽度会被解释为 300px- 10px( 右填充 )-10px( 左填充 ) 最终 div 的宽度为 280px ,而在 IE6 和其他浏览器上宽度则 是以 300px+10px( 右填充 )+10px ( 左填充 )=320px 来计算的。这时我们可以做如下修改:
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
关于这个 /**/ 是什么我也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持,如果有人理解的话,请告诉我一声,谢了!:)
3.ul 标签在 Mozilla 中默认是有 padding 值的 , 而在 IE 中只有 margin 有值所以先定义
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
ul{margin:0;padding:0;}
就能解决大部分问题
4. 关于脚本,在 xhtml1.1 中不支持 language 属性,只需要把代码改为
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div+css 编辑网页 firefox 下错位的解决方法 {clear 和 float 属性 } 好不容易编辑好的网页导航,在 FIREFOX 下测试发现错位的厉害,毫无美感可言 { 原因找出,原来是当时测试的一个代码,测试完了忘记改了过来,额的个神,用了我一个多小时 }
没办法,做为使用比较多的浏览器之一,不能不考虑适应它。出现错位混乱的原因主要是因为 IE 和 FIREFOX 的标准不同,某些属性的释义出现相差所致。
没办法只好边学边用了。 clear 和 float 属性
在 css 文件里定义的容器时加入 clear 属性来控制页面
clear 属性说明:该属性的值指出了不允许有浮动对象的边。
注意这里要注意和 float 属性的区分
float :该属性的值指出了对象是否及如何浮动。
当该属性不等于 none 引起对象浮动时,对象将被视作块对象 (block-level) ,即 display 属性等于 block 。也就是说,浮动对象的 display 特性将被忽略。
clear 属性支持的参数有下面 4 个:
none : 允许两边都可以有浮动对象
both : 不允许有浮动对象
left : 不允许左边有浮动对象
right : 不允许右边有浮动对象
而 float 属性支持的参数有下面 3 个:
none : 对象不浮动
left : 对象浮在左边
right : 对象浮在右边 DOCTYPE 影响 CSS 处理
FF: div 设置 margin-left, margin-right 为 auto 时已经居中 , IE 不行
FF: body 设置 text-align 时 , div 需要设置 margin: auto( 主要是 margin-left,margin-right) 方可居中
FF: 设置 padding 后 , div 会增加 height 和 width, 但 IE 不会 , 故需要用 !important 多设一个 height 和 width
FF: 支持 !important, IE 则忽略 , 可用 !important 为 FF 特别设置样式
div 的垂直居中问题 : vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位 , 若不设 height, 可以在 menubar 中插入一个空格
XHTML+CSS 兼容性解决方案小集
使用 XHTML + CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找 ^^
1. 在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:
div{margin:30px!important;margin:28px;} 注意这两个 margin 的顺序一定不能写反,据阿捷的说法 !important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样:
div{maring:30px;margin:28px} 重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important;
2.IE5 和 IE6 的 BOX 解释不一致 IE5 下 div{width:300px;margin:0 10px 0 10px;}div 的宽度会被解释为 300px-10px( 右填充 )-10px( 左填充 ) 最终 div 的宽度为 280px ,而在 IE6 和其他浏览器上宽度则 是以 300px+10px( 右填充 )+10px( 左填充 )=320px 来计算的。这时我们可以做如下修改
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} ,关于这个 /**/ 是什么我也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持,如果有人理解的话,请告诉我一声,谢了!:)
3.ul 标签在 Mozilla 中默认是有 padding 值的 , 而在 IE 中只有 margin 有值所以先定义
ul{margin:0;padding:0;} 就能解决大部分问题
4. 关于脚本,在 xhtml1.1 中不支持 language 属性,只需要把代码改为
1 、 div+css 如何使网站兼容不同字体
使用 utf-8 内码进行编写
( 右键 - 编码 - 选择一种其它国家的编码 - 查看效果 )
asp 代码如下 :
<%
function chinese2unicode(Str)
dim i
dim Str_one
dim Str_unicode
for i=1 to len(Str)
Str_one=Mid(Str,i,1)
Str_unicode=Str_unicode&chr(38)
Str_unicode=Str_unicode&chr(35)
Str_unicode=Str_unicode&chr(120)
Str_unicode=Str_unicode& Hex(ascw(Str_one))
Str_unicode=Str_unicode&chr(59)
next
Response.Write Str_unicode
end function
%>
使用方法 :
<%=chinese2unicode(" 显示的内容 ") %>
2 、关于 div+css 兼容 IE 和 firefox 的问题
好不容易建立的 div+css 网页完全符合 W3C 标准。在 ie7 下显示非常完美,用 firefox 一测试,乖乖一探糊涂惨不忍睹。经过一番研究发现兼容很
简单。
1 、增加 div {overflow: hidden;},目的就是让 div 自动适应内容高度
2 、横排的 div 外套 div
另外 设定
ul {
margin: 0px;
padding: 0px;
}
是消除 li 前面的空格
3 、 div+css 兼容性问题
CSS 兼容要点: DOCTYPE 影响 CSS 处理
FF: div 设置 margin-left, margin-right 为 auto 时已经居中 , IE 不行
FF: body 设置 text-align 时 , div 需要设置 margin: auto( 主要是 margin-left,margin-right) 方可居中
FF: 设置 padding 后 , div 会增加 height 和 width, 但 IE 不会 , 故需要用 !important 多设一个 height 和 width
FF: 支持 !important, IE 则忽略 , 可用 !important 为 FF 特别设置样式
div 的垂直居中问题 : vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是
要控制内容不要换行
cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了
避免底边显示错位 , 若不设 height, 可以在 menubar 中插入一个空格 XHTML+CSS 兼容性解决方案小集
使用 XHTML+CSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面。
1. 在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{margin:30px!important;margin:28px;}
注意这两个 margin 的顺序一定不能写反,据阿捷的说法 !important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样
:
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important;
2.IE5 和 IE6 的 BOX 解释不一致 IE5 下 div{width:300px;margin:0 10px 0 10px;}div 的宽度会被解释为 300px- 10px( 右填充 )-10px( 左填充 ) 最终
div 的宽度为 280px ,而在 IE6 和其他浏览器上宽度则 是以 300px+10px( 右填充 )+10px ( 左填充 )=320px 来计算的。这时我们可以做如下修改:
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
关于这个 /**/ 是什么我也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持,如果有人理解的话,请告诉我一声,谢了!:)
3.ul 标签在 Mozilla 中默认是有 padding 值的 , 而在 IE 中只有 margin 有值所以先定义
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
ul{margin:0;padding:0;}
就能解决大部分问题
4. 关于脚本,在 xhtml1.1 中不支持 language 属性,只需要把代码改为
div css xhtml xml Example Source Code Example Source Code [www.52css.com]
4 、 div+css 兼容问题解决方案( IE5/5.5/6/7/FF )
之前找了几个不同版本的可独立运行的 IE 浏览器,正好拿来试试页面的兼容性问题。不试不知道,在 IE6 和 FF 中没问题的页面在 IE5 和 IE5.5 中乱
成一团,一直听说 IE5 是 WEB 标准制作的一个 “ 钉子户 ” ,现在不得不相信了。
既然有问题,那就找找解决的方法咯,在网上一搜,相关的文章还是不少的,觉得最直接的方法还是 “IE 条件注释 ” ,很方便的就能为 IE 的不
同版本写样式。但这样就得为每个版本写一个样式,不利于文件的优化。
找了一些相关的 CSS HACK 后,觉得应该可以把 IE5/IE5.5/IE6/FF 的 HACK 写到一起的,经过测试,终于找到了一个不错的方法,下面我们来看看
怎么实现:
大家都知道用 !important 声明可以提升指定样式规则的应用优先权,如下面的例子:
E1{
background-color: red !important;/* 提升优先权 */
background-color: blue;
}
但这样写在 IE 中会有个问题,看过我的《关于 CSS 样式表优先级》和《关于 CSS 样式表优先级补遗》,你会知道在 IE6 和 FF 中用 ! important 声明
可以提高优先级别,但在 IE6 中的 !important 声明并不是绝对的,它会被之后的同名属性定义所替换。也就是说在上面的例子中, IE6 所应用的
是最后一个背景色的值,即 “blue” ;而在 FF 中背景色的值为 “red” 。根据这一点,我们就可以把 FF 和 IE 的样式分离开。
OK ,解决了 FF 和 IE 的问题,现在来解决 IE 自己的问题。
看过了嘟嘟的《绕过 IE6 支持 IE5 的别一种写法 -IE 也支持 ">" 》后有感而发,使用 “ > ”IE 是否真的可以认得?我们来看个例子:
E1{
background-color: red;
> background-color: blue;
}
在 FF 中得到的是背景色红色,而在 IE 中得到的背景色是蓝色,根据样式重定义的规则,如果浏览器可以识别 “ > ” ,则应该得到的蓝色的背景
,因此可以知道 “ > ” 只有 IE 可以识别,这点是很重要的哦!在后面大家就会知道了。(注:我测试过其它的一些符号,如 “~” 、 “`” 、 “
< ” 等,都只有 IE 可以识别,在此为了感谢嘟嘟,推荐使用 “ > ” )
我们再来看个例子:
E1{
> /*IE only*/background-color: black;
> /*IE only*/background-color /*IE5.5*/: green;
}
这个例子在 IE6 中得到了黑色的背景;而在 IE5.5 中得到的绿色的背景;在 IE5 中也得到了黑色的背景。这就说明了第二句定义只有 IE5.5 能识别
,这是个很早就公布的 HACK ,可以在网上找到相关的资料,要注意的就是在属性名之后是有一个空格的。到此我们已经把 FF 、 IE5.5 、 IE6 分离
出来了,那 IE5 呢?其实现在我们只要把 IE5 跟 IE6 分开就 OK 了,来看看例子:
E1{
> /*IE only*/background-color: red;/*IE5*/
}
E1/*IE5.5+*/{
> /*IE only*/background-color: black;
}
这里我们又用到一个 HACK ,就是 “E1/**/{}” ,这个定义在 IE5 以上的版本才能识别出来。这个例子得到的结果是,在 IE5 中的背景色为红色;
在 IE5 以上版本中得到的是黑色背景。
终于把不同版本的浏览器都分离出来了,这样我们就可以为不同的浏览器定义不同的样式了。来看个完整的例子:
E1{
width: 500px;
height: 50px;
background-color: red !important;/*FF*/
background-color: blue;/*IE5*/
text-align:center;
}
E1/*IE5.5+*/{
> /*IE only*/background-color: black;/*IE6*/
> /*IE only*/background-color /*IE5.5*/: green;
}
需要注意的是,在上面例子中 “background-color” 定义的顺利不能改变,即 FF-IE5-IE6-IE5.5 。对于 IE 的定义在属性前要加 “ > ” ,因为
“E1/**/{}” 这个 HACK 在 FF 中可以识别。也许你会想,上面的例子不是可以写成:
E1{
width: 500px;
height: 50px;
background-color: red;/*FF*/
> background-color: blue;/*IE5*/
text-align:center;
}
E1/*IE5.5+*/{
> /*IE only*/background-color: black;/*IE6*/
> /*IE only*/background-color /*IE5.5*/: green;
}
这样不就又可以省下几个字节?是没错,可是 HACK 不是标准,如果滥用 HACK ,那只会离标准越来越远!
6 、 div+css 实现 Firefox 和 IE6 兼容的垂直居中
Firefox 中使用 display: table-cell; vertical-align: middle; 可以实现 div 垂直居中,而 IE6 中则需要借助 IE6 中 css 的特点实现垂直居中。为
了实现 Firefox 和 IE6 兼容的垂直居中,还需要 借助于 !important 标记。 Firefox 支持 !important 标记,而 IE6 忽略 !important 标记,因此可以使
用 ! important 标记区别 Firefox 和 IE6 。
[ 示例代码 ]
垂直居中, Firefox only
垂直居中, Firefox only
垂直居中, Firefox only
垂直居中, IE6 only
垂直居中, IE6 only
垂直居中, IE6 only
垂直居中, Firefox IE6 only
垂直居中, Firefox IE6 only
垂直居中, Firefox IE6 only
7 、 div+css 的浏览器兼容问题
水平居中, Firefox 使用 margin-left: auto; margin-right: auto; IE6 使用 text-align: center;
垂直居中, Firefox 中使用 display: table-cell; vertical-align: middle; 可以实现 div 垂直居中,而 IE6 中则需要借助 IE6 中 css 的特点实现垂
直居中。
!important 标记, Firefox 支持 !important 标记, IE6 忽略 !important 标记
使用 div+css 建站的朋友一定都知道 CSS 兼容的问题。由其是初学者在 IE 环境下好不容易写出了一个像模像样的网站来,一拿到 FF 下就变样了。所以在这里建议新手写代码时切忌要在 IE 和 FF 两个环境下去测试。今天教大家五招方法完全可以解决浏览器兼容问题。
这里大家要知道 CSS 不兼容的原因是因为各浏览器给 CSS 默认属性值不一样造成的。
第一招:给常用 CSS 规定属性值。
body,div,dl,dt,dd,ol,h1,h2,h3,h4,h5,h6,form,input,p,th,td{margin:0;padding:0;}
img{border:0px;}
ul {margin:0px;padding:0px;}/
ul li {list-style:none;}
上面的建站常用代码就相是格式化 CSS 样式,让各浏览器按照我们设置的属性值渲染网页
第二招: IE 和 FF 下对象居中问题
IE 下大家应该知道只要设置 body{text-align:center;} 这样就可以居中显示。
但是这样的方法在 FF 不行的。这里就需要给修改成 body:{text-align:center;margin:0px auto;}Margin 的意思就是上下距离为 0 像素,左右为自动。所以 FF 就会居中显示。
第三招:垂直居中(仅只用于一行)
比如说一个高 30px 的 div ,问题默认是会显示在左上角,如果想垂直居中对其可以加个 line- height:30px; 样式。如果你想让他居下方则在修改 line-height:30px; 数值越大越局下,为了防止撑破层,还需要再给一个样式 overflow:hidden;( 超出的部分不显示 )
第四招:给每一个块对象设置三个样式
width:**px;height:**px;overflow:hidden; 即便高、宽是属性值是自动那么也需要去设置这三个样式。目的就是解决浏览器默认值的问题。
第五招:针对 IE6 、 IE7 、 FF 的 css 样式 ( 这一招在特殊情况下经常用到 )
原来建设网站经常使用 !important 来设置优先权,但有了 IE7 之后就不行了。下面给大家个可以解决 IE6 、 IE7 、 FF 各个 CSS 优先权的方法
#1 { color: #333; } /* FF 环境 */
* html #1 { color: #666; } /* IE6 环境 */
*+html #1 { color: #999; } /* IE7 环境 */
上面的书写顺序一定不能去改变。
这样子网页在 FF 下显示 #333 , IE6 下显示 #666 , IE7 下显示 #999;
你可能感兴趣的:(div+css浏览器兼容问题解决方法)
关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript
二挡起步
web前端期末大作业 javascript html css 旅游 风景
⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip
HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动
二挡起步
web前端期末大作业 web设计网页规划与设计 html css javascript dreamweaver 前端
Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线
Mac 技术篇-应用程序被锁定无法进行卸载问题解决方法,文件、文件夹被锁定无法移入废纸篓处理方法
lq9527_
Mac使用 macos
在卸载Karabiner-Elements和Karabiner-EventViewer软件时,提示应用锁定,无法卸载。参照方法。在进行/bin/ls-dleO@App路径操作后,返回提示信息与链接方法略有区别。/bin/ls-dleO@App路径drwxr-xr-x@3root wheel uchg96 3 1 2022/Applications/Karabiner-Elements.appcom
python离线安装一个第三方库
Lhj0616
python相关 python 第三方库
文章目录实例步骤下载`xlwt`库将文件转移到目标机器在目标机器上安装`xlwt`验证安装总结步骤可能的问题解决方法检查库的兼容性使用`pip`下载适配特定Python版本的库创建虚拟环境创建虚拟环境(Python3.6)创建虚拟环境(Python3.11)检查和验证库的安装下载多个版本的`.whl`文件总结更新:下载的第三方库有依赖库解决方案实例想离线安装一个第三方库xlwt,python版本分
【前端面试】事件监听机制&React 的事件系统实现
贾明恣
前端 react.js 面试
目的React实现了自己的事件系统,主要是为了解决以下几个问题:跨浏览器兼容性:不同的浏览器在处理DOM事件时有不同的实现,React的事件系统抽象了这些差异,提供了一致的API给开发者使用。性能优化:React可以对事件进行池化(Pooling),这意味着事件对象可以在事件处理过程中被重用,减少了内存分配和垃圾回收的开销。合成事件(SyntheticEvents):React使用合成事件来封装所
《Unity3D高级编程 主程手记》第二章 C#技术要点(八) 业务逻辑优化技巧
仁希'
# 《Unity3D高级编程 主程手记》 笔记 性能优化 unity c#
目录使用List和Dictionary时提高效率巧用structstruct对性能优化的好处使用原值类型连续空间的方式来提高CPU的缓存命中率尽可能地使用对象池字符串导致的性能问题解决方法字符串的隐藏问题程序运行原理业务逻辑的优化方向脱离C#语言,简单陈述程序运行原理指令内存块数据内存块不只是算法能大幅度提高业务逻辑的效率,普普通通的业务代码也同样可以有质的飞越。优秀程序员常关注代码对性能的影响,
在css中选择器失效问题解决方法
星星也会数人类嘛
css 选择器失效
今天写前台的时候发现一个问题,我的css文件中id选择器失效了,前台页面F12控制台中也没有对应的css内容,很是奇怪,内容是这样的:html文件中:css文件中:前台:那,真的是空空如也哈,后来找了下资料,发现,原来是我的命名有问题!我的id是数字开头的,emmm,犯了个很低级的错误~记录下命名规则,如果有和我一样错误的小伙伴可要记住了hhhh只能由字母、数字、下划线和美元符号组成首字母必须是字
overflow-wrap详解
万能螺丝刀1
CSS css
overflow-wrapoverflow-wrap属性在CSS文本中是比较常用的,本部将带你深入理解overflow-wrap属性的各个方面,包括它的语法、取值、作用和浏览器兼容性,最后附上overflow-wrap的实例,希望能够对你有所帮助。overflow-wrap定义和用法overflow-wrap:normal|break-word默认值:normal适用于:所有元素继承性:有动画性:
[ubutnu]too many open files问题解决方法
FL1623863129
深度学习 linux 运维 服务器
一、产生原因toomanyopenfiles(打开的文件过多)是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。引起的原因就是进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数,通过命令u
esbuild中的CSS处理:高效且强大的构建工具
软考鸭
javascript帮助文档 css 前端
在现代前端开发中,构建工具扮演着至关重要的角色,它们帮助我们优化资源、提高加载速度,并确保代码在各种浏览器中的兼容性。esbuild是一款新兴的构建工具,以其出色的性能和丰富的功能受到了开发者的青睐。本文将深入探讨esbuild中的CSS处理能力,展示其如何通过内置的CSSLoader实现高效的CSS打包和优化,以及它如何帮助开发者处理现代CSS特性和浏览器兼容性问题。esbuild的CSSLoa
【HTML】DOCTYPE作用
全宇宙最最帅气的哆啦A梦小怪兽
html 前端
DOCTYPE是documenttype(文档类型)的缩写。是HTML5中一种标准通用标记语言的文档类型声明,告诉浏览器文档的类型,便于解析文档。不同渲染模式会影响浏览器对CSS代码甚至JS脚本的解析。它必须声明在第一行。DOCTYPE不存在或者形式不正确会导致HTML或XHTML文档以混杂模式呈现,就是把如何渲染html页面的权利交给浏览器。有多少浏览器就会有多少种展示方式,因此要提高浏览器兼容
Spring 普通java类 使用 @Autowired 注入 为null 问题解决方法
善始善终
java spring
问题:有时我们会在普通类里或工具类里注入service或mapper,那么我们直接使用@Autowired注入,注入的service或mapper在方法里是不能直接使用,会报null。再一个,如果是工具类,工具类里一般都是静态方法,更是无法使用。解决方法:第一步:在java类上添加@Component注解,将java类实例到spring容器中。importorg.springframework.s
大学生HTML期末大作业——HTML+CSS+JavaScript购物商城(美食)
无·糖
Web前端期末大作业 html 课程设计 css javascript 大学生 大作业 web网页设计
HTML+CSS+JS【购物商城】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计文章目录一、网站题目二、网站描述三、网站介绍四、网站效果五、️网站代码六、️如何学习进步七、☠️更多干货文章目录一、网站题目购物商城美食7页含jQuery登录注册二、网站描述总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证
OMP: Error #15问题解决方法
WD-ss
python
报错信息OMP:Error#15:Initializinglibomp140.x86_64.dll,butfoundlibiomp5md.dllalreadyinitialized.OMP:HintThismeansthatmultiplecopiesoftheOpenMPruntimehavebeenlinkedintotheprogram.Thatisdangerous,sinceitcand
一篇关于ios sdk的新手引导
那年我们十八
1.首先创建一个sdk工程2.然后新建一个类用来管理sdk方法然后在这个类里面导入你想给被人调用的公开类3.在这个类申明一个方法让别人调用在.m里面实现以下这个方法4.然后导出framework5.然后写一个demo导入framework测试一下下面说一下一般会遇到的问题吧1.常见的other设置为-ObjC2.使用模拟器遇到的问题如果是上面这种问题解决方法:使用真机调试,不要用模拟器3.还有一种
SeaFile 6.0.7 Windows 服务器端问题解决方法
朱百万
安装过程中seafserv-applet.exe出错,不知道原因,用procmon监视一下,居然好了正常安装完,红字“错误”seafileprogram\seahub\seahub\settings.py中的TIME_ZONE改成UTC防火墙放开TCP的8000、8082端口
Mockito.when返回的list长度为0问题解决方法
Fanzongshen
Java list java
今天玩Mockito.when遇见一个问题Mockito.when返回的list长度为0;上代码ArrayListchildDepts=newArrayListlist=orgMapper.selectOrgList(queryChild);//发现该代码返回的list长度为0此时应该把我们的模拟代码修改成这样Mockito.when(orgMapper.selectOrgList(Mockito
html5在不同浏览器兼容,HTML5浏览器兼容性解决方案
weixin_39732991
html5在不同浏览器兼容
HTML5浏览器兼容性解决方案HTML5新增语义标签,以及如何兼容老版本浏览器。前言HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体。例如:video标签和audio及canvas标记。而HTML5在取消了过时的显示效果标记和等同时,也引入了一些新的语义标签,例如:更多的语义标签请参考一、语义标签兼容性1.解决思路主流浏览器都兼容HTML5的新标签。
ubuntu下固定USB相机设备名称
YQ8023family
ubuntu linux USB相机 udev规则
文章目录ubuntu下固定USB相机设备名称目的解决方法ubuntu下固定USB相机设备名称目的防止多个USB相机存在时,在不断的热插拔情况下不仅相机序号会改变,同时相机名称也会发生改变,导致无法定位打开特定相机的问题解决方法更改udev规则文件,固定相机名称,每个USB设备在linux系统中均存在唯一的idVendor(相机供应商ID)和唯一的idProduct(相机产品ID)//连接USB相机
jenkins 使用过程问题解决方法
zhoubiyan
jenkins
目前使用jenkins做ci集成测试。记录过成中问题。形成Q&A.1、jenkins使用git时在SourceCodeManagement有红色提示:gitls-remote-hgit@****.com:****/******.gitHEAD****locked或者认证失败原因:未配置git的credentials解决方法:参考jenkins-配置githubcredentials_zhoubiy
Vue3 实现一个简单的方位动画
程序员vue.js
这是最近遇到的一个有点意思的需求,需要根据后端返回的数据,在一块地图的具体的方位上显示对应位置标识(位置图钉)。不用十分精确,只要能表现出大致的方位即可。类似下面的效果,有点像游戏里的地图标识。设计思路由于不用十分精确,就用最简单的div+css来实现位置标识的显示和动画。之后再通过配合背景图片来保证最基础的效果。方位总共9个,东南西北中加上四个角,通过Grid布局让其形成3*3的格子。位置标识只
注册 google 谷歌账号详细记录,记录解决 “此电话号码无法用于进行验证” 问题
_L_J_H_
非Java零散记录 google账号注册
目录手机号码验证问题解决方法具体注册步骤演示1、谷歌浏览器改语言2、点击注册3、选择个人用途4、输入姓名5、输入年月日6、创建登录账号7、设置登录密码8、手机号码验证(重点)9、手机号码验证成功界面10、关联邮箱备用登录账号设置手机号码验证问题注册最重要的一步:电话号码无法验证解决方法1、用谷歌浏览器注册,不要用其他浏览器2、把谷歌浏览器的语言改成英语的即可注册成功。注意:非谷歌浏览器,即使语言改
Got socket error trying to find package flutter_svg
lingjunjie
flutter
Gotsocketerrortryingtofindpackageflutter_svg如果在fluuter拉取依赖的时候遇到这个问题那可能是国内访问flutter镜像时候问题解决方法在环境变量中配置国内镜像,加上下面两行就可以了exportPUB_HOSTED_URL=https://pub.flutter-io.cnexportFLUTTER_STORAGE_BASE_URL=https://
2024年首发!高级界面控件Kendo UI全新发布2024 Q1
界面开发小八哥
ui 界面控件 kendo ui UI开发
KendoUI是带有jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种JavaScript框架,都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件,KendoUI可以创建数据丰富的桌面、平板和移动Web应用程序。通过响应式的布局、强大的数据绑定、跨浏览器兼容性和即时使用的主题,KendoUI将开发时间加快了50%。KendoUI2
2024年及以后在您的项目中使用的最佳CSS框架
晓风晓浪
css tensorflow 前端
在过去几年中,CSS已经取得了长足的进步。在过去,您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在,您可以设计复杂的交互式用户界面,具有优雅的设计。尽管CSS变得越来越先进,但为大型Web应用程序从头编写CSS样式可能会耗费时间。这也可能导致样式重复、CSS文件变长、跨浏览器兼容性错误,以及通常更复杂的代码库。为了解决这一挑战,CSS框架应运而
html添加遮罩
我的名字叫勇敢#5271
前端 html添加遮罩
html添加遮罩的代码如下所示使用div+css,加载中的图片是网上下载的动图,可以根据自己需要进行修改DIVCSS遮罩层functionshowdiv(){document.getElementById("bg").style.display="block";/*document.getElementById("show").style.display="block";*/}functionhi
推荐十四款常见的Web前端开发框架
Java学习之平凡之路
资源收集
在做web开发的时候经常会遇到一个问题,那就是,选择什么样的框架来做前端开发。下面封程中把目前常用的一些前端的框架简单的给大家介绍一下.1.BootstrapBoostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。Bootst
FreeRTOS创建静态任务教程及所遇到的问题解决方法
wiyoo0
stm32 FreeRTOS arm 嵌入式硬件 单片机 stm32
静态任务和动态任务的区别相对于动态任务,静态任务不需要动态分配内存,而是手动指定一个静态内存缓冲区,并在任务生命周期中一直使用该缓冲区。这可以避免动态内存分配时可能出现的内存碎片和内存泄漏问题,提高了系统的稳定性。静态任务TaskHandle_txTaskCreateStatic(TaskFunction_tpxTaskCode,constchar*constpcName,constuint32_
[HTML]Web前端开发技术20(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用,datetime-local,required,MPEG4——喵喵画网页
猫佛
喵喵画网页 html 前端 html5 javascript css3 计算机学习
希望你开心,希望你健康,希望你幸福,希望你点赞!最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!喵喵喵,你对我真的很重要!目录前言HTML5新增的表单属性HTML5新增的input类型HTML5表单新增输入类型HTML5视频与音频CSS3基础应用CSS3浏览器兼容性课后练习网页标题:顺序结构的应用网页标题:if..else语句的应用网页标题:switch结构的应用网页标题:顺序
关于递归学习
投篮手型差
关于递归的学习递归是一种优雅的问题解决方法,同循环相比,并没有性能优势,而是让解决方案更清晰,让程序更容易理解。递归条件:recursivecase函数调用自己。基线条件:basecase函数不再调用自己,避免无限循环。栈需要用到一种数据结构-栈(stack),一叠数据,操作有两种,分别是:压入和弹出(删除和读取)。计算机调用函数需要分配一块内存,当调用另一个函数时,当前函数暂停并处于未完成状态,
springmvc 下 freemarker页面枚举的遍历输出
杨白白
enum freemarker
spring mvc freemarker 中遍历枚举
1枚举类型有一个本地方法叫values(),这个方法可以直接返回枚举数组。所以可以利用这个遍历。
enum
public enum BooleanEnum {
TRUE(Boolean.TRUE, "是"), FALSE(Boolean.FALSE, "否");
实习简要总结
byalias
工作
来白虹不知不觉中已经一个多月了,因为项目还在需求分析及项目架构阶段,自己在这段
时间都是在学习相关技术知识,现在对这段时间的工作及学习情况做一个总结:
(1)工作技能方面
大体分为两个阶段,Java Web 基础阶段和Java EE阶段
1)Java Web阶段
在这个阶段,自己主要着重学习了 JSP, Servlet, JDBC, MySQL,这些知识的核心点都过
了一遍,也
Quartz——DateIntervalTrigger触发器
eksliang
quartz
转载请出自出处:http://eksliang.iteye.com/blog/2208559 一.概述
simpleTrigger 内部实现机制是通过计算间隔时间来计算下次的执行时间,这就导致他有不适合调度的定时任务。例如我们想每天的 1:00AM 执行任务,如果使用 SimpleTrigger,间隔时间就是一天。注意这里就会有一个问题,即当有 misfired 的任务并且恢复执行时,该执行时间
Unix快捷键
18289753290
unix Unix;快捷键;
复制,删除,粘贴:
dd:删除光标所在的行 &nbs
获取Android设备屏幕的相关参数
酷的飞上天空
android
包含屏幕的分辨率 以及 屏幕宽度的最大dp 高度最大dp
TextView text = (TextView)findViewById(R.id.text);
DisplayMetrics dm = new DisplayMetrics();
text.append("getResources().ge
要做物联网?先保护好你的数据
蓝儿唯美
数据
根据Beecham Research的说法,那些在行业中希望利用物联网的关键领域需要提供更好的安全性。
在Beecham的物联网安全威胁图谱上,展示了那些可能产生内外部攻击并且需要通过快速发展的物联网行业加以解决的关键领域。
Beecham Research的技术主管Jon Howes说:“之所以我们目前还没有看到与物联网相关的严重安全事件,是因为目前还没有在大型客户和企业应用中进行部署,也就
Java取模(求余)运算
随便小屋
java
整数之间的取模求余运算很好求,但几乎没有遇到过对负数进行取模求余,直接看下面代码:
/**
*
* @author Logic
*
*/
public class Test {
public static void main(String[] args) {
// TODO A
SQL注入介绍
aijuans
sql注入
二、SQL注入范例
这里我们根据用户登录页面
<form action="" > 用户名:<input type="text" name="username"><br/> 密 码:<input type="password" name="passwor
优雅代码风格
aoyouzi
代码
总结了几点关于优雅代码风格的描述:
代码简单:不隐藏设计者的意图,抽象干净利落,控制语句直截了当。
接口清晰:类型接口表现力直白,字面表达含义,API 相互呼应以增强可测试性。
依赖项少:依赖关系越少越好,依赖少证明内聚程度高,低耦合利于自动测试,便于重构。
没有重复:重复代码意味着某些概念或想法没有在代码中良好的体现,及时重构消除重复。
战术分层:代码分层清晰,隔离明确,
布尔数组
百合不是茶
java 布尔数组
androi中提到了布尔数组;
布尔数组默认的是false, 并且只会打印false或者是true
布尔数组的例子; 根据字符数组创建布尔数组
char[] c = {'p','u','b','l','i','c'};
//根据字符数组的长度创建布尔数组的个数
boolean[] b = new bool
web.xml之welcome-file-list、error-page
bijian1013
java web.xml servlet error-page
welcome-file-list
1.定义:
<welcome-file-list>
<welcome-file>login.jsp</welcome>
</welcome-file-list>
2.作用:用来指定WEB应用首页名称。
error-page1.定义:
<error-page&g
richfaces 4 fileUpload组件删除上传的文件
sunjing
clear Richfaces 4 fileupload
页面代码
<h:form id="fileForm"> <rich:
技术文章备忘
bit1129
技术文章
Zookeeper
http://wenku.baidu.com/view/bab171ffaef8941ea76e05b8.html
http://wenku.baidu.com/link?url=8thAIwFTnPh2KL2b0p1V7XSgmF9ZEFgw4V_MkIpA9j8BX2rDQMPgK5l3wcs9oBTxeekOnm5P3BK8c6K2DWynq9nfUCkRlTt9uV
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1解决方案
白糖_
Hibernate
文章摘自:http://blog.csdn.net/yangwawa19870921/article/details/7553181
在编写HQL时,可能会出现这种代码:
select a.name,b.age from TableA a left join TableB b on a.id=b.id
如果这是HQL,那么这段代码就是错误的,因为HQL不支持
sqlserver按照字段内容进行排序
bozch
按照内容排序
在做项目的时候,遇到了这样的一个需求:
从数据库中取出的数据集,首先要将某个数据或者多个数据按照地段内容放到前面显示,例如:从学生表中取出姓李的放到数据集的前面;
select * fro
编程珠玑-第一章-位图排序
bylijinnan
java 编程珠玑
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Random;
public class BitMapSearch {
Java关于==和equals
chenbowen00
java
关于==和equals概念其实很简单,一个是比较内存地址是否相同,一个比较的是值内容是否相同。虽然理解上不难,但是有时存在一些理解误区,如下情况:
1、
String a = "aaa";
a=="aaa";
==> true
2、
new String("aaa")==new String("aaa
[IT与资本]软件行业需对外界投资热情保持警惕
comsci
it
我还是那个看法,软件行业需要增强内生动力,尽量依靠自有资金和营业收入来进行经营,避免在资本市场上经受各种不同类型的风险,为企业自主研发核心技术和产品提供稳定,温和的外部环境...
如果我们在自己尚未掌握核心技术之前,企图依靠上市来筹集资金,然后使劲往某个领域砸钱,然
oracle 数据块结构
daizj
oracle 块 数据块 块结构 行目录
oracle 数据块是数据库存储的最小单位,一般为操作系统块的N倍。其结构为:
块头--〉空行--〉数据,其实际为纵行结构。
块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(Standard Block)。块的大小和标准块的大小不同的块叫非标准块(Nonstandard Block)。同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标
github上一些觉得对自己工作有用的项目收集
dengkane
github
github上一些觉得对自己工作有用的项目收集
技能类
markdown语法中文说明
回到顶部
全文检索
elasticsearch
bigdesk elasticsearch管理插件
回到顶部
nosql
mapdb 支持亿级别map, list, 支持事务. 可考虑做为缓存使用
C
初二上学期难记单词二
dcj3sjt126com
english word
dangerous 危险的
panda 熊猫
lion 狮子
elephant 象
monkey 猴子
tiger 老虎
deer 鹿
snake 蛇
rabbit 兔子
duck 鸭
horse 马
forest 森林
fall 跌倒;落下
climb 爬;攀登
finish 完成;结束
cinema 电影院;电影
seafood 海鲜;海产食品
bank 银行
8、mysql外键(FOREIGN KEY)的简单使用
dcj3sjt126com
mysql
一、基本概念
1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。
2、外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。
3、如
java循环标签 Foreach
shuizhaosi888
标签 java循环 foreach
1. 简单的for循环
public static void main(String[] args) {
for (int i = 1, y = i + 10; i < 5 && y < 12; i++, y = i * 2) {
System.err.println("i=" + i + " y="
Spring Security(05)——异常信息本地化
234390216
exception Spring Security 异常信息 本地化
异常信息本地化
Spring Security支持将展现给终端用户看的异常信息本地化,这些信息包括认证失败、访问被拒绝等。而对于展现给开发者看的异常信息和日志信息(如配置错误)则是不能够进行本地化的,它们是以英文硬编码在Spring Security的代码中的。在Spring-Security-core-x
DUBBO架构服务端告警Failed to send message Response
javamingtingzhao
架构 DUBBO
废话不多说,警告日志如下,不知道有哪位遇到过,此异常在服务端抛出(服务器启动第一次运行会有这个警告),后续运行没问题,找了好久真心不知道哪里错了。
WARN 2015-07-18 22:31:15,272 com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(84)
JS中Date对象中几个用法
leeqq
JavaScript Date 最后一天
近来工作中遇到这样的两个需求
1. 给个Date对象,找出该时间所在月的第一天和最后一天
2. 给个Date对象,找出该时间所在周的第一天和最后一天
需求1中的找月第一天很简单,我记得api中有setDate方法可以使用
使用setDate方法前,先看看getDate
var date = new Date();
console.log(date);
// Sat J
MFC中使用ado技术操作数据库
你不认识的休道人
sql mfc
1.在stdafx.h中导入ado动态链接库
#import"C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","end")2.在CTestApp文件的InitInstance()函数中domodal之前写::CoIniti
Android Studio加速
rensanning
android studio
Android Studio慢、吃内存!启动时后会立即通过Gradle来sync & build工程。
(1)设置Android Studio
a) 禁用插件
File -> Settings... Plugins 去掉一些没有用的插件。
比如:Git Integration、GitHub、Google Cloud Testing、Google Cloud
各数据库的批量Update操作
tomcat_oracle
java oracle sql mysql sqlite
MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的
sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了。 注意:下列批量更新语句都是作为一个事务整体执行,要不全部成功,要不全部回滚。
MSSQL的SQL语句
WITH R AS(
SELECT 'John' as name, 18 as
html禁止清除input文本输入缓存
xp9802
input
多数浏览器默认会缓存input的值,只有使用ctl+F5强制刷新的才可以清除缓存记录。如果不想让浏览器缓存input的值,有2种方法:
方法一: 在不想使用缓存的input中添加 autocomplete="off"; eg: <input type="text" autocomplete="off" name