发布这个问题主要是希望证实我对该行为的怀疑,从而为其他程序员记录下来。 (因为网上没查到这方面的记录)
我有一个正在构建的站点,其导航栏具有以下属性:
横截面是<ul>的 <li> s 和一些 <li>两者都有:
一个<a>带您进入该主题的元素。
触发 display:block 的悬停 CSS 选择器在子菜单上 - 嵌套 <ul>然后垂直下降。
在桌面上,这一切都如我所料:将鼠标悬停在关键元素上会显示子菜单,然后单击它会执行单击事件(在本例中为正常的 <a> 链接。
但在 iOS 设备上(在 Air、Mini、iPhone 6 上测试过)我发现点击一次会显示子菜单,而点击第二次(当子菜单打开时)实际上会调用控制元素上的链接。
长按会弹出“链接上下文菜单”
这正是我想要的,太棒了!但我不知道为什么要这样做。虽然菜单是基于 Bootstrap,但我找不到任何正在执行此操作的 bootstrap。
目前我最好的猜测是 iOS Safari 有一些神奇的代码来添加这个(显然是可取的)行为通过决定你是否有一个带有 :hover CSS 的元素(或者,我想,一个 onhover 事件处理程序绑定(bind))和一个点击事件处理程序绑定(bind),然后第一次点击将调用并保持调用悬停事件,第二次点击将调用点击事件。
问题:
有没有人自信地知道这种行为的根源是什么。
谁能找到任何关于这种行为的文档!?
人们是否愿意贡献其他平台(Android 平板电脑?Windows 平板电脑?旧版 iOS?)。
最佳答案
:hover Rule that either hides or shows another element using visibility or display.
例如
<style>
p span {
display: none;
}
p:hover span {
display: inline;
}
</style>
<p><a href="/">Tap me</a><span>You tapped!</span></p>
Apple 还提供了一个 documentation on Handling Events供引用。
没有其他平台这样做。它是 iOS 特定的,至少从第 5 版开始(可能从第 1 版开始)。因为不是跨平台的,对于安卓和其他触摸设备,要区别对待,需要用JS取消点击事件等...。虽然我设法做到了这一点。我认为可以公平地说,要让 CSS 导航菜单栏与既是链接又是切换的切换元素一起工作,在纯触摸环境中很难实现。
关于ios - 平板电脑在第一次点击时悬停,在第二次点击时点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353912/
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我写了一个非常简单的rake任务来尝试找到这个问题的根源。namespace:foodotaskbar::environmentdoputs'RUNNING'endend当在控制台中执行rakefoo:bar时,输出为:RUNNINGRUNNING当我执行任何rake任务时会发生这种情况。有没有人遇到过这样的事情?编辑上面的rake任务就是写在那个.rake文件中的所有内容。这是当前正在使用的Rakefile。requireFile.expand_path('../config/application',__FILE__)OurApp::Application.load_tasks这里
-if!request.path_info.include?'A'%{:id=>'A'}"Text"-else"Text"“文本”写了两次。我怎样才能只写一次并同时检查path_info是否包含“A”? 最佳答案 有两种方法可以做到这一点。使用部分,或使用content_forblock:如果“文本”较长,或者是一个重要的子树,您可以将其提取到一个部分。这会使您的代码变干一点。在给出的示例中,这似乎有点矫枉过正。在这种情况下更好的方法是使用content_forblock,如下所示:-if!request.path_info.inc
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我查看了Stripedocumentationonerrors,但我仍然无法正确处理/重定向这些错误。基本上无论发生什么,我都希望他们返回到edit操作(通过edit_profile_path)并向他们显示一条消息(无论成功与否)。我在edit操作上有一个表单,它可以POST到update操作。使用有效的信用卡可以正常工作(费用在Stripe仪表板中)。我正在使用Stripe.js。classExtrasController5000,#amountincents:currency=>"usd",:card=>token,:description=>current_user.email)