フォームボタンがIEだとおかしくなる

例えば、PHP(文字コードutf8)でフォームを作ったとする

<input value=”送信” />

というようにボタンの部分を作ると、なぜかブラウザのIEで見ると文字が上にずれて、ボタンの幅も大きくなりすぎる。firefox,chrome,safariだと綺麗に表示される。

<input type=”submit” value=”送信” class=”b1″/>

として、クラスの中で幅と高さを決めると、ボタンの幅が大きくなりすぎる問題は解決。
文字の高さもクラスの中でpadding-topで数ピクセル空けてあげると一応は解決。ただしpaddingを使うと今度はIE以外でおかしくなる。

文字フォントを

font-family: “MS UI Gothic”;

にすると解決するという情報を見て、クラスで指定したら、高さはちゃんと表示された(幅はダメ)。
ただ、ボタンの部分だけフォントを変えるとデザインに違和感が出る場合がある。
結論としては、簡単に済ませるなら、ボタンの大きさをスタイルシートで設定し、フォントはMS UI Gothicにすると良さそう。

まあ、ちょっと面倒です・・・。

知の技法 出世の作法 最近のメモ

「週間東洋経済、知の技法 出世の作法 佐藤優の連載」8~9月分

メモするのを忘れていたので、記憶が曖昧だけど最近の連載で記憶に残ってるものの自分用メモ。

受験制度には問題があるが、受験をして大学に入った人は勉強する訓練ができている。
私立などで受験をせずに持ち上がりで大学に入り、そのまま企業で働いている人は基礎知識が大きく欠けていることがある。そういう人から、基礎的な英語力に不安があるがどうしたらいいかという相談を受ける。

中学レベルの英語に不安がなければ、思いきって海外の英語参考書の「マーフィーのケンブリッジ英文法(中級編) 、「English Grammar in Use」か「スワンとウォルターのオックスフォード実用英文法、The Good Grammar Book」を進めている。毎日2時間やれば半年で終わる。著者(佐藤優氏)は両方ともすべての練習問題を含めやったが、これをやれば実用英語には十分。

中学レベルの英語に少し不安がある人はスワンとウォルターの方が優しいので、こちらを薦める。「マーフィーのケンブリッジ英文法(中級編) 」、「スワンとウォルターのオックスフォード実用英文法」の本は必ず英語版も買っておき、英語ではどういう説明がしてあるか見ておくことが大切。

「マーフィーのケンブリッジ英文法(中級編) 」、「スワンとウォルターのオックスフォード実用英文法」を勉強したのに身につかないという人は、内容を理解していないか、もしくは記憶に定着していないかのどちらか。
著者は、身についてない箇所にはエンピツで印をつけておき、繰り返し取り組み、身についたら、それを消していく、ということをしている。

マーフィーのケンブリッジ英文法(中級編)日本語翻訳版

マーフィーのケンブリッジ英文法(中級編) (Grammar in Use) マーフィーのケンブリッジ英文法(中級編) (Grammar in Use)
Raymond Murphy William R.Smalzer ウォーカー泉

Cambridge University Press,Asian Branch 2005-09
Amazonで詳しく見る
楽天ブックスで詳しく見る

English Grammar in Use(英語)

English Grammar in Use With Answers (Book & CD-ROM) : A Self-Study Reference and Practice Book for Intermediate Students of English , Intermediate English Grammar in Use With Answers (Book & CD-ROM) : A Self-Study Reference and Practice Book for Intermediate Students of English , Intermediate
Raymond Murphy

Cambridge University Press 2004-05-15
Amazonで詳しく見る
楽天ブックスで詳しく見る

スワンとウォルターのオックスフォード実用英文法(日本語翻訳版)

スワンとウォルターのオックスフォード実用英文法―パートA:動詞と時制 (Obunsha ELT Books) スワンとウォルターのオックスフォード実用英文法―パートA:動詞と時制 (Obunsha ELT Books)
マイケル スワン キャサリン ウォルター 高島 英幸 Michael Swan

オックスフォード大学出版局 2006-07

Amazonで詳しく見る
楽天ブックスで詳しく見る

スワンとウォルターのオックスフォード実用英文法―パートB:修飾と接続 スワンとウォルターのオックスフォード実用英文法―パートB:修飾と接続
マイケル スワン キャサリン ウォルター 高島 英幸 Michael Swan

オックスフォード大学出版局 2006-07

Amazonで詳しく見る
楽天ブックスで詳しく見る

THE GOOD GRAMMAR BOOK(英語)

THE GOOD GRAMMAR BOOK: The Good Grammar Book with Answers THE GOOD GRAMMAR BOOK: The Good Grammar Book with Answers
Michael Swan

Oxford Univ Pr (Sd) 2003-06-12

Amazonで詳しく見る
楽天ブックス

「マーフィーのケンブリッジ英文法(English Grammar in Use)」と「スワンとウォルターのオックスフォード実用英文法(The Good Grammar Book)」はよくできた本だが、単調な練習問題が続くので、最初に少しだけやって途中で投げ出してしまう人が多い。

著者は最近、予備校の講師と協力して、ある受験生を指導している。使う参考書を指定し、毎日勉強したことをメールしてくるように言っているだけだが、数ヶ月で学力が大幅に伸びた。

勉強に継続は大切だが、重要なのは、継続する仕組みをどうやって作るか。周りの人に勉強していることを話し、毎日やったことをメールするのはよい方法。

過大報告せずに正直に報告することが大切。

JavaScriptで、onclickを複数設定する

JavaScriptをいじっていると、onclickの設定で複数の動作をさせたいときってあるんですけど、やりかたがわからないので調べたところ

onClick=”Aの動作;Bの動作;”

というように、ただ;でつなげてあげるだけでよかった。

ページ内を移動させると同時にAの動作をさせたい場合なら

onClick=”Aの動作;window.location.href=\’#top\’;”

というようにすればいい。

あんまりごちゃごちゃする場合は、関数内にまとめてから、その関数をonClickで作動させるとかわりやすくなる。

ロリポップでサイトマップのエラーが出た場合の対策

最近、自分が使っているレンタルサーバーのロリポップ!にて、登録しているサイトマップ(sitemap)がグーグルのウェブマスターツールに認識されないというエラーが出ていた。

サイトマップを作り直したり、登録をやり直してもダメで、いろいろ試してみて、結局ロボットテキストを設定してあげると解決した。

robots.txtという名前のテキストファイルを作り、
中に

User-Agent: *
Disallow:
Sitemap: http://アドレス/sitemap.xml

と書いた。(サイトマップがsitemap.xmlというファイル名の場合)
自分の場合は他に何も設定してないから上のように書けばOKだった。

1行目はユーザーエージェント(例えばサイトマップを見に来るグーグルとか)に対する設定で、すべてを許可するので「*」にする。User-Agentとは英語を直訳すると利用者の代理という意味で、グーグルならグーグルが利用しているとわかる名前みたいなものがあるのでそのこと(想像)

2行目のDisallowはグーグルなどがサイトを見に来たときに、見られたくないものがある場合に設定する。Disallowは英語で「拒否する」という意味。すべて公開する場合は何も書かなくていい。

普通は、上の二つはこの設定が基本らしい。

3行目がサイトマップの位置を教えてあげる設定。これを一番上に書いた方がいいという情報もあるけど、取りあえずこれで上手くいったのでこのままにしておいた。

このrobots.txtファイルをサイトのトップページを置いているフォルダにアップロードして、再度サイトマップの再送信をしてあげると次の日にはエラーが消えて正常に認識されていた。

今回の件がロリポップに問題があったのかはわかりませんが、他に使っているさくらインターネットの方は問題が出ていなかった。前から、ちょくちょくトラブルがあるなと思っていたので、今度の更新の時期が来たら、さくらインターネットのレンタルサーバーの方に移してしまうかも。
ロリポップ!
さくらインターネット

preg_replaceによる置換で気をつけること

preg_replaceを使い、日本語の置換をするとき、マッチするパターンを持っているのに、スルーしてしまう箇所があるので調べてみた。
例えば、パターンにマッチする箇所を持つデータが100個あったとすると、20個ぐらいが置換できない。
完全に処理されないなら分かりやすいんだけど、半端な割合で処理がされないので、何が悪いのか迷ってしまった。

調べてみると、日本語とpreg_replaceの組み合わせだから起こる問題だとわかった。
パターン部分をUTF-8でエンコードして処理するとあっさり解決。
以下のように/の後にuを付けてあげる。

$x=preg_replace(‘/パターン/u’,’置換後’,$str);