投稿者「ロコモコ堂 フルタ」のアーカイブ

Google Chromeで、li::afterを使ったら、変な改行が起りませんか?

ここ2年程、WordPressサイトでも・CMSを使わないコンテンポラリーなサイトでも、サイトを作成する時は、Google Chromeを基準にしてレイアウトを調整していました。まずはGoogle Chromeでレイアウトのバランスを合わせ、それからFirefoxやIEの9そして8、Operaへと調整するブラウザを広げて、どのブラウザでも同じレイアウトとなる様にしていたんですね。

まあGoogle Chromeを信頼していたんです。(以前はFirefoxを基準にしていましたが。)

でも、ちょっと前からGoogle Chromeの挙動に「??」な事がいろいろ出てきて、信頼感が崩れかけているんですよ。

多分、26.0.1410.43にバージョンアップしてからだと思うんですが、このバージョンから挙動が変わった感じがするんです。

前回書いた「Chromeは、CSSのlinear-gradientにdegが使えない?」でもそうでしたが、以前と同じ様にGoogle Chromeでサイトを見ていて、それまでとはレイアウトが変わり、「なんか変だ?」と思う事が色々と出てきてるんです。

今回もこうしたGoogle Chromeの表示がおかしくなってる件についてです。

サイトを見ていて、今見ているページの位置を知るのにパン屑リストが有ると便利ですよね。

WordPressのサイトではPrime Strategy Bread Crumbというplug-inを使うと、パン屑リストが簡単に表示できる様になります。作ったWordPressサイトにはほぼインストールしている位、愛用しています。

が、最新版のGoogle Chrome(Windows・Macとも)だけ、パン屑リストの一番左の項目、つまり表示させているページのタイトルの最後の1文字が改行されるてしまうと言う現象が起きる様になったんです。

Google Chromeでの表示は下図の様になります。

Google Chromeのみ、変な改行が起きます

Google Chromeのみ、変な改行が起きます

SafariやIE、Firefox、Sleipnirなどでは下図の様に、変な改行は起きません。

Safariなどでは改行されない

Safariなどでは改行されない

結論から言うと、これはWordPressだけの現象ではなく、liなどにCSSの擬似要素の::afterを使い、そのcontentプロパティの値をnull(なにもないと言う意味でと記載)にしていると、Google Chromeでは、なぜかliタグで囲まれている文字が、最後に句読点が付いているのと同じ扱いを受ける様なんです。

ブラウザが表示ページをレンダリングする時、文字の長さを計算して文字を表示する幅を決めるのですが、目に見えない句読点的なものが付いた分文字が長くなり、表示前にレンダリングで算出された幅に入りきらず、句読点が付いた場合と同じ様に、直前の1文字も一緒に改行させていると考えられます。

言葉だけでは解り難いのでCSSコードを載せます。(.bread_crumbPrime Strategy Bread Crumbを使うと自動的に付く、パン屑リストを囲むnavタグのclassです。)

li:afterで各層の項目名の後にcontentプロパティの「>」を表示させ、パン屑リストの層と層との間「>」が有る様に見せています。ですが一番右の表示ページ分の項目名の後には「>」が必要無いので、li:last-child::afterとして一番右の項目を選ばせ、そのcontentプロパティは「」として、何も表示させていません。

このli:last-child::aftercontentプロパティの「」が、Google Chromeだけ句読点や?や!などと同じ扱いにされ、ワープロの禁則処理の様に句読点だけ行頭に表示しない様に、表示される項目名の最後の一文字も一緒に改行されるのですね。表示されたものを見ると、「」は見えませんから、最後の一文字だけ改行された様に見えるんですね。

これを回避するには、li内の文字、つまりaタグで囲まれるものを、white-speceプロパティのnowrapで改行禁止させればいいわけです。

つまりCSSを

とすることで、下図の様に解決です。

CSS修正したものをGoogle Chromeで表示させる

CSS修正したものをGoogle Chromeで表示させる

これって、Google Chromeのバグだと思います。

ついでにPrime Strategy Bread Crumbの使い方なども。

使い方は、まず、いつもの様にダッシュボード>プラグイン>新規追加からPrime Strategy Bread Crumbを検索して、インストール、有効化します。

そしてheader.phpパン屑リストを表示させたい位置に

を打ち込んでやれば表示されます。

しかし、このままでは下図の様に、単にパン屑リストの項目名が縦に並ぶだけになります。

Prime Strategy Bread Crumbレイアウト設定前

Prime Strategy Bread Crumbレイアウト設定前

なので、Google Chrome用の修正も含め、次の様にCSSでの調整が必要です。(WordPressサイトの使っているテーマのstyle.cssに書き込むだけでOK)

今回はWordPressというよりCSSについてでした。

追加(2013-04-21)
Prime Strategy Bread Crumbの代わりにWP SiteManagerのパン屑リスト機能を使ってパン屑リストを表示させているサイトでも同様の症状が起きてました。
まあ、Google Chromeの最新バージョン(26.0.1410.65)のレンダリング・バグだと思うので、CSSにli::afterを使うと、どこでも発生すると思われます。

chromeは、cssのlinear-gradientにdegが使えない?

今日、取引先のサイトをメンテナンスしようとGoogle Chromeで開いたんですが、何かおかしいんですよ。

「?」

よく見ると、h2タグのbackgroundのグリーンのグラデーションの方向が「下から上への縦方向」だったのが、「左から右への横方向」に変わってるじゃないですか。

こうだったものが

正しい方

正しい方

こうなってるんです。

なぜかこうなってた方

なぜかこうなってた方

その時のブラウザはMac版のGoogle Chromeのバージョン 26.0.1410.43(2013-04-06現在最新バージョン)です。

確認の為、Windows版のGoogle Chromeのバージョン 26.0.1410.43 m(2013-04-06現在最新バージョン)で開いても、同様に横グラデーションになっていました。

しかし、Mac版Safariバージョン6.0.3、Sleipnirバージョン4.1.2では、ちゃんと縦グラデーションになるんですよね。(IEについてはIE9.jsなどでドーピングしているので除外。)

CSSのbackgroundプロパティのヴァリューの表記に、Google Chromeでは読み込めないものが有るのではないかと思い、CSSをチェックしてみます。

CSSの該当部分は、

としているんですが、Google Chromeでは
1. -90degは使えず、ディフォルトのleftになってしまう。
2. -webkit-linear-gradientでも -webkit-gradientでもなく、linear-gradientのヴァリューが使われる。
様です。

Google ChromeもSafariもSleipnirもwebkitだから、-webkit-linear-gradientを使うもんだと思い込んでいたんですが、意外です。
(SafariもSleipnirで確認してみたら、予測通り-webkit-linear-gradientを使ってました。)

そう言う事ならlinear-gradient-90degtopに変え、

としたら、正しい表示になりました。

正しい方

正しい方

結論は、「degを使って角度で表示させず、topやleftを使う。」という、ものすごく簡単な事でした。

しかし、「何もしていないのに、以前とは表示が変わってる」という1番の謎が解決できてないです。うーん。

私、気になります。

画像表示にLightbox Plus ColorBoxを使う

lightbox flame

 

数年前から、サイトの画像表示によく使われているLightbox

サイトを作成したり・運営したり、ブログをやっていたりする方ならよくご存知の、ネットは見るだけという方も、名前を聞いた事は無くてもよく目にしてると思います。
サイトに貼付けてある画像をクリックすると、ページがグレーにフェードしながら、画像自体が大きく、浮き上がる様に表示されるアレです。

Lightboxも使われ始めた頃は、設置する位置やIDなどを考えながらJavaScript(prototype.jsやjQueryを使うケースが多いですが)でコードを書いたりして、それなりに勉強したり実験したりと時間をかけてやってました。

でも、WordPressを使っていると、pluginのインストールと簡単な設定だけでそのLightboxが使えるんですから、たいしたものです。pluginによってはインストールのみで、設定しなくてもそのまま使えるんですから、便利すぎて涙が出ます。

私はWordPressでサイトを作成する時は、大体WP jQuery lightboxというLightboxのpluginを使っていました。シンプルで設定も簡単。動作も安定もしているので気に入ってたんですが、表示されるフレームは1種類しかありません。いろんなデザインのLightbox(とその仲間)を知った目で見ると、どうも見劣りしてしまいます。

そこで、他にいいものは無いかと試したんですね。

で、最終的に残ったのは、
1. WP jQuery lightbox
2. Easy Fancy Box
3. Lightbox Plus Color Box
の3つです。

選ぶ基準は、
1. 画像フレームのデザインが良い。
2. ブラウザーのウインドウサイズより大きい画像も原寸で表示される事
です。

「画像フレームのデザイン」を見てみると、

WP jQuery Lightbox

WP jQuery Lightbox

WP jQuery Lightboxは、ウインドウ上部からフェード・インしながら降りてきて、ウインドウ中央に現れます。
この動きとフェード・インの速度は、WordPressの「ダッシュボード」>「設定」>「jQuery Lightbox」で、1/1000秒単位で設定できます。
フレームは1種類しか用意されていません。

Easy Fancy Box

Easy Fancy Box

Easy Fancy Boxは、ウインドウの左上又は左下から中央へフェード・インしながら現れ、センターをちょっと通り過ぎてからちょこんと戻ると言う動きが可愛です。
フェード・インや移動の速度は、「ダッシュボード」>「設定」>「メディア」にある「FancyBox」と言う項目で設定できますが、「現れる時の移動速度」「消える時の移動速度」「フェード・インとフェード・アウトにかかる時間」を個別に1/1000秒単位で設定できるのが優れものです。
これもフレームは1種類しか用意されていません。

Lightbox Plus ColorBox

Lightbox Plus ColorBox

Lightbox Plus ColorBoxは、ウインドウ中央部でフェード・インしながら小さかったものが表示サイズ迄大きくなります。
このリサイズととフェード・インの速度同期していて、WordPressの「ダッシュボード」>「外観」>「Lightbox Plus ColorBox」で、1/1000秒単位で設定できます。消える時は、サイズはそのままでフェード・アウトします。
フレームは色違いなどで26種類有ります。

フレームのデザインとか現れる時の動きなど、私の好みで言えば、

Easy Fancy Box > Lightbox Plus Color Box > WP jQuery lightbox

となりました。

もう一つのチェックポイント「画像の原寸表示」を調べてみると、

WP jQuery Lightbox

WP jQuery Lightbox

WP jQuery Lightboxは原寸表示されるのですが、WP jQuery Lightboxのフレーム自体にはスクローラーは表示されません。
画像をウインドウ内に入りきる様にリサイズさせるには、「ダッシュボード」>「設定」>「jQuery Lightbox」の「スクリーンに合わせて画像を縮小」にチェックを入れます。

Easy Fancy Box

Easy Fancy Box

Easy Fancy Boxは、画像がウインドウに入りきる様にウインドウより一回り小さく表示されます。
WordPressの「ダッシュボード」>「設定」>「メディア」にある「FancyBox」にはリサイズを解除できる設定箇所は有りません。
これでは説明画像などを表示させる時、文字が読めなくなるので困るんです。

Lightbox Plus ColorBox

Lightbox Plus ColorBox

Lightbox Plus ColorBoxは原寸表示され、Lightbox Plus ColorBoxのフレーム自体にはスクローラーが表示され、便利です。
画像をウインドウ内に入りきる様にリサイズさせるには、「ダッシュボード」>「外観」>「Lightbox Plus ColorBox」の「Primary Lightbox Setting」>「Size」の「Resize」にチェックを入れます。

以上より

Lightbox Plus Color Box > WP jQuery lightbox > Easy Fancy Box

という事で、Lightbox Plus Color Boxを使う事にしました。

ついでにそれぞれのpluginの設定画面を見てみます。

「Lightbox Plus Color Box」「WP jQuery lightbox」「Easy Fancy Box」とも、WordPressにインストールし、pluginを有効にして、設定を調整すると使える様になります。
画像自体は、画像を記事に追加する時、エディタの「メディアを追加」のモーダルウインドウ(lightboxの様に表示されるウインドウ)の右下部分の「添付ファイルの表示設定」>「リンク先」を「メディアファイル」にしておくだけです。

WP jQuery Lightboxは「ダッシュボード」>「設定」>「jQuery Lightbox」に設定画面が有ります。
設定できる事は少なく、「自動的にLightbox効果をつけるか?」「コメント欄でも使える様にするか?」「スクリーン(ウインドウ)サイズに合わせて縮小表示するか?」「デュレーション(画像が現れる時の効果)をアニメーションにするか?」位です。

WP jQuery Lightbox

WP jQuery Lightbox

Easy Fancy BoxはWordPressの「ダッシュボード」>「設定」>「メディア」にある「FancyBox」の項目で設定できます。
Easy Fancy Boxのいいところは、通常の画像だけでなく、PDFやSWF(Flashのデータ)、Youtube映像、Vimeoの映像、Dailymotionの映像が表示でき、iFrameまでつかえますから、ウェヴサイトも表示させられます。

Easy Fancy Box

Easy Fancy Box

「Overlay」の項目で、「Show the overlay around content opened in FancyBox」にチェックを入れておかないと、画像のフレームの外背景が透明なままになり、画像が見難くなります。

 

Easy Fancy Box

Easy Fancy Box

 Lightbox Plus ColorBoxは「ダッシュボード」>「外観」>「Lightbox Plus ColorBox」で設定できます。
フレームを26種類の中から選んだり、画像の表示時のフェード・インにかかる時間や画像をウインドウに合わせて縮小表示させるかどうかなどを設定します。スライドショーの設定も多めで、自由度が高いです。

Lightbox Plus ColorBox

Lightbox Plus ColorBox

 

Lightbox Plus ColorBox

Lightbox Plus ColorBox

「Lightbox Plus ColorBox – Base Setting」項目の「Style」タブ内の「Lightbox Plus ColorBox – Base Setting Style」がディフォルトでは「White」になっていますが、これはかなり見難いですので、他のデザインに変えた方がいいです。
私は「Blackbox」使っています。

Lightbox Plus ColorBox

Lightbox Plus ColorBox – Base Setting Styleが「White」での表示

インストールは、いつも通りに「ダッシュボード」の「プラグイン」の「新規追加」で、Lightbox Plus Color Boxを検索し、「説明」でサイトのWordPressのバージョンでも使えるのを確認し、インストールします。
その後、Lightbox Plus Color Boxを「有効」にすると、Lightbox Plus Color Boxを設定するだけで使える様になります。

BackWPUpの設定方法_2

続いてバックアップの設定をします。

インストールするとダッシュボードの左列の項目リストにBackWPUpが表示されます。
それをクリックするとさらに詳細な項目が現れます。その中にある「Add New」をクリックして、バックアップのスケジュールや保存場所などを設定します。 

BackWPUp > Add Newをクリック!

Ver 2シリーズのダッシュボード

BackWPUp > Add Newをクリック!

Ver 3シリーズのダッシュボード

 「Add New」または「Add New Job」では「新しいJob」つまりバックアップデータの置き場所とバックアップ時間の、新しいスケジュールを設定します。

バックアップデータの置き場所は、

  1. WordPressを置いてあるサーバ内
  2. メールで添付ファイルとして送る
  3. 外部のFTPサーバに送る(SSL-FTPの使用可)
  4. Dropboxのフォルダ
  5. SugarSyncのフォルダ
  6. Amazon S3のフォルダ
  7. Google strageのフォルダ
  8. Microsoft Azure
  9. Rackspace

が使え、同時に複数の保存場所にバックアップデータを送れます。

また、スケジュールも

  1. 月に1度
  2. 週に1度
  3. 日に1度
  4. 1時間に1度

の設定ができ、時間も自由に選べます。

Jobは複数作成できますから、バックアップの時間をずらして場所を変えながら、バックアップする事もできます。

BackWPupのバージョン2の「Add New」の設定は下図をクリックして下さい。

BackWPUpバージョン2のJobの設定方法

BackWPUpバージョン2のJobの設定方法

BackWPupのバージョン3の「Add New」の設定についてはここからです。 

BackWPUpバージョン3の新しいJobの設定方法・一般

BackWPUpバージョン3の新しいJobの設定方法・一般

のサーバ内のフォルダに保存するには、上の図の「Job Destination」の「Backup to Folder」にチェックをいれ、新しく表示された「To: Folder」タブをクリック。下図の様に設定します。

BackWPUpバージョン3の新しいJobの設定方法・サーバ内に保存

BackWPUpバージョン3の新しいJobの設定方法・サーバ内に保存

E-mailの添付ファイルでバックアップデータを送るには、「Job Destination」の「Backup send by e-mail」にチェックをいれ、新しく表示された「To: E-Mail」タブをクリック。下図の様に設定します。

BackWPUpバージョン3の新しいJobの設定方法・メールで送信する

BackWPUpバージョン3の新しいJobの設定方法・メールで送信する

FTPサーバにバックアップデータ保存するには、上の図の「Job Destination」の「Backup to FTP」にチェックをいれ、新しく表示された「To: FTP」タブをクリック。下図の様に設定します。
送信方法には、セキュリティーの面から、SSL-FTPを使った方が安全です。

BackWPUpバージョン3の新しいJobの設定方法・FTPで送信する

BackWPUpバージョン3の新しいJobの設定方法・FTPで送信する

Dropboxにバックアップデータ保存するには、上の図の「Job Destination」の「Backup to Dropbox」にチェックをいれ、新しく表示された「To: Dropbox」タブをクリック。下図の様に設定します。

BackWPUpバージョン3の新しいJobの設定方法・Dropboxに送信する

BackWPUpバージョン3の新しいJobの設定方法・Dropboxに送信する

SugarSyncにバックアップデータ保存するには、上の図の「Job Destination」の「Backup to SugarSync」にチェックをいれ、新しく表示された「To: SugarSync」タブをクリック。下図の様に設定します。

BackWPUpバージョン3の新しいJobの設定方法・SugarSyncに送信する

BackWPUpバージョン3の新しいJobの設定方法・SugarSyncに送信する

自動バックアップのスケジュールを組むには、同じ「Add New Job」の「Schedule」タブをクリックして開き、「Job Schedule」の「Start job」の「with WordPress cron」にチェックを入れます。「サーバ内に保存」「FTPで送る」などタブに出ている全ての保存方法をまとめて同時にスケジュール設定します。

BackWPUpバージョン3の新しいJobの設定方法・スケジュールを設定する-1

BackWPUpバージョン3の新しいJobの設定方法・スケジュールを設定する-1

するとその下部に「Schedule execution time」が現れます。そこで「月1回」か「週1回」か「日1回」か「1時間に1回」かを選び、同じ行右横の「日にち」「曜日」「時」「分」を設定していき、最後に左下の「Save changes」をクリックして確定します。

BackWPUpバージョン3の新しいJobの設定方法・スケジュールを設定する-2

BackWPUpバージョン3の新しいJobの設定方法・スケジュールを設定する-2

 続いて、設定が正しく、予定された保存先にバックアップデータが保存されるかを、実際に手動でテストしてみます。

まずはBackWPup ver 2から。

「ダッシュボード」>「BackWpup」>「Jobs」を表示させ、「Jobs Name」からテストする設定の名前をクリック。すると「Edit | Copy | Export | Delete | Run Now」の行が、設定の名前の下に現れる。「Run Now」をクリックしてテストを開始します。

BackWPUpバージョン2のバックアップテスト-Jobの選択

BackWPUpバージョン2のバックアップテスト-Jobの選択

すると作動状況のlogと進行状況を表す2本の棒グラフが現れます。

logに赤文字のエラーメッセージが現れず、棒グラフが2本とも100%になったらバックアップ成功。
設定に間違いは無く、予定の保存場所にバックアップデータが保存されます。

BackWPUpバージョン2のバックアップテスト-テストの進行状況

BackWPUpバージョン2のバックアップテスト-テストの進行状況

 続いてBackWPup ver 3でのバックアップテストの手順です。

「ダッシュボード」>「BackWpup」>「Jobs」を表示させ、テストする設定のカラム上にポインタを持って行くと、「Edit | Copy | Delete | Run Now」の行が、設定の名前の下に現れる。「Run Now」をクリックしてテストを開始します。

BackWPUpバージョン3のバックアップテスト-Jobの選択

BackWPUpバージョン3のバックアップテスト-Jobの選択

するとバックアップの進行状況を表す2本の棒グラフが現ます。

エラーメッセージや警告が現れず、棒グラフが2本とも100%になったらバックアップ成功。
設定に間違いは無く、予定の保存場所にバックアップデータが保存されます。

BackWPUpバージョン3のバックアップテスト-テスト中の表示

BackWPUpバージョン3のバックアップテスト-テスト中の表示

エラーメッセージや警告が現れ、バックアップが完了できなかった場合は、「Display working log」ボタンをクリックすると、logをチェックして原因を調べられます。

BackWPUpバージョン3のバックアップテスト-logのチェック

BackWPUpバージョン3のバックアップテスト-logのチェック

以上の方法で、WordPressに「BackWPup」をインストールし、自動バックアップ出来ると思います。

因に、ロリポップ!のレンタルサーバに「BackWPup」のver. 3をインストールし、バックアップしようとすると、上図の様に「データベースにMySQLi拡張がないので、インストールして下さい。」とエラーメッセージが出るんですよね。「BackWPup」のver. 3.8(2013-04-18現在最新)でも出ます。

MySQLiとは機能が向上したMySQLを扱うためのPHP5の拡張機能のことで、PHP5とMySQL4.1以降のバージョンに対応しています。ロリポップのMySQLはver.5.1.66なので、MySQLiは使える筈なんですが。PHP 5.4でも同じエラーメッセージが出るので、PHPにMySQLiの機能拡張が必要な様ですねえ。ロリポップ!PHP 5.4ではエラーメッセージは出ず、バックアップできました。(間違いでした。)

これについては、また調べてレポートします。 

「BackWPup」には、まだまだ細かく設定できる部分がありますので、またその部分の設定を紹介させてもらいます。

BackWPUpの設定方法 続きの記事

BackWPUpの設定方法 前半部はこちら↓
BackWPUpの設定方法_1(インストールまで)を読む

BackWPUpの設定方法 MySQLi問題の解決はこちら↓
BackWPup ver. 3も大丈夫。MySQLiはPHP 5.4で使えるのだった。

BackWPUpの設定方法_1

WordPressのバックアップ作成plugin「BackWPup」。

データベースとファイルのバックアップ以外に、WordPressの投稿記事を別のWordPressにインポートできるWP XML Exportファイルも作成してバックアップも出来ます。
またWordPressのフォルダ内の特定のフォルダや、特定のtheme、pluginのみのバックアップも作成できます。

そして何より助かるのが、予めバックアップスケジュールをセットして、自動でバックアップ出来る事。さらにそのバックアップ先を自サーバ内だけでなく、FTP(SSHも可)サーバや、自分のDropboxやSugarSync、Amazon S3、Google Strage、Microsoft Azure、RackSpaceのフォルダも使え、メールの添付ファイルとして指定したメールアドレスに送信も出来る事が凄いです。

BackWPupの設定方法について、1. インストール方法、2. バックアップの設定方法と2つに分けて説明します。

BackWPup のインストールは、普通のpluginのインストール方法と同じです。
ダッシュボード>プラグインの画面にある「新規追加」をクリックして「プラグインのインストール」ページに進み、BackWPupを検索します

 

BackWPupダッシュボード_プラグイン

 

BackWPUp検索

 

検索結果の中にあるBackWPupの下の説明をクリックし、

 

BackWPUp検索結果

 

現れたBackWPUpの説明画面にある「対応する最新バージョン」を見て、使っているWordPressのバージョンで使えるのを確認して、「いますぐインストール」をクリックして、インストールします。

 

BackWPUpの設定方法 続きの記事

BackWPUpの設定方法 後半部はこちら↓
BackWPUpの設定方法_2(バックアップの設定)を読む

BackWPUpの設定方法 MySQLi問題の解決はこちら↓
BackWPup ver. 3も大丈夫。MySQLiはPHP 5.4で使えるのだった。