css 将鼠标悬停在带有填充的整个 li 元素上
css hover for entire li element with padding
我试图让菜单元素悬停,但它们也有一个 padding: 10px;
,因此 :hover: background-color:
将从 10px 填充开始。
知道如何解决这个问题吗?这是一个 jsfiddle 演示:http://jsfiddle.net/eufqg7d9/
已更新 fiddle:http://jsfiddle.net/eufqg7d9/3/
li.menu-item:hover {
margin-left: 10px;
padding-left: 0px;
opacity: 0.7;
background-color: red;
}
由于不清楚你在问什么,我给你做了另一个 fiddle:http://jsfiddle.net/eufqg7d9/6/。这基本上创建了您的图片效果。
ul {
margin: 0;
padding: 0;
}
li {
margin: 0;
}
div#main {
width: 900px;
height: auto;
border: 1px solid #ccc;
margin: 0 auto;
}
div#menu {
width: 300px;
height: auto;
float: left;
background-color: yellow;
}
ul.menu-list {
list-style: none;
}
li span {
margin-left: 40px;
}
li.menu-item {
width: auto;
padding: 10px;
}
li.menu-item:hover {
opacity: 0.7;
background-color: red;
}
这是UL的默认padding造成的。您可以明确地将其设置为 padding: 0 或使用像 http://meyerweb.com/eric/tools/css/reset/.
这样的重置
这是应用此重置后的 fiddle:http://jsfiddle.net/h3erxugg/
您也可以跳过添加额外的 类(如 "list-item")并简单地在 #menu "namespace" 中定位 'li' 元素本身。这是我的意思的一个例子:
<div id="menu">
<ul>
<li>Menü #1</li>
<li>Menü #2</li>
<li>Menü #3</li>
</ul>
</div>
然后相应的 CSS 看起来像这样:
#menu ul {
list-style: none;
}
#menu li {
padding: 10px;
}
#menu li:hover {
opacity: 0.7;
background-color: red;
}
尝试更新 css 的这一部分。
ul.menu-list {
list-style: none;
padding-left: 0;
}
我添加了 padding-left: 0;
以删除左侧的填充。
我试图让菜单元素悬停,但它们也有一个 padding: 10px;
,因此 :hover: background-color:
将从 10px 填充开始。
知道如何解决这个问题吗?这是一个 jsfiddle 演示:http://jsfiddle.net/eufqg7d9/
已更新 fiddle:http://jsfiddle.net/eufqg7d9/3/
li.menu-item:hover {
margin-left: 10px;
padding-left: 0px;
opacity: 0.7;
background-color: red;
}
由于不清楚你在问什么,我给你做了另一个 fiddle:http://jsfiddle.net/eufqg7d9/6/。这基本上创建了您的图片效果。
ul {
margin: 0;
padding: 0;
}
li {
margin: 0;
}
div#main {
width: 900px;
height: auto;
border: 1px solid #ccc;
margin: 0 auto;
}
div#menu {
width: 300px;
height: auto;
float: left;
background-color: yellow;
}
ul.menu-list {
list-style: none;
}
li span {
margin-left: 40px;
}
li.menu-item {
width: auto;
padding: 10px;
}
li.menu-item:hover {
opacity: 0.7;
background-color: red;
}
这是UL的默认padding造成的。您可以明确地将其设置为 padding: 0 或使用像 http://meyerweb.com/eric/tools/css/reset/.
这样的重置这是应用此重置后的 fiddle:http://jsfiddle.net/h3erxugg/
您也可以跳过添加额外的 类(如 "list-item")并简单地在 #menu "namespace" 中定位 'li' 元素本身。这是我的意思的一个例子:
<div id="menu">
<ul>
<li>Menü #1</li>
<li>Menü #2</li>
<li>Menü #3</li>
</ul>
</div>
然后相应的 CSS 看起来像这样:
#menu ul {
list-style: none;
}
#menu li {
padding: 10px;
}
#menu li:hover {
opacity: 0.7;
background-color: red;
}
尝试更新 css 的这一部分。
ul.menu-list {
list-style: none;
padding-left: 0;
}
我添加了 padding-left: 0;
以删除左侧的填充。