コーディングの仕事をするとき、気を付けてること

北海道にもWeb標準が普及したのか、私がMTやWPを扱っているからか、最近は会社を通したコーディング案件を扱うことが多くなりました。

静的なウェブサイトの場合、大抵はコーディングの時点で中に入る文章が確定していますが、私の場合ブログやレンタルカートやCMSがベースなので、通常テキスト部分に何を書きこまれるのか予想がつきません。
この点を踏まえて、どんな感じで気を付けているのかご紹介します。
熟練のコーダーさんには、今更な内容も多いですが…^^;

↓このようなサイトのコーディングをしたとして、以降の話を進めます。

coding01

あ、これオリジナルです。クライアントさんの原画使ったら拳で殴られます。
※写真素材:素材辞典フォトバイブル20000(ロイヤリティーフリーです)

右に画像があるときはwidthかpaddingを明示する

coding02

先程のサイトは、ロゴの下のサイト説明文が余白内に一行で納まっています。

この場合、普通にロゴと説明文の間にmarginを指定すればいいのですが、もしここに長い文言を書き込まれた場合、右の女性のヘッダ画像に文字がかぶってしまいます。

静的なサイトだったとしても、クライアント側からの変更指示はよくあることです。 なので、はじめからこの部分にwidthか、右paddingを明示しておきます。

できるだけ縦の伸びに対応する

前項のヘッダに関連して、ブラウザの文字サイズ変更で、サイト説明文を猛烈に大きな文字にしても、崩れず読めるようにコーディングをします。

これはデザインの影響を受けるので、どんなサイトでもできるわけではないのですが、サンプルだと下の画像のように、女性の画像をbackground-positionで下寄せに、かつロゴを透過gifかpngにすれば崩れず表示できます。

coding03

エントリー枠の最後を必ずclearする

ブログやCMSの場合、本文内に更新担当者が画像を貼ることができます。
このとき「左右の配置」も指定できるのですが、
画像の高さより本文の行数が少なかった場合を想定しておかないと、後続する要素(この場合次の記事かページナビゲーション)がfloatに巻き込まれ、実にアクロバティックなページになります。

coding04

この対策として、エントリー内にフッタ要素があればclear:bothを指定してfloatを終了させるか、本文枠をdivで包括してclearfixを指定しておきます。

.entry-body {
	height: 100%;
}
.entry-body:after {
	content: "."; display: block; clear: both; height: 0px; visibility: hidden; font-size: 1px;
}

「そんなの当たり前じゃん」と突っ込む人もいるかと思いますが、
これに対応していないテンプレート・テーマ・スキンは、レンタルブログの公式テーマなんかでも結構多いです><

本文枠に背景画像があるときはmin-heightを指定する

前の画像を見て、気付かれたでしょうか。
背景の化粧瓶の写真が欠けています。

coding05

本文枠の背景にこのような背景画像があるときは、例え文章が一行しか入らなくても、背景画像の高さ分を最低確保しておく必要があります。
この場合、私はmin-heightで対応しています。

.entry-body {
	height: auto !important; /* for Modern Browser */
	height: 155px; /* for IE */
	min-height: 155px; /* for Modern Browser */
}

本文のline-heightの値に単位を付けない

line-heightの記述方法はいろいろありますが、このときに「150%」や「1.5em」とすると、標準の文字サイズを基準に行の高さが指定されます。
これだと、途中でfontやspanで文字サイズを大きくしたときに、行の上が詰まってしまいます。

coding06

ここで、line-heightに単位を付けずに数値だけにすると
行内の各々のインライン要素を基準に行の高さが指定され(この辺りのCSS仕様にはあまり詳しくないのですが…)、文字を大きくした個所には少し多めの行間が自動で入ります。

table要素をリセットしない

テーブルはブラウザ間で微妙にレンダリングが異なります。
なので、コーディングの最初にborder-collapseやborder-spacingを指定することもあるのですが、ブログやCMSを扱うときは、table関連の要素には直接スタイル指定を行わないようにしています。

更新担当者がCSSレイアウトに習熟しているとは限らないからです。
というより、これまでの経験では担当者の人はほぼ100%、テーブルで表を書いたり段組みをしたりします。

このときにborder-collapse:collapseとしていると、table要素のcellspacing属性が有効になりません。
どうせ、コーディングをする私は、レイアウトにtableを使うことはほとんどないですし…
ここは「顧客満足度」重視で^^;

ただ、このままでは表を書くのが大変です。
なので、更新担当者が表を多用する可能性がある場合は、以下のようにCSSを組んでおき、

.entry-body table.hyo {
	margin: 1em 0 2em;
	border-collapse: collapse;
	border-spacing: 0px;
	border-top: 1px solid #CCCCCC;
	border-left: 1px solid #CCCCCC;
}

.entry-body table.hyo th {
	padding: 7px;
	text-align: center;
	line-height: 1.2;
	border-bottom: 1px solid #CCCCCC;
	border-right: 1px solid #CCCCCC;
	background-color: #EEEEEE;
}

.entry-body table.hyo td {
	padding: 7px;
	text-align: center;
	line-height: 1.4;
	border-bottom: 1px solid #CCCCCC;
	border-right: 1px solid #CCCCCC;
}

「<table class="hyo">と書くと、サイトに合わせた表組みが自動でできますよ」
とメールやPDFマニュアルなどでお知らせしたりします。


コーディングは、そのサイトのデザインや、どのように納品するかで千差万別です。
個人の方と一対一でお仕事をするときと、制作会社を通してコーディングのお仕事をもらうときでも考えることが違います。

もちろん、完璧なコーディングが理想ではありますが、最後にサイトを手にするのはあくまでお客様、ということは、念頭に置くようにしています。


TwitterTwitterで記事を紹介して下さい(-人-)

Back to top

15 Comments

あひる

Comment

すごい。さすがはプロ! あひるが作るようなHPとはラベルが違う! ちょっとショック。って、あひるはデザイナではないけれど。

WebbingStudioさんは天災だ!

  • by: あひる
  • time: 2009.03.07 15:44:24
WebbingStudio

Comment

あひるさんこんばんはー。

>天災だ

半分だけ天才=普通ですね。わかります。

あひるさんたちプログラマさんは、
セキュリティ上問題がないか?とか、
正しい処理が効率よく行われるか?
ということに、日頃いろいろと気を遣われると思います。
それと同じようなことですね。

もっと異業種間で、こういった情報の交換ができればいいんですけどね。

mine

Comment

こんばんは、お久しぶりです。

右サイドの「ピックアップ」の一覧のHTMLは、
WebbingStudioさんでしたら、どんなふうにコーディングしますか?

私だったら、ピックアップがh3、リンク部がh4、
テキストと画像はそれぞれpで、テキストのpに高さを指定して
画像のpはfloatをかけ、divは使わずにやりますが…

悩んだら負けな気もしますが、
定義済みリストを使ったり、箇条書きリストも使ったり、
画像は背景にしちゃったりなどいろいろなやり方があり、
私はいつも悩みます…

あ、それと、使用している画像は普段どこから探してきているのですか?
私はstock.xchngという海外のサイトを利用しているのですが、
あまり良いのが見つからないんですよ…

アドバイスをいただけるとうれしいです。

  • by: mine
  • time: 2009.03.08 21:32:42
WebbingStudio

Comment

mineさんこんばんは。

文書構造を優先して<ul>や<dl>を使う方もいますが、
私は後々の要素追加や使い回しを考えるので、
各セクションを<div>でグルーピングするものとしてコーディングをします。

サンプルのような感じですと

<div id=”sub”>
<h2 class=”sub-title”>ピックアップ</h2>
<div class=”pick”>
<img src=”hoge.jpg” />
<h3 class=”pick-title”><a href=”#”>リンクです</a></h3>
<p>テキスト</p>
</div>
<div class=”pick”>
<img src=”hoge.jpg” />
<h3 class=”pick-title”><a href=”#”>リンクです</a></h3>
<p>テキスト</p>
</div>
</div>

でしょうか。

※デザインによっては各pickをさらにdivで包括したりします。
※見出し要素にclassが入っているのは、案件によって見出しの重みづけが変わることがあるからです。
CSSには要素名を書かず、classで装飾指定をします。
※最近までimgもpで包括していましたが、imgだけでもよさげです。
※この場合、各pickの下線は実線なのでCSSで引きます。

海外の素材は品質にむらがあったり、権利関係を調べるのにいちいち翻訳が必要なのでバックグラウンド以外はあまり使用しません。
探しているだけで時間がかかったりします。

個人用には上のサンプルも併せて、イメージクラフトの「素材辞典フォトバイブル」を多用していますが、
(640pxの画像が10000点くらい入っているものです)
かなり普及している素材集なのでかぶりがちです。
新しいのが欲しいです。

最近はメイン写真は一枚500~1000円の素材販売サイトで買うことも多いですね。

ちなみに、今のブログの背景には一部「足成」のフリー写真を拝借しています。

mine

Comment

早速の返信ありがとうございます。
なるほどー。
海外の素材はたしかにいろいろと面倒ですよね、
でも国内ので無料のってあまり充実してないんですよね・・。

  • by: mine
  • time: 2009.03.08 23:37:53
hiro

Comment

今、企業のweb担当(請け負い)をしていて、ある程度サイトをいじることのできる立場にいるのですが、この道のプロではないので、ブログのカスタマイズや、本サイトとのデザインの統一、web標準化(本当にできているのか不明)に四苦八苦しています。(サイト自体は他の素人が作った物で、同じ素人でも自分の作ったサイトではないですし。。。)
この記事はそんな中、すごく参考になると思いました。
ありがとうございました。

  • by: hiro
  • time: 2009.03.20 18:18:17
WebbingStudio

Comment

こんにちはhiroさん。コメントありがとうございます。

私は仕事柄、納品後も更新を担当する案件はあまり多くありません。
ただこなしてくだけだとオペレーターと変わりないので、納品後の担当者が安心してサイトを扱えるようにとは、気を遣ってます。

web標準化は私もまだまだ自信ないです…
でも、web標準に添ってコーディングすることで、どのデザイナーもスムーズに仕事ができるようになるのは間違いのないところです。
前の担当者のコーディングレベルで、こっちの作業時間も雲泥の差ですからねー(笑)

コーディングルールやCSSのクラス周りを整理するだけでも、更新作業がとても楽になると思いますよ。
頑張ってくださいね。

えど

Comment

はじめまして!
なかなか参考になりました!
ひとつのデザインを使って色々な人の
コーディングを見比べると発見がたくさんありそうですね。

これからちょこちょこお邪魔しますね(*’-')

  • by: えど
  • time: 2009.06.12 17:10:19
WebbingStudio

Comment

こんにちは!twitterもfollowありがとうございます。

えどさんのサイト凄いですね(゚Д゚;
てっきりFlashベースかと…
http://portfolio.css-eblog.com/

最近は札幌でもコーディング関連の勉強会が開かれるようになって、他のコーダーさんのソースを見る機会も増えました。
もっと地方でも、コーダー同士の交流をしていけたらいいなと思います。

えど

Comment

こちらこそfollowありがとうございます。
最初はFlashも考えたんですが、
勉強のためにとAjaxにしてみたんですw

  • by: えど
  • time: 2009.06.25 11:27:08
通りすがりのサル

Comment

こんにちは。
おもしろそうなブログですね!

ただ、気がついた点を一つ。
「サイトデザインはオリジナルです、クライアントの原画を使ったらあかんので」
と書かれていますが、配置している写真画像もオリジナルなんでしょうか?
オリジナルならいいですが、写真がどこかの人が撮影したものなら、それも著作物になってしまいますよ。

いちおう、著作権者の許諾を得ないで使用するためには、
「引用」とされたらよろしいかと。
引用の場合は、記事の内容と著作物の関係が「主・従」になっていればよく、
今回の記事では、写真素材についての内容ではなく、HTML・CSSコーディング
テクニックの話なので、写真素材はあくまで、記事内容にとっての付録的な要素になり、「引用」と認められる可能性が高くなります。
キチンと引用する場合は、ページのどこかに、「何々より引用」と出自を記入すればよいとされています。

僕も商売柄、Webサイト制作全般に関する記事を書くことが多いのですが、
著作権を甘く見ていてえらい目にあった人を知っています。
せっかく面白そうな記事を書いておられるので、
一つの参考にしていただければ、と思います(^^

  • by: 通りすがりのサル
  • time: 2009.07.17 16:57:40
WebbingStudio

Comment

おさるさんこんにちはー
反応が遅くなりすみません。もう気付いてもらえないかも(´-`三

記事中のサンプルに使用している写真素材ですが、
データクラフト社の「素材辞典フォトバイブル」を使用しています。

http://www.sozaijiten.com/products/photobible/

これは、全収録素材がロイヤリティーフリーとなっています。
また、クレジット表記の義務もありません。

http://www.sozaijiten.com/license/pb_license.asp

なので、購入していれば今回の記事等の利用でも大丈夫だと思います。
とりあえず、記事からリンクを貼りました。

低解像度とはいえ、人物でこれだけユルい素材集は珍しいので
同じような人たちをいろんなウェブサイトで見かけたりしますw

びい

Comment

でも単位のついていない数値って規格違反ですよね。
※ ただしイケメン0を除く

  • by: びい
  • time: 2009.07.24 20:48:30
WebbingStudio

Comment

まぁ、最後に書いてることが全てですね。

>完璧なコーディングが理想ではありますが、最後にサイトを手にするのはあくまでお客様

WEBデザイナーの仕事は技術より臨機応変(×妥協)が求められることも多いです。

あ、ちなみに私イケメンじゃないです。

びい

Comment

line-heightにnumberもいけたんですね。私の思いこみでした。

  • by: びい
  • time: 2009.07.28 23:13:34
Trackback URL

コメントをどうぞ

About me
うぇびん
Author
うぇびん
Location
Sapporo,Hokkaido
Birth
March 26,1975

フリーのWeb屋です。
主に、各種CMSのデザインカスタマイズを請け負っています。制作会社様への技術提供もやってます。
WebbingStudioは屋号です。ウェビングスタジオとお読みくださいまし。

Archive

pagetop

[No IE6!] このウェブサイトは、InternetExplorer6以前では透過画像などに不具合が生じます。