2017-07-05 9 views
1

スマートフォンの画面の略語や記号に触れるときにタイトル属性を表示するためのCSSコードがあります。 「(最大幅:767px)のみ画面と@media」セクションの中で私のスタイルシートの私は、次のコードを持っている:CSSのみモーダルウィンドウAndroidではOK、iOSでは動作しません

span[title]:active::after,abbr:active::after { 
 
    color: Maroon; 
 
    font-weight: bold; 
 
    content: 'Meaning: ' attr(title); 
 
    position: fixed; 
 
    top: 3ex; 
 
    left: 2ex; 
 
    display: block; 
 
    z-index: 100; 
 
    background-color: White; 
 
    box-shadow: .3ex .3ex .1ex Grey; 
 
    border: 1px solid grey; 
 
    padding: .4ex; 
 
    width: 70%; 
 
    height: auto; 
 
}

をそれはテストのAndroid -I'veに完璧に仕事をしますそれはChrome、Firefox、Samsungのブラウザで、そして私のiMacはChrome、Firefox、Safari、Operaでブラウザウィンドウの幅を拡張した後でテストしましたが、iOSではまったく動作しません。 '-webkit-transform:translate3d(0,0,0);'を追加するトリック/回避策コードに追加してもこれには役立ちませんでした。 私はどんな助けにも感謝すべきです! 本当にありがとうございます!

SOLVED!

次のリンクに提案されているように解決策を試しました。Enable CSS active pseudo styles in Mobile Safari とうまくいきます。問題は、Safari Mobileがデフォルトで有効な疑似クラスを無効にしていたことです。この単純な考え方で解決します。 私はbody ontouchstart = "" 'やそれに類するもののような他のいくつかの解決策を試しましたが、W3Cバリデーターに対してコードをチェックするときにエラーが発生しました。 回答して手伝ってくれたすべての人に感謝します!

+1

を使用してを使用してjQueryを使って簡単に行うことができます追加することがサファリとdevのツールを使ってMac上でそれをデバッグするようにしてください。あなたのiPhoneを接続してみてください。他のベンダーのプレフィックスがないかもしれないと思います。私の経験から、私はサファリが難しいと言っています。 –

+0

ありがとう、エル・ダニエロ。私は現在iPhoneを持っていないので、娘があなたの提案をテストするのを待たなければなりません。進行状況が発生した場合は教えてあげます... –

+0

Web Inspectorを使用し、ユーザーエージェントとして「Safari - iOS 10-iPhone」を選択すると、Mac用Safariでは、私のCSSが問題なく動作します。実際のiPhoneでデバッグを保留中です... –

答えて

1

:activeプロパティは、アクテイブエレメントに対してのみ機能します。 Documentation says:

要素は:activeなったり:focusを取得することが可能な文書言語又は実装固有の制限があってもよいです。

これを行うには最も簡単な事はあなたが活性化可能にしたい各要素に対して0tabindex属性を設定することです。

これは、コードがキーボードで動作する大きな利点があります。

EDIT:すべての要素のtabindex=-1

$("abbr[title]").attr("tabindex", -1); 

または標準のJavaScriptに

var ele=document.querySelectorAll("abbr[title]"); 
for (var i=0;i<ele.length;i++) { 
    ele[i].setAttribute("tabindex", -1); 
} 
+0

あなたの答え、アダムありがとうございます。私は、Safari for iOSの実装がabbrを起動可能な要素として拒否している理由を推測しようとします。あなたの提案されている解決策は0にまで短縮されています。私のサイトでは略語や記号が多すぎます。医療現場です。多くのページにいくつかの略語と記号があり、タブページにはすでにtabindexを使用しています。サイト全体で800ページ以上に適用されます。私はCSSで動作するものが必要であり、非常に多くのものを変更する余裕がありません。 –

+0

もう一度ありがとう、アダム。この動的ソリューションは、すべてのページでjQueryを宣言してロードする必要があります。 –

+0

それは簡単に標準のJavaScriptを使って行うことができます(新しい編集の回答を参照) – Adam

関連する問題