jquery - 可扩展列表,在突出显示时跳转一个像素

标签 jquery css

我有这个列表 FIDDLE

我想弄清楚为什么,如果您突出显示 B 组中的一个元素,它会向下移动一个像素。
这不会发生在 A 组。为什么?

这是 JQuery

$(".expandListHeader").click(function () {
    $header = $(this);
    $content = $header.next();
    $content.find('.expandListContentRow').toggle("slow"); });

$( ".expandListItem" ).click(function() {
    $( this ).toggleClass( "highlight" ); 
});

突出显示的 CSS。

  .highlight{
    margin-top: -1px;
    margin-bottom: -1px;
    border-top:1px solid #bbb;
    border-bottom:1px solid #bbb;
    background: #FFEC80;
  }

最佳答案

因为您正在为突出显示的 div 应用边框。普通盒模型将内容计为 100% 高度,然后为其添加填充和 1px 边框。由于一开始您的边框未定义,因此您的 div 总高度较小。一旦你突出显示你的 div,它的高度将增加 +1px,因为边框被添加到内容 height + padding

要么将透明边框应用于.expandListItem - border-bottom: 1px solid transparent;

.expandListItem {
    width: 340px;
    padding-left:10px; 
    font-size:13px;
    float: left;
    margin-right: 20px; 
    padding-left: 20px; 
    padding-top: 5px;
    padding-bottom: 5px;
    margin-top: -1px;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
}

http://jsfiddle.net/easwee/jkx1wu0n/1/

关于jquery - 可扩展列表,在突出显示时跳转一个像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26502459/

相关文章:

javascript - 将 noUISlider 的最小/最大值保存到变量

javascript - 如何在 jQuery 中使用 .css 函数

javascript - 使用 onclick 更改按钮文本

css - 如果有空格,为什么现代浏览器仍然在内联 block 之间放置空格

javascript - 暂停和播放事件会更改 jquery 中的 CSS

CSS 耦合链接文本和 CSS 三 Angular 形

javascript - 从另一个站点获取 JSON 并转换为数组或 csv

javascript - 使用 id 来连接

jquery - 从 elements 属性中替换 img src

php - jquery $.post 空数组