我正在尝试使用无序列表中的列表项创建效果。
基本上,只要一个人在列表上盘旋,大小就会在填充中调整2px。虽然这正确地影响了列表项的整体尺寸,因此将其他列表元素推向右侧并将div beaneath推向2px。有人知道解决这个问题的方法吗?
我希望列表项在悬停期间执行的操作是将填充增加2px而不影响其周围的任何其他元素。
您可以在jsfiddle here以及以下代码中找到代码:
HTML
<div id="info">
<ul class="projects">
<li class="site wmhr"><a href="#">$</a>
<p>What's My Hourly Rate</p>
</li>
<li class="site proud"><a href="#">P</a>
<p>PROUD</p>
</li>
<li class="site mdy"><a href="#">M</a>
<p>Manda Dougherty Yoga</p>
</li>
<li class="site rr"><a href="#">R</a>
<p>Responsive Resume</p>
</li>
<li class="site dp"><a href="#">D</a>
<p>designpairs (in progress)</p>
</li>
</ul>
</div>
CSS
.projects {
margin: 0;
padding: 0 0 50px 0;
}
.projects li {
display: inline-block;
list-style: none;
width: 70px;
height: 70px;
margin: 50px 20px 20px 0;
border: 4px solid #555;
border-radius: 50%;
font-size: 2em;
text-align: center;
line-height: 70px;
background: #414141;
-webkit-transition: all .2s ease;
-moz-transition: all .2s ease;
-ms-transition: all .2s ease;
-o-transition: all .2s ease;
transition: all .2s ease;
}
.projects p {
font-size: .850rem;
line-height: 1.500em;
}
.projects li:hover {
padding: 2px;
display: inline-block;
list-style: none;
border-radius: 50%;
line-height: 71px;
}
.projects li a {
font-family:'Montserrat', sans-serif;
color: #fff;
text-decoration: none;
}
.wmhr:hover {
background: #66CC6E;
border: 4px solid #57ac5e;
}
.proud:hover {
background: #5882c2;
border: 4px solid #4b6da2;
}
.mdy:hover {
background: #fec601;
border: 4px solid #ddad03;
}
.rr:hover {
background: #797b96;
border: 4px solid #606176;
}
.dp:hover {
background: #475161;
border: 4px solid #38404d;
}
答案 0 :(得分:0)
如果您不希望项目移动,则必须通过减少某些其他维度来抵消填充,或者更改布局结构以不使用内联布局。
这里是你的jsFiddle的一个版本,它使用边距的减少来抵消填充的增加。悬停的物品变大,但其他物品不动。
.projects li:hover {
padding: 2px;
display: inline-block;
list-style: none;
border-radius: 50%;
line-height: 71px;
margin: 48px 18px 18px 0;
}
注意,我还将默认左边距更改为2px,因此我可以将其缩小为0,因为我讨厌使用负边距(它们有时会导致对象重叠,从而导致意外行为)。
答案 1 :(得分:0)
我会使用CSS转换属性,而不是添加填充并调整它。
.projects li:hover {
transform: scale3d(1.2,1.2,1);
}
使用scale3d
而非简单scale
,因为scale3d
使用硬件加速。您还需要添加-webkit
和-moz
前缀以获得更好的兼容性。