8455澳门新


8455澳门新SEO概念重要性和发展

8455网站桂林网络公司-SEO攻略之企业站优化战略

网站建设中网站前台代码怎么写才最简洁合理

  • 五月 02, 2020
  • 首页
  • 没有评论

网站建设中网站前台代码怎么写才最简洁合理

• 2013年03月05日01:58

       
网站建设共分为网站策划、网站设计、网站程序、网站推广、网站运营五个阶段,其中网站设计是决定网站外观和展示给用户的一个主要的环节。在济南网站建设的过程中,有很多的设计师都以为自己只需要精通了phtoshop就可以了,没有考虑到网站设计图出来之后还需要对JPG的图片进行切图处理,然而在实际的切图过程中,很多人不注意网站前台代码的准确性和简洁性,只是一味的去写代码,虽然最后把网站设计图转成了html的格式,但是同样的一张图,不同的人去切在网站的前台代码方面都会存在一定的差异。怎么样才能保证网站前台代码即简洁又标准呢?

图片 1

一、 对网站的整体样式进行设定

个网站都会一个整体的色调,比如说网站文字颜色,网站超链接移动颜色,网站的标题颜色,网站宽度,网站字体样式,网站字体大小等,这些属性我们只需要在网站的body标签中写入相应的整体样式即可。一方面可以为整个网站设定统一的文字颜色,另一方面可以建设网站前台代码冗余量,达到精简的目的。比如我们的网站济南网站建设www.0531soso.com的整体样式是这样写的,大家可以做一下参考:

body{
    font-size:12px;
    font-family:Arial,Helvetica,sans-serif;
    padding:0;
    color:#404040;
    margin-top:7px;
    }
div{
margin:0 auto;
padding:0;
}

a{
    text-decoration:none;
    color:#777983;
    }
a:hover{
    color:#FF3300;
    text-decoration:underline;
    }

二、对网站的间隔和浮动设置一个统一的样式

在实际的网站布局中,我们经常会用到css的浮动的属性,必要的情况下,需要清楚浮动才能达到想要的效果。我们这里建议大家直接定义一个清楚服务的类,然后每次清除浮动就加上这个属性,具体的写法请看下面的举例。关于网站间隔的问题我们习惯性用margin属性来控制,但是如果在不注意的情况下,marin属性容易导致网站的错位和浏览器的不兼容问题。最好也是定义一个专门负责网站间隔的类,在需要的时候直接进行调用!举例如下:

.clear {

clear:
both;

height: 0;

margin: 0;

overflow: hidden;

padding: 0;

}

.blank {

clear:
both;

height: 8px;

line-height: 8px;

visibility: hidden;

}

三、网站的代码需要兼容各个浏览器并保证尽量少使用CSS的hack属性

现在市场上的系统各不相同,导致每个用户的浏览器也不相同。这就需要我们制作网站的人员在书写网站前台代码的时候,需要保证每个浏览器的兼容性,不能说你写的网站智能在你自己的电脑上看是正常的,换台电脑或者换个浏览器就没法看了,全部变形错位了,这样是不行的。我们需要保证网站前台代码简洁性的前提下,也要保证各个浏览器都是兼容的。在《济南网站制作中网站兼容性问题最全面方法介绍》这篇文章中我们有详细的介绍网站兼容性的调整方法,有兴趣的可以去看一下。

建设一个好的网站,不仅仅是建设出来就可以了,更重要的是保证网站代码的简洁性、标准型和可维护性。不能单纯的只是为了建设网站而去设计去写代码,那样就算你把网站做出来了,在后期的网站运营过程中也会出现一系列的问题。网站的前台代码也需要做到简洁清晰明了,才能让网站能够顺应互联网的发展,才能保证网站的打开速度和兼容性更好。

给大家推荐常用的CSS小技巧,均是项目中使用过的,经过检测的代码,大家可以放心使用。

IE7,6与Fireofx的CSS兼容性处理方法集结,fireofxcss

CSS对浏览器的兼容性有时让人很头疼,尤其是对于IE6这个问题多多的浏览器版本,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下。对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE
影响 CSS 处理,作为W3C的标准,一定要加DOCTYPE声明. 

一、CSS

1、vertical-align:middle文字垂直居中,对于某些元素如div{width:200px;height:200px;}不会有效果,只需给div{line-height:200px;}即可文字垂直居中。

2、margin加倍的问题:

设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline

<div class="float-left"></div>
.float-left{
            float: left;
            margin: 5px;/*IE下理解为10px*/
            display: inline;/*IE下再理解为5px*/
        }

3、浮动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;

4 、IE与宽度和高度的问题

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;} 

5、页面的最小宽度

min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把
width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div>
放到 <body> 标签下,然后为div指定一个类,然后CSS这样设计:    

#container{ min-width: 600px; width:expression(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; //这句是关键}    
<div id="box">   
<div id="left"></div>   
<div id="right"></div>   
</div> 

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后面做一个统一的背景,譬如:  

<div id=”page”>   
<div id=”left”></div>   
<div id=”center”></div>   
<div id=”right”></div>    
</div> 

比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left
center
right的向下拉长,而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 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; //将对象作为块元素级的表格显示}

9、高度不适应 

高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin
或padding 时。    
例:   

#box { }     
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }     
<div id="box">     
<p>p对象中的内容</p>     
</div>     

解决方法:在P对象上下各加2个空的div对象CSS代码:p{height:0px;overflow:hidden;}或者为DIV加上border属性。

10 、IE6下为什么图片下有空隙产生

解决这个BUG的方法也有很多,可以是改变html的排版,或者设置img
为display:block 或者设置vertical-align 属性为vertical-align:top | bottom
|middle |text-bottom 都可以解决. 

11、如何对齐文本与文本输入框

input { 
     width:200px; 
     height:30px; 
     line-height:30px;
     border:1px solid red; 
     vertical-align:middle; 
}

12、web标准中定义id与class有什么区别吗

一.web标准中是不容许重复ID的,比如 div id=”aa”   不容许重复2次,而class
定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他. 

二.属性的优先级问题 
ID 的优先级要高于class,看上面的例子 

三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单.

13、LI中内容超过长度后以省略号显示的方法

li { 
     width:200px; 
     white-space:nowrap; 
     text-overflow:ellipsis; 
     -o-text-overflow:ellipsis; 
     overflow: hidden; 
     }

14、web标准中IE无法设置滚动条颜色的解决办法:

解决办法是将body换成html 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<style type="text/css"> 
<!-- 
html { 
     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> 

15、为什么无法定义1px左右高度的容器 

IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden
| zoom:0.08 | line-height:1px

16、怎样使一个层垂直居中于浏览器中

这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以二 

div { 
     position:absolute; 
     top:50%; 
     lef:50%; 
     margin:-100px 0 0 -100px; 
     width:200px; 
     height:200px; 
     border:1px solid red; 
     } 

二: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 

a:link {} 
a:visited {} 
a:hover {} 
a:active {} 

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- width: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插入 的方法来解决 

<style type="text/css"> 
<!-- 
div { 
     width:300px; 
     word-wrap:break-word; 
     border:1px solid red; 
} 
--> 
</style> 

<div id="ff">123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890</div> 

<scrīpt type="text/javascrīpt"> 
/* <![CDATA[ */ 
function toBreakWord(el, intLen){ 
     var ōbj=document.getElementById(el); 
     var strContent=obj.innerHTML; 
     var strTemp=""; 
     while(strContent.length>intLen){ 
         strTemp+=strContent.substr(0,intLen)+"&#10;"; 
         strContent=strContent.substr(intLen,strContent.length); 
     } 
     strTemp+="&#10;"+strContent; 
     obj.innerHTML=strTemp; 
} 
if(document.getElementById   &&   !document.all)   toBreakWord("ff", 37); 
/* ]]> */ 
</scrīpt>

13、IE6/7…

width:50px; /*For IE7 & IE6*/     
width:40px; /*For IE6*/   
注意顺序。   
这样也属于CSS  HACK,不过没有上面这样简洁。   
#example { color: #333; } /* Moz */   
* html  #example { color: #666; } /* IE6 */   
*+html #example { color: #999; } /*  IE7 */   
第二种,是使用IE专用的条件注释   
<!--其他浏览器 -->     
<link rel="stylesheet" type="text/css" href="http://handyxuefeng.blog.163.com/blog/css.css" />     
<!--[if IE 7]>   
<!-- 适合于IE7 -->   
<link  rel="stylesheet" type="text/css" href="http://handyxuefeng.blog.163.com/blog/ie7.css" />     
<![endif]-->   
<!--[if lte IE 6]>   
<!--  适合于IE6及一下 -->   
<link rel="stylesheet" type="text/css" href="http://handyxuefeng.blog.163.com/blog/ie.css"  />   
<![endif]-->   
第三种,css  filter的办法,以下为经典从国外网站翻译过来的。.   
新建一个css样式如下:   
#item {   
      width: 200px;   
     height: 200px;   
     background: red;     
}    
新建一个div,并使用前面定义的css的样式:   
<div id="item">some text  here</div>    
在body表现这里加入lang属性,中文为zh:   
<body  lang="en">    
现在对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各版本以外的浏览器上

 

注:转载总结,有错请指出!

 

CSS对浏览器的兼容性有时让人很头疼,尤其是对于IE6这个问题多多的浏览器版本,从网上收集了…

1.清除图片下方出现几像素的空白间隙

方法1:

代码如下:

img{display:block;}

方法2:

代码如下:

img{vertical-align:top;}

除了top值,还可以设置为text-top | middle | bottom |
text-bottom,甚至特定的和值都可以

方法3:

代码如下:

#test{font-size:0;line-height:0;}

#test为img的父元素

2.让文本垂直对齐文本输入框

方法:

代码如下:

input{vertical-align:middle;}

3.让单行文本在容器内垂直居中

方法:

代码如下:

#test{height:25px;line-height:25px;}

只需设置文本的行高等于容器的高度即可

4.让超链接访问后和访问前的颜色不同且访问后仍保留hover和active效果

方法:

代码如下:

a:link{color:#03c;}

a:visited{color:#666;}

a:hover{color:#f30;}

a:active{color:#c30;}

按L-V-H-A的顺序设置超链接样式即可,可速记为LoVe(喜欢)HAte(讨厌)

5.为什么Standard mode下IE无法设置滚动条的颜色?

方法:

代码如下:

html{

scrollbar-3dlight-color:#999;

scrollbar-darkshadow-color:#999;

scrollbar-highlight-color:#fff;

scrollbar-shadow-color:#eee;

scrollbar-arrow-color:#000;

scrollbar-face-color:#ddd;

scrollbar-track-color:#eee;

scrollbar-base-color:#ddd;

}

将原来设置在body上的滚动条颜色样式定义到html标签选择符上即可

6.使文本溢出边界不换行强制在一行内显示

方法:

代码如下:

#test{width:150px;white-space:nowrap;}

设置容器的宽度和white-space为nowrap即可,其效果类似标签

7.使文本溢出边界显示为省略号

方法(此方法Firefox5.0尚不支持):

代码如下:

#test{width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

首先需设置将文本强制在一行内显示,然后将溢出的文本通过overflow:hidden截断,并以text-overflow:ellipsis方式将截断的文本显示为省略号。

8.使连续的长字符串自动换行

方法:

代码如下:

#test{width:150px;word-wrap:break-word;}

word-wrap的break-word值允许单词内换行

9.清除浮动

方法1:

代码如下:

#test{clear:both;}

#test为浮动元素的下一个兄弟元素

方法2:

代码如下:

#test{display:block;zoom:1;overflow:hidden;}

#test为浮动元素的父元素。zoom:1也可以替换为固定的width或height

方法3:

代码如下:

#test{zoom:1;}

#test:after{display:block;clear:both;visibility:hidden;height:0;content:”;}

#test为浮动元素的父元素

10.定义鼠标指针的光标形状为手型并兼容所有浏览器

方法:

代码如下:

#test{cursor:pointer;}

若将cursor设置为hand,将只有IE和Opera支持,且hand为非标准属性值

11.让已知高度的容器在页面中水平垂直居中

方法:

代码如下:

#test{position:absolute;top:50%;left:50%;width:200px;height:200px;margin:-100px
0 0 -100px;}

Know More:已知高度的容器如何在页面中水平垂直居中

12.让未知尺寸的图片在已知宽高的容器内水平垂直居中

方法:

代码如下:

#test{display:table-cell;*display:block;*position:relative;width:200px;height:200px;text-align:center;vertical-align:middle;}

#test p{*position:absolute;*top:50%;*left:50%;margin:0;}

#test p
img{*position:relative;*top:-50%;*left:-50%;vertical-align:middle;}

#test是img的祖父节点,p是img的父节点。Know
More:未知尺寸的图片如何水平垂直居中

13.设置span的宽度和高度(即如何设置内联元素的宽高)

方法:

代码如下:

span{display:block;width:200px;height:100px;}

要使内联元素可以设置宽高,只需将其定义为块级或者内联块级元素即可。所以方法非常多样,既可以设置display属性,也可以设置float属性,或者position属性等等。

14.给一个元素定义多个不同的css规则

方法:

代码如下:

.a{color:#f00;}

.b{background:#eee;}

.c{background:#ccc;}

测试1

测试2

多个规则之间使用空格分开,并且只有class能同时使用多个规则,id不可以

15.让某个元素充满整个页面

方法:

代码如下:

html,body{height:100%;margin:0;}

#test{height:100%;}

16.让某个元素距离窗口上右下左4边各10像素

方法:

代码如下:

html,body{height:100%;margin:0;}

html{_padding:10px;}

#test{position:absolute;top:10px;right:10px;bottom:10px;left:10px;_position:static;_height:100%;}

17.去掉超链接和焦点元素的虚线框

方法:

代码如下:

a{outline:none;}

IE7及更早浏览器由于不支持outline属性,需要通过js的blur()方法来实现,如

18.容器透明,内容不透明

方法1:

代码如下:

.outer{width:200px;height:200px;background:#000;filter:alpha(opacity=20);opacity:.2;}

.inner{width:200px;height:200px;margin-top:-200px;}

我是不透明的内容

原理是容器层与内容层并级,容器层设置透明度,内容层通过负margin或者position绝对定位等方式覆盖到容器层上

方法2:

代码如下:

.outer{width:200px;height:200px;background:rgba(0,0,0,.2);background:#0009;filter:alpha(opacity=20)9;}

.outer .inner{position:relative9;}

我是不透明的内容

高级浏览器直接使用rgba颜色值实现;IE浏览器在定义容器透明的同时,让子节点相对定位,也可达到效果

19.让整个页面水平居中

方法:

代码如下:

body{text-align:center;}

#test2{width:960px;margin:0 auto;text-align:left;}

定义body的text-align值为center将使得IE5.5也能实现居中

20.为什么容器的背景色没显示出来?为什么容器无法自适应内容高度?

方法:

清除浮动

通常出现这样的情况都是由于没有清除浮动而引起的,所以Debug时应第一时间想到是否有未清除浮动的地方

21.做1像素细边框的table

方法1:

代码如下:

#test{border-collapse:collapse;border:1px solid #ddd;}

#test th,#test td{border:1px solid #ddd;}

姓名Joy Du

年龄26

方法2:

代码如下:

#test{border-spacing:1px;background:#ddd;}

#test tr{background:#fff;}

姓名Joy Du

年龄26

IE7及更早浏览器不支持border-spacing属性,但是可以通过table的标签属性cellspacing来替代。

22.使页面文本行距始终保持为n倍字体大小的基调

方法:

代码如下:

body{line-height:n;}

注意,不要给n加单位。Know
More:如何使页面文本行距始终保持为n倍字体大小的基调

23.标准模式Standard mode和怪异模式Quirks mode下的盒模型区别?

方法:

标准模式下:Element width = width + padding + border

怪异模式下:Element width = width

相关资料请参阅CSS3属性box-sizing

24.以图换字的几种方法及优劣分析

思路1:使用text-indent的负值,将内容移出容器

代码如下:

.test1{width:200px;height:50px;text-indent:-9999px;background:#eee
url(*.png) no-repeat;}

以图换字之内容负缩进法

该方法优点在于结构简洁,不理想的地方:1.由于使用场景不同,负缩进的值可能会不一样,不易抽象成公用样式;2.当该元素为链接时,在非IE下虚线框将变得不完整;3.如果该元素被定义为内联级或者内联块级,不同浏览器下会有较多的差异

思路2:使用display:none或visibility:hidden将内容隐藏;

代码如下:

.test{width:200px;height:50px;background:#eee url(*.png) no-repeat;}

.test span{visibility:hidden;/* 或者display:none */}

以图换字之内容隐藏法

该方法优点在于兼容性强并且容易抽象成公用样式,缺点在于结构较复杂

思路3:使用padding或者line-height将内容挤出容器之外;

代码如下:

.test{overflow:hidden;width:200px;height:0;padding-top:50px;background:#eee
url(*.png) no-repeat;}

.test{overflow:hidden;width:200px;height:50px;line-height:50;background:#eee
url(*.jpg) no-repeat;}

以图换字之内容排挤法

该方法优点在于结构简洁,缺点在于:1.由于使用场景不同,padding或line-height的值可能会不一样,不易抽象成公用样式;2.要兼容IE5.5及更早浏览器还得hack

思路4:使用超小字体和文本全透明法;

代码如下:

.test{overflow:hidden;width:200px;height:50px;font-size:0;line-height:0;color:rgba(0,0,0,0);background:#eee

url(*.png) no-repeat;}

以图换字之超小字体+文本全透明法

该方法结构简单易用,推荐使用

25.为什么2个相邻div的margin只有1个生效?

方法:

代码如下:

.box1{margin:10px 0;}

.box2{margin:20px 0;}

box1

box2

本例中box1的底部margin为10px,box2的顶部margin为20px,但表现在页面上2者之间的间隔为20px,而不是预想中的10+20px=30px,结果是选择2者之间最大的那个margin,我们把这种机制称之为“外边距合并”;外边距合并不仅仅出现在相邻的元素间,父子间同样会出现。

简单列举几点注意事项:

外边距合并只出现在块级元素上;

浮动元素不会和相邻的元素产生外边距合并;

绝对定位元素不会和相邻的元素产生外边距合并;

内联块级元素间不会产生外边距合并;

根元素间不会不会产生外边距合并(如html与body间);

设置了属性overflow且值不为visible的块级元素不会与它的子元素发生外边距合并;

26.在文本框中禁用中文输入法

方法:

代码如下:

input,textarea{ime-mode:disabled;}

ime-mode为非标准属性,写该文档时只有IE和Firefox支持

27.解决列表中list-style-image不能精准定位的问题

方法:

不使用list-style-image来定义列表项目标记符号,而用background-image来代替,并通过background-position来进行定位

28.设置IE下的iframe背景透明

方法:

设置iframe元素的标签属性allowtransparency=”allowtransparency”然后设置iframe内部页面的body背景色为transparent。不过由此会引发IE下一些其它问题,如:设置透明后的iframe将不能遮住select

29.解决Chrome在应用transition时页面闪动的问题

方法:

-webkit-transform-style:preserve-3d;或-webkit-backface-visibility:hidden;

在Chrome下,使用过渡效果transition时有时会出现页面闪动

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图