动态更改UL样式
Dynamically changing UL style
我有一个无序列表与几个"li"元素。这个想法是突出当前的"li",它当前处于焦点(悬停)。
使用如下代码
li[i].onmouseover = function() {
this.style.backgroundColor = 'lime';
this.style.borderLeft='5px solid red';
this.style.listStyle = 'square';
};
Here's working fiddle
我想要一个左边框出现在悬停元素,这是发生在小提琴。但这似乎使文本向右移动。如何摆脱文本跳跃的行为?
我的下一个问题是我们可以为ul创建自己的符号吗?目前我在正方形和圆盘之间切换。有可能在每个"里"上有花哨的图标吗?
解决方案如下。
HTML:<h1>Introduction to the DOM</h1>
<p class="test">There are a number of reasons why the
DOM is awesome, here are some:</p>
<ul>
<li id="everywhere">It can be found everywhere.</li>
<li class="test">It's easy to use.</li>
<li class="test">It can help you to find what you want, really quickly.</li>
</ul>
JavaScript: var li = document.getElementsByTagName("li");
for ( var i = 0; i < li.length; i++ ) {
li[i].onmouseover = function() {
this.style.backgroundColor = 'lime';
this.style.borderLeft='5px solid red';
this.style.listStyle = 'square';
};
li[i].onmouseout = function() {
this.style.backgroundColor = 'white';
this.style.borderLeft='';
this.style.listStyle = 'disc';
};
}
CSS: ul li {line-height:30px; padding-left: 10px; border-left:5px solid transparent;}
#element {
background: linear-gradient(top, black 0%, white 100%);
}
添加一个相同宽度的透明边框,当你不悬停时,也,而不是动态地改变样式,请只改变className,并保持它们属于的样式
如果你能使用伪元素:hover就更好了(除非你真的需要支持IE..啊. .)
下面的代码可以通过css技巧来实现添加到你的css
ul li {line-height:30px; padding-left: 15px; border-left:5px solid white}
它在这里工作得很好http://jsfiddle.net/sarfarazdesigner/XNqaV/2/
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 在单独的ul's
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 定义完全独立的样式信息
- W3C循环样式的JavaScript
- jQuery/JavaScript在线公文包表单-打印样式表
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- FF和Chromium中CSS样式按钮的外观差异
- 如何首先设置样式<td>表中包含在窗体中的元素
- 第一次点击将ul样式设置为none后,引导菜单消失
- 当列表被动态添加到ul中时,CSS样式就丢失了
- 动态更改UL样式
- Ul样式仅在滚动时更改,在返回滚动/更改点时失去样式
- 自定义样式化UL/LI元素
- 如何将具有特定css样式的所有li元素移动到另一个ul中?
- 将焦点样式事件应用于UL标记元素
- 仅为UL的第一个元素(JS或jquery)添加类的样式
- handlerOut在菜单样式<ul>