社交图标在移动设备和某些平板电脑中不起作用(链接不起作用,它们不会在悬停时更改图像)

Posted

技术标签:

【中文标题】社交图标在移动设备和某些平板电脑中不起作用(链接不起作用,它们不会在悬停时更改图像)【英文标题】:Social icons won't work in mobile and in some tablets (Link doesn't work and they don't change image on hover) 【发布时间】:2014-09-18 10:23:21 【问题描述】:

我创建了一些社交媒体图标并使用以下 html 和 css 进行设置。它们应该在悬停时更改为不同的图像,并且还应该链接到各种社交媒体链接。但是,在某些平板电脑和移动设备上,它不会在悬停时更改图像,并且当您单击它时不会去任何地方。这是它的 HTML 和 CSS。在页面的顶部和底部都有一个。我遇到了页脚区域底部的问题。

HTML:

<div class="social-media-holder socialtop">
            <div title="Visit our Facebook page" class="social-facebook" onclick="window.open('http://www.facebook.com/ilovetennistoronto')"></div>
            <div title="Visit our Twitter page" class="social-twitter" onclick="window.open('http://www.twitter.com/ilovetennisTO')"></div>
            <div title="Visit our Google+ page" class="social-google" onclick="window.open('https://plus.google.com/u/1/b/117545117809252336887/117545117809252336887')"></div>
        </div>  

CSS:

.social-media-holder 
  float: right;
  margin: -18px -40px 0 0;

.socialtop 
  top: -7px;

.social-facebook,
.social-google,
.social-twitter 
  background-image: url('http://www.ilovetennis.ca/wp-content/themes/I-L-T-Theme/images/button_sprite_low.png');
  background-repeat: no-repeat;
  height: 32px;
  margin: 2px;
  width: 32px;

.social-facebook,
.social-google,
.social-twitter 
  display: inline-block;
  height: 25px;
  vertical-align: top;
  width: 25px;

.social-google 
  background-position: -621px -71px;

.social-twitter 
  background-position: -581px -71px;

.social-facebook 
  background-position: -541px -71px;

.social-google:hover 
  background-position: -621px -29px;

.social-twitter:hover 
  background-position: -581px -29px;

.social-facebook:hover 
background-position: -541px -29px;

有人可以帮帮我吗?我真的很感激。我一直在努力解决这个问题。

【问题讨论】:

【参考方案1】:

平板设备没有悬停功能。当用户触摸您的某个图标时,您可能必须使用 jQuery mobile 来“伪造”该效果。

至于为什么当用户单击时您的页面不会去任何地方...... div 元素不应该真的有这样的 onclick 事件。使用锚标签更明智。

<div class="social-media-holder socialtop">
    <a title="Visit our Facebook page" class="social-facebook" href="http://www.facebook.com/ilovetennistoronto" target="_blank">Facebook</a>

    <a title="Visit our Twitter page" class="social-twitter" href="http://www.twitter.com/ilovetennisTO" target="_blank">Twitter</a>

    <a title="Visit our Google+ page" class="social-google" href="https://plus.google.com/u/1/b/117545117809252336887/117545117809252336887" target="_blank">Google+</a>
        </div> 

还有 CSS

.social-media-holder 
  float: right;
  margin: -18px -40px 0 0;

.socialtop 
  top: -7px;

.social-media-holder a 
  background: url('http://www.ilovetennis.ca/wp-content/themes/I-L-T-Theme/images/button_sprite_low.png') no-repeat;

  height: 32px;
  width: 32px;

  margin: 2px; /* with the display: block; float: left; below; this 2px margin will work properly now */
  text-indent: -3000px; /* hides the text of the icons, and so people with screen readers can still see your social icons */

  display: block;
  float : left; /* please note this as with inline-block would cause white space with the anchor tags on separate lines.*/
  height: 25px;
  vertical-align: top;
  width: 25px;


/* icons */
.social-google 
  background-position: -621px -71px;

.social-twitter 
  background-position: -581px -71px;

.social-facebook 
  background-position: -541px -71px;


/* icons : hovers */
.social-google:hover 
  background-position: -621px -29px;

.social-twitter:hover 
  background-position: -581px -29px;

.social-facebook:hover 
background-position: -541px -29px;

希望这会有所帮助(并且有效)。

【讨论】:

检查您的网站(我喜欢网球...)您的社交媒体图标可能在垂直方向上偏离了 1 像素,因此会出现摆动。除非有意:D【参考方案2】:

问题是您的 div “.rt-logo-block” 的宽度为 100%,在小屏幕上覆盖了您的社交图标。只需在小屏幕的 .rt-logo-block 选择器上添加“float:left”即可解决问题

@media only screen and (max-width:650px) .rt-logo-block float:right

应该这样做。

显然,您可能需要根据需要调整最大宽度值

在页脚中,当社交媒体图标被 div“.rt-grid-4.rt-alpha”重叠时,会发生同样的事情,解决方案是将以下 css 添加到“.social-media-holder” " 对于小屏幕:

@media only screen and (max-width:650px) .social-media-holder float: none; text-align: right; margin-right:0px; right:0px;

【讨论】:

主要问题在于页脚中页面底部的那些。 那里也是同样的问题。您应该将以下 css 添加到 .social-media-holder 类中: float: none;文本对齐:右;这将产生相同的效果,但会停止 .rt-grid-4.rt-alpha 的重叠

以上是关于社交图标在移动设备和某些平板电脑中不起作用(链接不起作用,它们不会在悬停时更改图像)的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 自动完成功能在某些 Java 文件中不起作用

Float left 在 ipod、android 智能手机等移动设备中不起作用

JS - scrollTop 在移动设备和 Firefox 中不起作用

@media 查询在移动设备中不起作用。在 Chrome 中运行良好

PhoneGap Push Plugin 注册 ID 在移动设备中不起作用

Firebase 电话身份验证 (Flutter) 在某些 iOS 设备中不起作用