Simplicityの特徴 › フォーラム › 不具合報告 › Twitterカードの埋め込みについて
-
投稿者投稿
-
-
2016年1月6日 10:08 PM #35426
パソ活
ゲストこんにちは。
先ほど念のため1.9.3の安定版を再度ダウンロードしましたが解決しなかったので質問させてください。
以前、以下のフォーラムでツイッターの埋め込み動画について質問し、それは解決しました。
iPhone5sだと、ツイッター埋め込み動画で横スクロールが発生することについて
上記質問では、ツイッター「動画のみ」の埋め込みで、
class=”twitter-video”
に対してCSSを適用して解決したんですが、今日はビジュアルエディタに以下の様な個別のURLを直接貼り付けるツイッターカードの埋め込みをしようとして、
猫にチョコやアイスは体に良くないです、絶対に与えないでください。カワイイで済まされるもんじゃないです。 pic.twitter.com/9Wzxno2MKT
— 島袋全優@蛙のおっさん買って下さい (@shimazenyu) January 5, 2016
iPhone5sで横スクロールが発生してしまいました。デベロッパーツール(スマホ表示)で見たところ
class=”twitter-tweet”
だったので、動画埋め込みの時と同様に.twitter-tweet {
min-width: 200px !important;
}のように書いたのですが、なぜか解決しませんでした。
しかも、パソコン上のデベロッパーツール(スマホ表示)で見ると問題ないのに、iPhone5s実機だとスクロールが発生してしまいます。twitter-video と twitter-tweet は同じ場所にあるのに、!importantを使っても解決しないためいき詰まってしまいました。
何か解決方法はありますでしょうか。
-
2016年1月6日 11:20 PM #35427
Hidekichi
ゲスト横スクロールが発生したんですよね?
だったら.twitter-tweet { min-width: 200px !important; }これはおかしくないですか?
min-widthは最低幅を設定するので、最低200pxで最大はどこまででもって設定かと思うので、横幅を限定したいなら、
.twitter-tweet { max-width: 200px !important; }ではないでしょうか?これなら最大幅が200pxなのでそこまでしか伸びないと思います。!importantが効くのであれば横幅は200pxになるかと思います。
-
2016年1月7日 2:29 AM #35432
パソ活
ゲストHidekichiさん、いつもありがとうございます。
今質問を見返していたら説明不足の部分もありました。すいません。
なぜmin-widthにするかというと、
class=”twitter-video”
のほうでは、最初からTwitter側(?)で以下のようなCSSがあって、element.style { min-width: 320px; position: relative; margin: 10px 0px; max-width: 888px; }そのままだと最小幅が320pxあるためiPhone5sでは横スクロールが発生していました。
それをiPhone5sでも画面内に収まるようにSimplicity側で!importantを使って.twitter-video { min-width: 200px !important; }このようにして収まるようにしています。便宜的に200pxを指定していますが、それ以上のサイズであればwidth100%になってます。
※現在はSimplicityの親テーマの中に組み込まれています。そしてここからが自分の勘違いでもあったんですが、
class=”twitter-tweet”
のほうは、最初から設定されているCSSを見てみるとelement.style { position: static; visibility: visible; display: block; width: 100%; height: 335.141px; padding: 0px; border: none; max-width: 550px; min-width: 220px; margin-top: 10px; margin-bottom: 10px; }このようになっていて、
width: 100%;
min-width: 220px;
このふたつがあるから問題は起こらないはずに見えます。ですが、iPhone5sの実機だとはみ出してしまいました。

ちなみに不思議なことに、
.twitter-tweet { max-width: 200px !important; }を指定して、デベロッパーツールではちゃんと幅200pxになっているんですが、実機でははみ出してしまいます。
質問文を書きながらどこが問題なのか最初よりは把握できましたが、やはり解決策が見当たらないのは変わらないという状況になってしまいました。こういう細かい問題が難しいですねぇ。
-
2016年1月7日 4:17 AM #35437
Hidekichi
ゲストうーむ、前にtwitterのタイムラインも100%に収まらないと言うようなトピックがたったのですが、おそらくiphoneと言うよりはsafariかも知れないんですけれども、iframeの扱いにバグがあるのではなかろうかと思います。
で、例えば%がダメと言うのであれば、emとかあるいは、vwとかはどうかなぁと思ったりもします。
vwはview portに対する割合なので、イケるような気もしますが、上手く行くかどうかは何とも言えない所です。ちなみにvwはスクロールバーの幅も含まれていますので、ビューポート > html > body であることに注意してください。
特にiphoneのスクロールバーは色々と問題があって、jQueryでもwidth()で拾いにくい部分です。なのでwindow.innerWidthなんかを使ったりもします。emの場合は、文字数なので、横320pxの場合は、320px / 16px(font-size)で最大横幅が 20emとわかりますが、#mainにはpaddingがあるでしょうから18.5em〜19emぐらいではないでしょうか。
この場合は、やはりスマホの横向きと縦向きの場合が必要なので、iphone用のメディアクエリで、文字数を設定する必要があります。vwもemもwidthに対して行います。.twitter(仮名) iframe { width: 92vw; //あるいは width: 18.5em; //必要であれば!important付きで }ここで問題点なのですが、widgetのiframeはインラインスタイルでwidth:100%が書き込まれます。これはウィジェットが読み込んだ時にTwitterのAPI等からjavascriptで(該当リンク部分:埋め込み箇所に)自動的に設定されるスタイルなので、!importantをつけるか、jquery等で読み込み完了を調査して、その後で必要なスタイルで上書きする必要があります(jQueryの場合は.css())。
更なる問題点としては、ウィジェットの一番外のiframeがそもそも広がっているのか、その中身のiframeあたりが外にある要素を押し広げているのかにもよるかと思います。外側のiframeが100%固定できたとしても中身が押し広げているとしたらもしかすると改善できない場合もあります。たいていは外側の幅で止まるとは思うんですけどね。
もし止まるのであれば!important付きでイケるかも知れません。
内からのものが原因の場合は、jQuery等で、中のiframeのheadタグに独自のcss(!important付き)を挿入することでイケるかも知れません。どれをとってもやってみてみないとわからないと言うのが欠点ですが、これらも一応試してみて下さい。
もし何かしらで成功した場合は、その旨をレス頂ければ、他のiphoneでtwitterウィジェット関係の幅で悩んでいる人に一石を投じられるかも知れません。最悪、iphone(-webkit-min-device-pixel-ratio: 2とかで判断して)、メディアクエリを作り、pxで絶対値指定してはどうかなぁとも思います。
@media only screen and (device-width: 320px) and (-webkit-min-device-pixel-ratio: 2) { .twitter iframe { width: 538px !important; } }とか。
場合によっては、cssのcalcで、.twitter iframe { width: calc(100% - padding値); }などで計算させるというのもイケるかも知れません。
参考: calc | caniuse -
2016年1月7日 11:33 AM #35440
パソ活
ゲストなるほど。考えられる原因がいろいろあるんですね。ひとりだとそんなにサラサラ思いつかないのでw助かります。
まずブラウザによる違いですが、Chrome、iLunascape、Sleipnir、Opera、Firefoxで試した限り、Safariと同じでした。Puffinはスマホ表示にならなかったので検証できず。
次に
‘.twitter-tweet {
widthもしくはmin-width: 値 !important;
}’この形でiPhone5s実機での動作確認をした結果がこちらです。

いずれも!importantをつけているので、デベロッパーツールで見ると有効になっています。
こうしてみるとmin-widthはすべてダメで、%はwidthでもダメという結果になりました。
widthに%で指定した場合は、Twitterカードが展開される直前(普通の引用の見た目の時)は指定した幅になっているんですが、カードになった瞬間にはみ出します。
%以外をwidthに指定すればいけるということなので、
‘@media only screen and (device-width: 320px) and (-webkit-min-device-pixel-ratio: 2) {
.twitter tweet {
width: 10em !important;
}
}’これを試してみましたが成功しませんでした。デベロッパーツールのコードにも反映されていないので指定が適用されてなさそうです。子テーマCSSの中以外にも記述が必要なんですかね?
-
2016年1月7日 11:35 AM #35441
パソ活
ゲストCSSタグの箇所を、エディタからじゃなく自分で囲もうとしたら文字が違ったみたいです。
前後の「’」の記号は無視してください。 -
2016年1月7日 12:54 PM #35442
Hidekichi
ゲストiframeが原因ならば、それを囲むdivを作り、僕がサムネイルの比率を変える時などによく使う手法でイケるかも知れません。
サンプル: iframeを囲むdiv(比率・レスポンシブ) | jsFiddle
いけるかどうかはわかりませんけども(笑)
iframeに問題ありなら行けそうなんですけどね。
-
2016年1月7日 1:08 PM #35443
Hidekichi
ゲスト実働サンプル 動画埋め込みサンプル | codepen
実機で見た時どうでしょうか?
-
2016年1月7日 2:58 PM #35447
わいひらキーマスターAndroidブラウザでも問題はないようですね。
そうなると、iPhone(Safari)の問題となるのかもしれませんが、僕は実機を持っていないので、不具合確認はできません。申し訳ない。確かに、先日、Twitterタイムラインのiframeもはみ出すという報告もありましたね。
iPhoneでいけるのかはわかりませんが、CSSハックでSafariだけ特別なスタイルを読み込ませるとか。
Chrome、Firefox、Safari、IEそれぞれのみに適用されるCSSハックの書き方まとめ
これも行けるかどうかはわからないです(笑)Attachments:
-
2016年1月7日 9:08 PM #35457
パソ活
ゲストこんばんは。いろいろお手数おかけします。ありがとうございます。
>#35443
http://codepen.io/Hidekichi/pen/JGWxGV
iPhone5s実機でアクセスしました。
実機でも横スクロールが発生しなかったんですが、HTMLを拝見したところ、
class=”twitter-video”
なので、問題の出ない埋め込みのほうだと思われます。表示に問題が起こるのは
class=”twitter-tweet”
のほう(ツイッターのURLをビジュアルエディタに直接貼り付けした時に展開されるもの)です。ソースコードを見るとこのようになっています。
<blockquote class="twitter-tweet" width="550"><p lang="ja" dir="ltr">猫にチョコやアイスは体に良くないです、絶対に与えないでください。カワイイで済まされるもんじゃないです。 <a href="https://t.co/9Wzxno2MKT">pic.twitter.com/9Wzxno2MKT</a></p> <p>— 島袋全優@蛙のおっさん買って下さい (@shimazenyu) <a href="https://twitter.com/shimazenyu/status/684302185534914560">January 5, 2016</a></p></blockquote>この埋め込みタグをHidekichiさんの提示してくれた
http://codepen.io/Hidekichi/pen/JGWxGV
このページにiPhone5s実機からアクセスし、blockquoteに囲まれた部分を書き換えたら、以下のように幅が画面内に収まりました!
ということはHidekichiさんの方法で行けるのかもしれません。
ただ、そうなるとビジュアルエディタにツイッターのURLを貼り付けた時に出力されるHTMLタグを根っこから編集しないといけないことになりますよね?
Attachments:
-
2016年1月7日 9:15 PM #35459
パソ活
ゲストあぁーたびたび申し訳ないです。ツイッターカードのタグの後半(scriptの部分とか)が抜けてました。
<blockquote class="twitter-tweet" width="550"><p lang="ja" dir="ltr">猫にチョコやアイスは体に良くないです、絶対に与えないでください。カワイイで済まされるもんじゃないです。 <a href="https://t.co/9Wzxno2MKT">pic.twitter.com/9Wzxno2MKT</a></p> <p>— 島袋全優@蛙のおっさん買って下さい (@shimazenyu) <a href="https://twitter.com/shimazenyu/status/684302185534914560">January 5, 2016</a></p></blockquote> <p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>そしてなぜか
< が < になったり、変換されてしまいます。
可能であれば元に変換してお使いください。申し訳ないですm(_ _)m -
2016年1月7日 10:10 PM #35461
パソ活
ゲストいま検証中ですが、これもしかしたらハンドルネームの長さによって違うだけかもしれません(汗)
同じようにTwitter動画を含む、自分のツイートを埋め込んだら横スクロールが発生しませんでした。
そのうちブログにまとめます。
-
2016年1月7日 10:23 PM #35466
わいひらキーマスター問題の原因がこちら側からはハッキリと判断できないので、ブログ記事を待ってから、それを参考に修正させていただこうと思います。
-
2016年1月7日 11:23 PM #35468
パソ活
ゲスト記事書きました。
Simplicity1.9.3 Twitterカード埋め込みiPhone5s表示テスト
http://pasokatu.com/10049
※フォーラム用に作ったので昔の日付けにしました。問題を切り分けていくと、
・class=”twitter-tweet”
・動画の有無これらが原因ではないような気がしてきました。
今のところハンドルネームが長いのが原因じゃないか?と勘ぐっています。
-
2016年1月10日 1:41 PM #35513
わいひらキーマスターレスを見逃していました。
なるほど、了解です。
ハンドルネームの長さが原因だったとしても、iPhoneのみでなるのは、ブラウザの問題なのかもしれませんね。 -
2016年1月21日 5:59 PM #35738
パソ活
ゲスト続報です。今日(2016/01/21)たまたま確認してみると、iPhone5sでもなぜか横スクロールが発生しなくなっていました。
原因として疑っていたハンドルネームの長さはそのままだし、何が原因で直ったのかわからずじまいになってしまいました。
-
2016年1月23日 5:38 PM #35782
わいひらキーマスター結局なんだったんでしょうね;
iPhoneは、Twitter関係のよくわからない不具合が以前にもありました。
そのときもiframeが関係していたので、iframeあたりに何かがあるのかも。
-
-
投稿者投稿
- このトピックに返信するにはログインが必要です。

