在不“推”其他元素的情况下切换图像可见性的最佳方法是啥?

Posted

技术标签:

【中文标题】在不“推”其他元素的情况下切换图像可见性的最佳方法是啥?【英文标题】:What is the best way to toggle the visibilty of an image without "pushing" other elements over?在不“推”其他元素的情况下切换图像可见性的最佳方法是什么? 【发布时间】:2014-12-05 17:24:23 【问题描述】:

我有一个网页,其中有一个表格单元格内的图像,我只想在您将鼠标悬停在单元格上时显示该图像。

我遇到的问题是,当显示图像时,它会将其他文本“推”到左侧(因为默认状态是 display:none”)。我正在寻找一种解决方案

在表格单元格中,我在右上角有一张使用此代码的图像:

 <td class="tableCell">
        <span class="cellMenu">
           <img src="/Icons/arrow_down.png" class="seatMenuArrow">
        </span>
        A bunch of other text that is all center aligned
 </td>

这是使 cellMenu 图像右上角的 css。

.cellMenu

    display:none;
    float:right;
    cursor: pointer;

我这样做是为了仅在您将鼠标悬停在单元格上时显示仪器。

$('.tableCell').live('hover', function () 
      $(this).toggleClass("hover").find(".cellMenu").toggle();
);

这可行,但是当显示图像时,“一堆其他全居中对齐的文本”会移动。什么是避免这种移动的正确方法是只显示图像而没有其他移动?

【问题讨论】:

使用visibility:hidden,还是会占空间但不显示 看这个问题:***.com/questions/9614622/… 【参考方案1】:

不用 jQuery 也可以:

.cellMenu img
  
    opacity:0;
    float:right;
    cursor: pointer;
  

.cellMenu:hover img
  
     opacity: 1;
  

添加了JSfiddle

【讨论】:

我不想在将鼠标悬停在图像上时显示图像,而是在将鼠标悬停在 tablecell 上时显示图像。 . 看看我的编辑。当您将鼠标悬停在.cellMenu 上时,它会更改其中存储的img 的不透明度。 查看 JSfiddle 看看它是否有你想要的结果 :) 所有浏览器都支持这个css吗?

以上是关于在不“推”其他元素的情况下切换图像可见性的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不将旧根保存在堆栈中的情况下切换到新根?

WPF 触发器绑定:将枚举值绑定到可见性的最佳方法是啥?

我可以在不滚动网页的情况下更新 window.location.hash 吗?

Easymock:如何在不可见的情况下模拟受保护方法的调用

如何在不推送到服务器的情况下更新中继存储

如何在不影响子元素的情况下更改背景图像的不透明度?