收藏本站 
广告服务 
网站地图 
>> 我们从网络和杂志上收集了近100000余篇各类电脑技术、网络技术、软件技术等方面的文章教程,我们的收录原则:不是精华拒不收录!
先飞电脑技术网技术文章
XML条件注释理论及实践
[ 作者:佚名    转贴自:网络转载    阅读次数:0    更新时间:2006-11-26 13:04:00   录入:刘光勇 ]        
    

浏览器的条件注释理论,用下面一段例子来解释这个问题
(X)HTML

下面一段代码是测试在微软的IE浏览器下的条件注释语句的效果

程序代码:

<!--[if IE]>
<h1>您正在使用IE浏览器</h1>
<![endif]-->
<!--[if IE 5]>
<h1>版本 5</h1>
<![endif]-->
<!--[if IE 5.0]>
<h1>版本 5.0</h1>
<![endif]-->
<!--[if IE 5.5]>
<h1>版本 5.5</h1>
<![endif]-->
<!--[if IE 6]>
<h1>版本 6</h1>
<![endif]-->
<!--[if IE 7]>
<h1>版本 7</h1>
<![endif]-->

下面的代码是在非IE浏览器下运行的条件注释

<!--[if !IE]><!-->
<h1>您使用不是 Internet Explorer</h1>
<!--<![endif]-->
最终在非IE和特殊的IE浏览器下起作用
(或者使用  lte lt 或者 gt gte来判断,如:
<!--[if lte IE 6]>
  在IE 6下显示的信息
<![endif]--> 
).

<!--[if IE 6]><!-->
<h1>您正在使用Internet Explorer version 6<br />
或者 一个非IE 浏览器</h1>
<!--<![endif]-->

From:
http://www.cssplay.co.uk/menu/conditional.html
预览模型 :http://www.jluvip.com/works/css/conditional.html
上面提到了条件注释,就是判断浏览器类型,然后定义什么浏览器下显示什么内容。
这个dropmenu(下拉菜单)模型来自
http://www.cssplay.co.uk/menus/final_drop.html,使经过作者多次的研究和反复的测试才做出来的。我想那这个模型来实践一下条件注释的原理。
先看一个最简单的模型
http://www.jluvip.com/works/css/dropmenu/dropmenudemo.html
下面是xhtm

程序代码:

<div class="menu">
<ul>
<li><a class="drop" href="../menu/index.html">DEMOS
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->
<!--IE7时显示</a>标签-->
<table><tr><td>
    <ul>
    <li><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars advertising page</a></li>
    <li><a href="../menu/embed.html" title="Wrapping text around images">wrapping text around images</a></li>
    <li><a href="../menu/form.html" title="Styling forms">styled form</a></li>
    <li><a href="../menu/nodots.html" title="Removing active/focus borders">active focus</a></li>
    <li><a class="drop" href="../menu/hover_click.html" title="Hover/click with no active/focus borders">hover/click with no borders</li>
    <li class="upone"><a href="../menu/shadow_boxing.html" title="Multi-position drop shadow">shadow boxing</a></li>
    <li><a href="../menu/old_master.html" title="Image Map for detailed information">image map for detailed information</a></li>
    <li><a href="../menu/bodies.html" title="fun with background images">fun with background images</a></li>
    <li><a href="../menu/fade_scroll.html" title="fade-out scrolling">fade scrolling</a></li>
    <li><a href="../menu/em_images.html" title="em size images compared">em image sizes compared</a></li>
    </ul>
</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->
</li>
<!--IE6时显示</a>标签-->
</ul>
</div>

css

程序代码:

<link rel="stylesheet" media="all" type="text/css" href="final_drop.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" media="all" type="text/css" href="final_drop_ie.css" />
<![endif]-->

采用双样式,给ie和非ie分别定义样式,如果IE时候,在final_drop.css基础上补充一个final_drop_ie.css

先看看非ie下的css是怎样定义的

程序代码:

.menu ul li ul {
display: none;
}
/* specific to non IE browsers */
.menu ul li:hover a {
color:#fff; 
background:#bd8d5e;
}
/*定义鼠标滑过样式*/
.menu ul li:hover ul {
display:block; 
position:absolute; 
top:3em;
margin-top:1px;
left:0; 
width:150px;
}

在非IE下,看到鼠标滑过时候li包含的ul显示了,因为这些浏览器支持li:hover用法

IE下的css


程序代码:

.menu ul li a:hover {
color:#fff; 
background:#bd8d5e;
}
/*当鼠标滑过时li包含的ul显示*/
.menu ul li a:hover ul {
display:block; 
position:absolute; 
top:3em; 
left:0;
background:#fff;
margin-top:0;
marg\in-top:1px;
}

继承上面的final_drop.css样式,无鼠标时间时候li包含的ul不显示
因为
<!--[if lte IE 6]>
</a>
<![endif]-->
所以在IE6下鼠标滑过时候在通过a:hover来显示那个ul内容
而IE7下通过li:hover显示的效果一样

下面是作者的原模型(三级菜单纵向和相结合的)
就是在简单模型的基础上复杂化
预览模型
http://www.jluvip.com/works/css/dropmenu/dropmenu.html
相关文件:
共三个放在同一目录下

dropmenu.html


程序代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>THE ULTIMATE CSS ONLY DROPDOWN MENU</title>
<link rel="stylesheet" media="all" type="text/css" href="final_drop.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" media="all" type="text/css" href="final_drop_ie.css" />
<![endif]-->
</head>

<body>
<div class="menu">

<ul>
<li><a class="drop" href="../menu/index.html">DEMOS
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->

<table><tr><td>
    <ul>
    <li><a href="../menu/zero_dollars.html" title="The zero dollar ads page">zero dollars advertising page</a></li>
    <li><a href="../menu/embed.html" title="Wrapping text around images">wrapping text around images</a></li>
    <li><a href="../menu/form.html" title="Styling forms">styled form</a></li>
    <li><a href="../menu/nodots.html" title="Removing active/focus borders">active focus</a></li>

    <li><a class="drop" href="../menu/hover_click.html" title="Hover/click with no active/focus borders">hover/click with no borders
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->


<table><tr><td>
        <ul>
            <li><a href="../menu/form.html" title="Styling forms">styled form</a></li>
            <li><a href="../menu/nodots.html" title="Removing active/focus borders">removing active/focus borders</a></li>
            <li><a href="../menu/hover_click.html" title="Hover/click with no active/focus borders">hover/click</a></li>
        </ul>
</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

    </li>

    <li class="upone"><a href="../menu/shadow_boxing.html" title="Multi-position drop shadow">shadow boxing</a></li>
    <li><a href="../menu/old_master.html" title="Image Map for detailed information">image map for detailed information</a></li>
    <li><a href="../menu/bodies.html" title="fun with background images">fun with background images</a></li>
    <li><a href="../menu/fade_scroll.html" title="fade-out scrolling">fade scrolling</a></li>
    <li><a href="../menu/em_images.html" title="em size images compared">em image sizes compared</a></li>
    </ul>

</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

</li>


<li><a href="../boxes/index.html">BOXES
<!--[if IE 7]>-->
</a>
<!--<![endif]-->


<table><tr><td>

    <ul>
    <li><a href="spies.html" title="a coded list of spies">a coded list of spies</a></li>
    <li><a href="vertical.html" title="a horizontal vertical menu">vertical menu</a></li>
    <li><a href="expand.html" title="an enlarging unordered list">enlarging unordered list</a></li>
    <li><a href="enlarge.html" title="an unordered list with link images">link images</a></li>
    <li><a href="cross.html" title="non-rectangular links">non-rectangular</a></li>
    <li><a href="jigsaw.html" title="jigsaw links">jigsaw links</a></li>
    <li><a href="circles.html" title="circular links">circular links</a></li>
    </ul>

</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

</li>

<li><a href="../mozilla/index.html">MOZILLA
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->


<table><tr><td>

    <ul>
    <li><a href="../mozilla/dropdown.html" title="A drop down menu">drop down menu</a></li>
    <li><a href="../mozilla/cascade.html" title="A cascading menu">cascading menu</a></li>
    <li><a href="../mozilla/content.html" title="Using content:">content:</a></li>
    <li><a href="../mozilla/moxbox.html" title=":hover applied to a div">mozzie box</a></li>
    <li><a href="../mozilla/rainbow.html" title="I can build a rainbow">I can build a rainbow with transparent borders</a></li>
    <li><a href="../mozilla/snooker.html" title="Snooker cue">a snooker cue using border art</a></li>
    <li><a href="../mozilla/target.html" title="Target Practise">target practise</a></li>
    <li><a href="../mozilla/splittext.html" title="Two tone headings">two tone headings</a></li>
    <li><a href="../mozilla/shadow_text.html" title="Shadow text">shadow text</a></li>
    </ul>

</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

</li>

<li><a href="../ie/index.html">EXPLORER
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->


<table><tr><td>

    <ul>
    <li><a href="../ie/exampleone.html" title="Example one">the first example for Internet Explorer</a></li>
    <li><a href="../ie/weft.html" title="Weft fonts">weft fonts</a></li>
    <li><a href="../ie/exampletwo.html" title="Vertical align">vertically aligning text</a></li>
    </ul>

</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

</li>

<li><a href="../opacity/index.html">OPACITY
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->


<table><tr><td>

    <ul>
    <li><a href="../opacity/colours.html" title="colour wheel">a colour wheel using opaque colours</a></li>
    <li><a href="../opacity/picturemenu.html" title="a menu using opacity">a menu using opacity</a></li>
    <li><a href="../opacity/png.html" title="partial opacity">partial opacity</a></li>
    <li><a href="../opacity/png2.html" title="partial opacity II">partial opacity II</a></li>

    <li><a class="drop" href="../menu/hover_click.html" title="Hover/click with no active/focus borders">HOVER/CLICK
<!--[if IE 7]><!-->
</a>
<!--<![endif]-->

<table><tr><td>

        <ul class="left">
            <li><a href="../menu/form.html" title="Styling forms">styled form</a></li>
            <li><a href="../menu/nodots.html" title="Removing active/focus borders">removing active/focus borders</a></li>
            <li><a href="../menu/hover_click.html" title="Hover/click with no active/focus borders">hover/click</a></li>
        </ul>

</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

    </li>
    </ul>

</td></tr></table>

<!--[if lte IE 6]>
</a>
<![endif]-->

</li>
</ul>

</div>


</body>
</html>

final_drop_ie.css


程序代码:

.menu ul li a:hover {
color:#fff; 
background:#bd8d5e;
}
.menu ul li a:hover ul {
display:block; 
position:absolute; 
top:3em; 
left:0;
background:#fff;
margin-top:0;
marg\in-top:1px;
}
.menu ul li a:hover ul li a {
display:block; 
background:#dbe4ab; 
color:#000; 
height:auto; 
line-height:1.5em; 
padding:5px 10px; 
width:150px;
w\idth:129px;
}
.menu ul li a:hover ul li a.drop {
background:#c9c9a7 url(drop.png) bottom right no-repeat;
}
.menu ul li a:hover ul li a ul {
visibility:hidden; 
position:absolute; 
height:0; 
width:0;
}
.menu ul li a:hover ul li a:hover {
background:#c9c9a7; color:#000;
}
.menu ul li a:hover ul li a:hover ul {
visibility:visible; 
position:absolute; 
top:0; 
color:#000;
left:150px;
}
.menu ul li a:hover ul li a:hover ul.left {
left:-150px;
}

final_drop.css


程序代码:

 /* common styling */
.menu {
font-family: verdana, sans-serif; 
width:750px; 
position:relative; 
font-size:0.85em;
}
.menu ul {
padding:0; 
margin:0;
list-style-type: none;
}
.menu ul li {
float:left;
position:relative;
}
.menu ul li a, .menu ul li a:visited {
display:block; 
text-decoration:none; 
color:#000; 
width:139px; 
height:3em; 
color:#000; 
border:1px solid #fff; 
border-width:1px 1px 0 0; 
background:#dfc184; 
padding-left:10px; 
line-height:3em;
}
* html .menu ul li a, .menu ul li a:visited {
width:149px;
w\idth:139px;
}
.menu ul li ul {
display: none;
}
table {
margin:-1px; 
border-collapse:collapse;
font-size:1em;
}

/* specific to non IE browsers */
.menu ul li:hover a {
color:#fff; 
background:#bd8d5e;
}
.menu ul li:hover ul {
display:block; 
position:absolute; 
top:3em;
margin-top:1px;
left:0; 
width:150px;
}
.menu ul li:hover ul li ul {
display: none;
}
.menu ul li:hover ul li a {
display:block; 
background:#faeec7; 
color:#000; 
height:auto; 
line-height:1.2em; 
padding:5px 10px; 
width:129px
}
.menu ul li:hover ul li a.drop {
background:#c9c9a7 url(drop.png) bottom right no-repeat;
}
.menu ul li:hover ul li a:hover {
background:#c9c9a7; 
color:#000;
}
.menu ul li:hover ul li:hover ul {
display:block; 
position:absolute; 
left:150px; 
top:0;
width:150px;
}
.menu ul li:hover ul li:hover ul.left {
left:-150px;
}

上一篇:Web 2.0中AJAX技术应用详解  下一篇: WML标记语言开发实例详细解析  

网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号