请问关于网页导航中,用了2种图片显示2种状态的DIV和CSS应该怎样写?

html-css012

请问关于网页导航中,用了2种图片显示2种状态的DIV和CSS应该怎样写?,第1张

这个 可以用 div:hover来写 要是用的 div布局的话

不过div:hover在ie6下不可以用,需要用个伪类

写法:

css:

.nav {width:500pxheight:30pxfloat:left}

.nav div{background:url(第一张图片) no-repeatwidth:100pxheight:30px}

.nav div:hover{background:url(第二张图片) no-repeatwidth:100pxheight:30px}

导航代码

<div class="nav">

<div>栏目1</div>

<div>栏目2</div>

<div>栏目3</div>

</div>

以上在 ie7+都可用 ie6下可调用以下js

/*解决ie6.0 的hover兼容问题*/

<attach event="ondocumentready" handler="parseStylesheets" />

<script>

var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i,

currentSheet, doc = window.document, hoverEvents = [], activators = {

onhover:{on:'onmouseover', off:'onmouseout'},

onactive:{on:'onmousedown', off:'onmouseup'}

}

function parseStylesheets() {

if(!/MSIE (5|6)/.test(navigator.userAgent)) return

window.attachEvent('onunload', unhookHoverEvents)

var sheets = doc.styleSheets, l = sheets.length

for(var i=0i<li++)

parseStylesheet(sheets[i])

}

function parseStylesheet(sheet) {

if(sheet.imports) {

try {

var imports = sheet.imports, l = imports.length

for(var i=0i<li++) parseStylesheet(sheet.imports[i])

} catch(securityException){}

}

try {

var rules = (currentSheet = sheet).rules, l = rules.length

for(var j=0j<lj++) parseCSSRule(rules[j])

} catch(securityException){}

}

function parseCSSRule(rule) {

var select = rule.selectorText, style = rule.style.cssText

if(!csshoverReg.test(select) || !style) return

var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1')

var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo)

var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]

var affected = select.replace(/:(hover|active).*$/, '')

var elements = getElementsBySelect(affected)

if(elements.length == 0) return

currentSheet.addRule(newSelect, style)

for(var i=0i<elements.lengthi++)

new HoverElement(elements[i], className, activators[pseudo])

}

function HoverElement(node, className, events) {

if(!node.hovers) node.hovers = {}

if(node.hovers[className]) return

node.hovers[className] = true

hookHoverEvent(node, events.on, function() { node.className += ' ' + className})

hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),'')})

}

function hookHoverEvent(node, type, handler) {

node.attachEvent(type, handler)

hoverEvents[hoverEvents.length] = {

node:node, type:type, handler:handler

}

}

function unhookHoverEvents() {

for(var e,i=0i<hoverEvents.lengthi++) {

e = hoverEvents[i]

e.node.detachEvent(e.type, e.handler)

}

}

function getElementsBySelect(rule) {

var parts, nodes = [doc]

parts = rule.split(' ')

for(var i=0i<parts.lengthi++) {

nodes = getSelectedNodes(parts[i], nodes)

}return nodes

}

function getSelectedNodes(select, elements) {

var result, node, nodes = []

var identify = (/\#([a-z0-9_-]+)/i).exec(select)

if(identify) {

var element = doc.getElementById(identify[1])

return element? [element]:nodes

}

var classname = (/\.([a-z0-9_-]+)/i).exec(select)

var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '')

var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false

for(var i=0i<elements.lengthi++) {

result = tagName? elements[i].all.tags(tagName):elements[i].all

for(var j=0j<result.lengthj++) {

node = result[j]

if(classReg &&!classReg.test(node.className)) continue

nodes[nodes.length] = node

}

}

return nodes

}

</script>

以上js代码保存在一个 htc文件中

之后在css文件中加上

body

{

behavior: url(../css/hover.htc)/*可在IE6,7中对非<a>元素使用hover等伪类*/

}

不支持绝对路径,只支持相对路径。

如还没能解决 可以hi我 。 这个绝对有效用

CSS显示一个大图片中的多个小图标,主要是用background-position这个属性来控制的。

首先先将放置背景小图标的元素的大小设置成图片里图标的实际大小,用width和height设置,然后用background-image把背景图片放进去,比如:

.showImage{

background-image: url(9pic2.jpg)

width: 100px

height: 100px

}

然后用background-position属性调整背景图片的位置,它有两个值分别表示背景图片沿着x和y轴移动的距离。

扩展资料

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。

选择器就是需要改变样式的 HTML 元素。每条声明由一个属性和一个值组成,属性是设置的样式属性(style attribute),每个属性都有一个值,属性和值用冒号分隔。CSS 声明总是以分号 结束,声明组以大括号 {...} 括起来。为了让 CSS 可读性更强,可以每行只描述一个属性。

CSS 注释是用来解释代码,并且可以随意编辑,浏览器会忽略它。CSS注释以 "/*" 开始,以 "*/" 结束。

当读到一个样式表时,浏览器会根据它来格式化 HTML 文档。CSS 创建样式表有三种方法:内联样式、内部样式、外部样式。

<style>

ul.list1 {list-style-type:circle} /* 圆形符号 */

ul.list2 {list-style-type:square} /* 实心方块 */

</style>

<body>

<ul class="list1">

<li>list1</li>

</ul>

<ul class="list2">

<li>list1</li>

</ul>

</body>