使用html和css的一些经验

十度 HTML 2016年02月18日 收藏

1.注释须知:html中注释不能这样写:

  <div></div><!--------这是错误写法------->
  <div></div><!--=======这是正确写法========-->

  这种写法,FF中会忽略其下面的内容.


  2.CSS注释切记在/*之后及*/之前空一格,否则在有些语言中会出问题,正确写法:

  #div{style}/* 注释前后要空格 */


  3.最简单区分IE与FF的HACK写法

  #layer{
  padding-top:20px;/* FF中定义 */
  *padding-top:10px;/* IE中定义 */
  }


  4.空div在IE(FF中没有)是有默认高度的,可以用定义:

  div{ witdh:100%; background:#9c0; ling-height:0}

  的方式去掉默认高度.


  5.按钮按下时立体感效果:

  

a:hover{ position:relative; top:1px; left:1px}/* 切记一定要是相对定位 */


  6.关闭当前页面代码:

  

<div onclick="window.close();">关闭当前页面</div>


  7.整站变灰代码(加到样式表中):

  

html{ filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);}


  8.设为首页代码:

  

<span onclick="var strHref=window.location.href;this.style.behavior='url(#default#homepage)';this.setHomePage('http://keleyi.com');" style="CURSOR:hand;">设为首页</span>


  9.加入收藏代码:

 

 <script language="JavaScript">
  function ITRenCai()
  {window.external.addFavorite('http://keleyi.com','柯乐义');}
  if (document.all)document.write('<a href="javascript:void(0);" onClick="ITRenCai();" title="把“柯乐义网”加入您的收藏夹!">收藏本站</a>')
  </script>


  10.导航间竖线的定义方法:

  css部分:

  

.nav{
  width:408px;/* 这个宽度一定要按li中的宽度算好 */
  float:right;
  display:inline;
  overflow:hidden;
  }
  .nav ul{
  margin:0;
  padding:0
  }
  .nav li{
  float:right;
  width:80px;
  height:auto;
  text-align:center;
  padding:0 10px;
  border-right:1px solid #444;
  margin-right:-1px;
  }

  html部分:

  

<div class="nav">
  <ul>
 <li><a href="http://keleyi.com/">柯乐义首页</a></li>
 <li><a href="http://keleyi.com/menu/webqd/">Web前端</a></li>
 <li><a href="http://keleyi.com/menu/jquery/">jquery资源</a></li>
 <li><a href="http://keleyi.com/menu/csharp/">C#资讯</a></li>
 <li><a href="http://keleyi.com/menu/other/">网络编程</a></li>
  </ul>
  </div>


  11.中英文下划线对齐方式(利用图片的align="absmiddle"):

  

<img src="img.gif" align="absmiddle">中英文并排:<a href="/">中文 gollum</a>


  12.li交替显示背景代码:

  

ul{
  list-style:none;
  font-size:12px;
  line-height:20px;
  color:#666;
  }
  ul li{
  background-color:e?xpression(this.sourceIndex%2==0?'#EAF8FD':'#ffffff');
  }


  13.利用css reset规避IE6下密码表单和文本不等长的问题,在css reset中加入:

  

input{font-family:Arial, Helvetica, sans-serif;}


  14.FF下上边距无效时,及时反应给父级div上写入overflow:hidden或overflow:auto;也可以在子级div中写入float:left; display:inline.


  15.描边文字效果:

  

<div style="position:relative; width:200px; height:25px; line-height:25px; text-align:center; font-size:14px; color:#fff; background:#9c0;">
  这是描边文字<span style="position:absolute; left:-1px; top:-1px; color:#444;width:200px; height:25px; display:block">这是描边文字</span>
  </div>


  16.通过定义em实现小三角效果:

  

*{font-size:14px;/* 必须通配字体大小 */}
  em{display:block;
  font:0/0 "宋体";/* 经本人摸索,只有在宋体下才最为标准 */
  border:7px solid;/* border值越大,三角形越大 */
  border-color:#fff #fff #fff #444;/* 通过改变颜色值,可产生不同效果,自己实验 */
  margin-top:5px;
  }

  在样式中加入以上代码后,在body中用<em></em>即可得到小三角效果.


  17.如果在FF中测试发现层错位或者下面的层跑到顶上了,八九不离十是没清除浮动的原因,在出问题那个层样式中加入:

  clear:both 即可.


  18.IE6下当层高低于10px时,会出现高度在定义值上加10px的效果,最简单的方法就是在该层样式中加入:

  font-size:0;

  立马将其打回原形.


  19.布局中栏目分割遵循62%:38%的原则.


  20.文字段在容器内超宽时,截断该文字段并且续以省略号:

  

overflow:hidden;text-overflow:ellipsis;

  这两具是连体的,单一用有问题.并且在FF下貌似无效,摸索中..


  21.display之line-block的HACK:

  

.menu{
  display:-moz-inline-stack;/* 专属FF也可以用-moz-inline-box定义 */
  *display:inline;
  zoom:1;/* 上一行和此行用于激活IE6/7的layout,实现类似效果 */
  }


  22.透明度滤镜的用法:

  

.navbg {
  filter:alpha(opacity=40); /* IE */
  -moz-opacity:0.4; /* Moz + FF */
  opacity: 0.4; /* 支持CSS3的浏览器(FF 1.5也支持)*/
  }


  23.在WEB标准中,h1在同一页面中只能出现一次.这个概念知道的人很多,但使用时忽略的人也相当的多.


  24.表格边框颜色的定义不能缩写,比如:

 

 bordercolor="#3399cc"
  不能写成:
  bordercolor="#39c"


  25.行高定义最便捷的方法,在body中加入:

  

line-height:1.5; /* 1.5不能有单位,含义为字体大小的1.5倍,可自定义 */

  如果某些文本不想以这个行高为标准,可以根据CSS优先级重新定义.


  26.当图像不存在时,可用一张通用图片代替显示:

  

<img src="image.gif" onerror="this.src='noimage.gif'" />


  27. 检索或设置对象的层叠顺序:

  

z-index:auto|number

  此属性仅仅作用于position属性值为relative 或absolute时的对象.看个DEMO


  28.使一个层垂直居中于浏览器中:

  

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