忍者ブログ
27 August

日本語のWEBフォントの使い方

http://allabout.co.jp/gm/gc/394994/3/

使いたいフォントファイルをアップロード

@font-face {
   font-family: フォント名;
   src: url('フォントファイル名') format("種類名");
}

@font-face {
   font-family: MyWebFont;
   src: url('./wf/freefont.otf') format("opentype");
}

h1 {
   font-family: MyWebFont;
}

フォントの種類によってはシャギッて汚く見えた。
それをtext-shadowとか駆使してぼかしてアンチエイリアスかかってるように見せるらしい。
でもめんどくさいから汚く見えるフォントを使うのをやめた。
日本語のフォントファイルは文字数が多いので容量が多い。
だから必要な文字だけ云々サービスがあるけどRoundedM+以外は有料だからやってられない。
重いなんて知ったことがくそがとフォントファイルをアップロードして使うことにする。

しかしスマホで見たら重過ぎてやばかった。
うちのwifiはくそなのでそれが顕著に現れて見れたもんじゃなかったので、日本語webフォント使いを考え直す。
でも画像を作るのがめんどくて仕方ない。

mediaクエリでのスマホサイズは@font-faceの使用をやめることにした。
そうしたら、webフォント使ってた部分がMSゴシック?になった。
えー!font-family継承してくんないの?なんか線細すぎだしどうしよう。
スマホでのフォントの見え方は関係ないが、PCでブラウザサイズを縮めたときにMSゴシックみたいのがでてくる。

スマホサイズのmediaクエリにfont-familyをもう一度書き込む。
変化がなかったので!importantしとく。これでwebフォント使ってた部分にメイリオが復活した。

追記

色々とおかしいことに気づいてなかった。
問題1 
@media only screen and (min-width: 959px){ ・・・ }
の中に@font-fase{ }をいれて、スマホが読み込んでくるサイズではwebフォントを使わない書き方にしてみていた。このままで出来ていたがIEで確認していなかった。(死んでいい)
確認してみたらIEでwebフォントが読み込まれていなかった。
他のブラウザでは正常にメディアクエリ通りに切り替わっている。
IEでも@font-faceの指定以外はメディアクエリを読み込んでいる。
なんなの。

少しづつHTMLとCSSを削っていって原因を調べたら、メディアクエリだった。
@font-faceをメディアクエリ内で指定するとIEでは認識しない!

色々うんうん考えて、
1、デフォルトのフォント指定
2、全体のCSSに@font-face
3、webフォントを使いたいセレクタにまとめてフォント指定(楽にするため)
4、メディアクエリで、まとめてフォント指定したCSSにデフォルトのフォント指定を上書き指定

CSSの順番
1
 font-family:"ヒラギノ明朝 Pro W3","HG明朝E","MS P明朝","MS 明朝",serif;

2
@font-face{
    font-family: myfont;
    src:url(フォントファイル名.eot?),
      url(フォントファイル名.woff) format('woff'),
   url(フォントファイル名.ttf) format('truetype');
}

3
h1, h2{
    font-family: myfont;
    }   

4
@media only screen and (max-width: 959px){
h1, h2{
    font-family:"ヒラギノ明朝 Pro W3","HG明朝E","MS P明朝","MS 明朝",serif;
}
}

よく考えればこっちのやり方のほうが順々にきていてスムーズだよね
IEしね

.eot、.woff ファイルを作るのに武蔵システムとかいうとこのソフトをDLして使った
どっかのブラウザで変換したのより武蔵のほうがファイルサイズが少なかった・・・→.eot
http://opentype.jp/woffconv.htm

フォントファイル軽量化のための.htaccessの記述
http://web-tan.forum.impressrd.jp/e/2013/12/10/16577
1番目の「webフォントの圧縮」だけやった。.htaccessのことは全然わからないので
色々設定してあとで何かが干渉したりしてわけわかんなくなるのが嫌だから。
.htaccessの記述を間違えていると500エラーがでます。
最後に改行入れるとか変な法則があります。

PR
27 August

text-indent:-9999px; の代わりになるもの

text-indent:-9999px; はSEO的にアレらしい。
よくわかんないけどなんか言ってる人がいるのでやめようとおもう。

その1

p {
  width: 200px;
  white-space:nowrap;
  text-indent: 100%;
  overflow: hidden;
}

width指定しないと右側のほうに飛ばしたテキストが残りました。
bg-image分のwidthでも指定するのがよいでしょう。
パフォーマンス的にtext-indent:-9999px; とあまり変わらないとかなんとか・・・
意味がわかんないです。

その2

p {
 width: 200px;
 height: 200px;
 font-size: 0;
}

フォントサイズ0指定でテキストが小さくなりすぎて消滅します。
なので幅、高さともになくなるのでwidth、height指定必須でした。
25 August

レスポンシブデザイン時にする基本設定

いつものことにより、色々なところからのコピペ

http://tech.nitoyon.com/ja/blog/2013/02/15/viewport/
これを書かないと画面が縮小されなかった

ピンチできない大手サイトって結構ある
縦横で倍率可変okな設定にすると、レイアウトがめんどそう
ガタガタいわれたくないときは強制的に拡大縮小不可!
リキッドレイアウトなら絶対これのほうがいい。
リキッドにせず、横幅320px固定ならピンチok設定でいいと思う。

・横向きのときは文字数を増やしたい場合
(ピンチで拡大縮小できない)
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

・縦横どちらのときでも1行の文字数他レイアウトをまったく同じにしたい場合
(横になると画像も文字も横幅にあわせて拡大される)
(横向きで極端に拡大される)
<meta name="viewport" content="width=device-width">

・拡大縮小できつつ、横向きで1行の文字数を増やしたい場合
(縦横で表示倍率が変わってしまう)
<meta name="viewport" content="width=device-width,initial-scale=1.0">


文字サイズ自動調整OFFのcssらしい
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  text-size-adjust: 100%;


画像を画面サイズに合わせて縮小するcss
img{
max-width:100%;
height:auto;
}

テキストが変に左によりすぎてる。width指定もmargin・padding指定もしてないのに!
テキストのbackgroudに画像、もしくはbg-colorを指定すること。そうすると直る。
Android4系?のページの自動調整で勝手に整形されるため。うぜー。

画面サイズごとのcss指定
@media only screen and (max-width:1024px){ }

最近はスマホでも解像度があがっているため、320pxとか640pxとかで見てる人は存在するの?
するだろうけどそんな細かく気にする必要ある?
まとめて小さいサイズはこれだ!ってやったほうが楽じゃない?
つまりレスポンシブデザインを作る時点で、複雑設計をしてはいけない。

私のスマホでなんでちゃんと縮小されないんだろうって悩んでた。
$(window).width()
これで解像度を調べたところ1000いくつとかあって、スマホの見た目のサイズと全然違った。
そりゃ640以下のmediaクエリとかに書き込んでも反映しないはずだよ。
本当の1024サイズと
、スマホの画面領域360pxで全然違うじゃん。
なんかもうめんどくせー。
1024以下(タブレット・スマホ)と以上(パソコン)で分けるのが簡単でしょ!

スマホでjsを実行させたくない条件分岐のしかた
http://webpad.felicyle.com/jquery/iphone-js-no/

16 August

クロールエラーをなくしたい 404.phpを作る ワードプレス

404.phpを作る


index.phpをコピーしてファイル名を変更する
<p>指定されたページは存在しませんでした</p>
<a href="<?php echo home_url(); ?>">トップページへ戻る</a>
とでも書き込む

.htaccessの先頭
ErrorDocument 404 /index.php?error=404
と書き込む
wpが入ってるフォルダを作っているなら
ErrorDocument 404 /blog/index.php?error=404
などと書きこむ
※wpがインストールされてるフォルダ内の.htaccessに書く
上の階層にもあるしよくわかんなくて色々やった

page.php single.php archive.php index.php(記事があれば)の先頭(get_headerの上)に
<?php if (!have_posts()) {
header("HTTP/1.1 404 Not Found");
include (TEMPLATEPATH . '/404.php');
return; } ?>

と書き込む
※404.phpに書いてはいけない。適当に書いたら存在しないページが真っ白になった。
http://www.koikikukan.com/archives/2007/05/21-022525.php

wpのテンプレを使用すると、記事のとこには大抵「記事がなかったらこの文を出す」っていう命令があると思います。でもそれだと404をgoogleにだしてないということになるらしいので、無いページは無い!ということをGoogleに伝えるために、記事がない場合は404.phpを出すようにするコードです。

既に削除したり変更したスラッグってありますよね。
WPは簡単にページが作れるので作っちゃ捨て、みたいなとこあると思います。
でも一定期間おいといてその間にクロールがきちゃってURL拾われるとやばいです。
削除したあとにまたクロールが来てページがないよーって言われます。
この404クロールエラーは検索結果に影響しないってGoogleがいってるのでほっといていいと思うんですが、色々と煩い人もいるのでなくす必要がある人もいるかと思います。

手っ取り早く404クロールエラーをなくすのはrobots.txtでクロールが来ないようにブロックすることみたいです。でもWPで適当に記事作って捨ててるとゴミがたくさん404エラーで出てきてrobots.txtが汚くなります。なんかそれは嫌なんですよね。

次に無いページからリダイレクトすることです。
でもそれは「ソフト404エラー」といってあまりよろしくないらしいです。
リダイレクトは古いURLから新しいURLに飛ばすのが本来の使い方っぽい?
でもWPは初期設定で.htaccessにindexにリダイレクト命令が書き込まれています。
だから色々設定が必要なんです。

どこかの誰かが間違ったURLを貼り、そのリンクを誰かがクリックしたとしても404クロールエラーが出るそうです。どうしようもないよね。私のせいじゃないんですけど。
使ってるスラッグがおかしくて機能してないならともかく、削除していらないスラッグのことでエラーでてどうこういわれるとかイライラするわ。
16 August

wordpress seo by yoast で設定すること 覚書 ワードプレス

wordpress seo by yoast


日本語化パッチの導入
http://pasonal.com/wordpress-seo-by-yost-jp-download/

header.phpの<title>の中身を下記変更
<title><?php wp_title( '|', true, 'right' );?></title>

テンプレテーマを使うとbloginfo("name")みたいにサイト名を表示するテンプレートタグが書いてあると思います。しかしSEOプラグイン使うなら、これが邪魔になってくるので消します。

カテゴリーと、カスタムフィールドのみで作られた投稿内容がないページはプラグインでdescriptionを勝手に作ってくれません。なので個別ページで記述します。