存档

文章标签 ‘网页’

web开发从头说起:理解css盒模型

2009年12月21日 小李刀刀 3 条评论

在掌握了丰富而强大的之后,就具备了将css样式根据需要应用到网页中任何元素的能力。能够应用规则了,接下来就需要熟练掌握规则的制定方法——什么样的属性组合能够实现什么样的效果。一般的颜色、字体、字号、行高等的设置比较容易掌握,而初学者在应用css的时候,主要头疼的还是如何用css实现复杂的网页布局,从两栏布局、三栏布局,到表单设计等。在布局的时候,实际上主要是借助元素的宽、高、定位、浮动、边距、边框、间距、背景颜色、背景图片的组合来实现的。而所有这些,都要基于对css盒模型的理解。网上对盒模型的论述很多(推荐阅读《彻底理解css盒子模式》),我这里想从实用的角度来谈谈。

阅读全文…

前台开发从头说起:谈谈CSS选择符

2009年12月16日 小李刀刀 4 条评论

以前我接受了网上不少博文的说法,一直认为学习css的三大最重要问题是:盒模型、定位、浮动。因为这三块的内容决定了css布局的能力。但是通过日志的分析,xhtml要实现和css的解耦,就要尽量不依赖于css(或者说不要纯粹为了给css预留接口而添加不必要的class和id),那么,在用css布局之前,其实就有一个更紧迫的任务摆在我们的面前——如何将css规则准确应用到目标元素。于是,css选择符的地位在这个前提下就空前的提高了。所以,在开始学习盒模型、浮动、定位之前,有必要回顾一下选择符。

阅读全文…

前台开发从头说起:关于web标准化

2009年12月15日 小李刀刀 3 条评论

虽然CSS在表现方面天生具有很多优势,但是如果不是web标准化的盛行,估计CSS不会达到今天这样的热门。所以要说CSS,肯定要从web标准化说起。实际上,对CSS的理解越深,才能越好地理解和使用CSS。

很多人对于web标准化的理解就是“DIV+CSS”,或者“IE、FF、Chrome、Opera、Safari测试无错”,或者就是“通过w3c校验”。实际上,这些都只是web标准化以后附带的一些好处或者说一些表现。web标准化的精髓并不是为了抛弃表格,或者浏览器兼容,或者通过w3c校验。有时候,标准化了的网页未必一定能达到上述这些特征。

阅读全文…

Whatever:hover – 无需javascript让IE支持丰富伪类

2009年6月22日 小李刀刀 没有评论

绝大部分现代浏览器支持 css 中的 :hover 伪类选择器,可以用于所有 html 元素。这很酷,因为这使你可以仅通过 css 来对表格行(<tr>)应用鼠标滑过事件(mouseover)时的特殊效果。然而,万恶的IE,对 :hover 伪类顶多只提供了有限的支持,具体支持的程度要取决于你的IE浏览器的具体版本。

Whatever:hover 是一个小小的脚本,它可以迅速、自动地为IE6,IE7,IE8添加标准的 :hover、:active 和 :focus 伪类支持。第三版引入了 ajax 支持,意味着通过 javascript 动态添加到文档中的任意html元素也同样可以在IE中响应 :hover、:active 和 :focus 样式。

阅读全文…

分类: 所谓技术 标签: , , ,

来自微软站点的纯CSS下拉菜单

2009年4月16日 小李刀刀 3 条评论

结合JavaScript的下拉菜单,纯CSS的下拉菜单我也写过很多了。不过在微软 Microsoft Expression Web 的相关站点上看到这个纯CSS下拉菜单的时候,我还是觉得很赞赏。这应该是最精简、最干净的纯CSS下拉菜单了。

阅读全文…

分类: 所谓技术 标签: , ,

简单、通用的JQuery Tab实现

2009年4月13日 小李刀刀 没有评论

网页上的空间是寸土寸金,虽然显示器的分辨率越来越大,可是直到今天,网页设计中仍然是以至少1024×768 像素的支持为主,也就是说,每一屏页面只有区区 955×600像素 的安全尺寸可以用而已。于是,为了在有限的空间里容纳更多的内容,滑动门式的标签切换(Tabs)方式越来越受欢迎。通过滑动门技术,可以在同一块页面区域内放置数倍的内容。根据用户的选择来决定显示哪一部分。最近我在实际应用中,逐步完善出一种基于 jQuery,但是比 jQuery UI Tabs 插件更小巧也更通用的简单 Tabs 实现。

阅读全文…

动态实现指定图片半透明及鼠标事件

2006年4月4日 小李刀刀 没有评论

说明:在不改变HTML代码的前提下,通过CSS和JavaScript,对指定的图片实现半透明效果。并为该图片添加鼠标滑过和滑出特效。

具体实现:

1.假设我们要操作的图片放置在一个id="imgbox"的div容器中。如下面的代码:

<div id="imgbox" style="width:700px;margin:auto;"><img src="/images/logof.gif"></div>

2.首先,在css中增加两个类定义,为了避免影响到其它图片,最好是用选择限定符加以限定。如下代码:

#imgbox img.low{-moz-opacity:0.5;filter:alpha(opacity=50);cursor:hand;}
#imgbox img.high{-moz-opacity:1;filter:alpha(opacity=100);cursor:hand;}

3.然后在网页的<head>区域增加JavaScript,JavaScript将在页面载入完成之后,为我们指定的图片添加半透明效果和鼠标事件:

<script language="JavaScript" type="text/javascript">
window.onload = function() {
 var imgNode = document.getElementById("imgbox").getElementsByTagName("img")[0];
 imgNode.setAttribute("class","low");
 imgNode.className = "low";
 imgNode.onmouseover = function(){
  this.setAttribute("class","high");
  this.className = "high";
 }
 imgNode.onmouseout = function(){
  this.setAttribute("class","low");
  this.className = "low";
 }
}
</script>

补充说明:

在上面的JavaScript中,设置图片的class属性的时候,同时使用了两种方式:

imgNode.setAttribute("class","low");
imgNode.className = "low";

第一种方式是针对IE以外的浏览器,按理说设置class属性对所有的浏览器都是有效的。但是IE比较有个性,它通过元素的className来定义class属性。这是IE不符合规范的地方,但是我们不得不考虑到IE占据的广大市场。所以,同时使用两种方式,从而达到跨浏览器兼容的效果。

适合多图片调用的修改

当时做的时候是针对单张图片的情况做的。如果要用于调用的多图片,可以把JS代码做如下修改:

<script language="JavaScript" type="text/javascript">
window.onload = function() {
    var imgNodes = document.getElementById("imgbox").getElementsByTagName("img");
    for (var i=0; i<imgNodes.length; i++ ){
        var imgNode = imgNodes;
        imgNode.setAttribute("class","low");
        imgNode.className = "low";
        imgNode.onmouseover = function(){
            this.setAttribute("class","high");
            this.className = "high";
        }
        imgNode.onmouseout = function(){
            this.setAttribute("class","low");
            this.className = "low";
        }
    }
}
</script>

再做改进:改为当图片加载完毕就产生效果:

首先定义函数:

<script language="JavaScript" type="text/javascript">
function transpic() {
    var imgNodes = document.getElementById("imgbox").getElementsByTagName("img");
    for (var i=0; i<imgNodes.length; i++ ){
        var imgNode = imgNodes;
        imgNode.setAttribute("class","low");
        imgNode.className = "low";
        imgNode.onmouseover = function(){
            this.setAttribute("class","high");
            this.className = "high";
        }
        imgNode.onmouseout = function(){
            this.setAttribute("class","low");
            this.className = "low";
        }
    }
}
</script>

然后在图片调用代码的后面调用此函数(例如):

<div id="imgbox" style="width:700px;margin:auto;"><img src="/images/logof.gif"></div>
<script type="text/javascript" language="JavaScript">transpic();</script>

分类: 所谓技术 标签: , , ,

CSS:模拟Windows窗口及DIV居中

2006年3月28日 小李刀刀 没有评论

  利用CSS,尝试做了一个仿Windows窗口的横向纵向均居中的Div效果:

  效果图如下:

 点击查看大图

  以下是完整源代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>动易远程接口中转</title>
<style type="text/css">
<!–
body {margin:0px;background:#ccc;height:auto;font: 9pt Tahoma;text-align:center;color: #000;}
#outbox {position:absolute;z-index:888;top:50%;left:50%;margin:-120px 0 0 -200px;width:400px;height:auto;background:#D4D0C8;border:1px solid #ccc;}
#title,#body,#bottom {border-top:1px solid #ddd;border-bottom:1px solid #999;border-right:1px solid #999;border-left:1px solid #ddd;}#title {line-height:28px;background:#c4c0c8;}
#body {height:150px;text-align:left;padding:10px 10px;}
#bottom {height:30px;padding:2px}
#input {top:0px;bottom:0px;}
–>
</style>
</head>
<body>
<div id="outbox">
  <div id="title">正在进行通行证操作</div>
  <div id="body">
    <p>正在进行远程数据同步,请勿刷新页面!</p>
    <ul>
      <li id="api">论坛数据同步中</li>
      <li id="powereasy">本站操作已完成!</li>
    </ul>
  </div>
  <div id="bottom">
    <input onclick="location.href='index.asp'" id="confirm" type="button" value="点击返回" style="display:none" />
  </div>
</div>
<script type="text/javascript" language="JavaScript"> document.getElementById("api").innerHTML = "通行证操作成功!"; document.getElementById("confirm").removeAttribute("style");</script>
</body>
</html>
分类: 所谓技术 标签: , ,