[CSS] 教科書には書いていないCSS

09-18-2008 Category: Web Design‚  XHTML+CSS

題名にはあまり意味は無いです。たぶん書いてる本には書いてると思います。なので正確には

僕の持っている 教科書には書いてない か、僕が見落としている XHTMLとCSS」

なのでニュアンス的にはちょっとした小技みたいな感じで受け取ってくれるとこちらも気が楽ですけど、いかがなものでしょうか。さて情けない逃げ口上もすんだことですので、本題に入ります。

テキストリンクのアンダーラインをボーダーで表現する

リンクのアンダーラインを自分色で染めたい(調整・装飾したい)場合ってありますよね。そういうときはボーダーでアンダーラインを表現します。ですのでボーダーの幅やスタイル(実線、ドット、ダッシュ等)等で表現が可能です。(その他手書き風等のオリジナルの”飾り”を指定する場合は背景でやります)

1.が普通に指定したアンダーラインのあるリンク

2.飾りがnoneでボーダーの下が2pxのdotted

2.hoverの飾りがnoneでボーダーの下が2pxのsolid

文字と下のボーダーとの距離はline-heightかheightで調整します。その場合はdisplay: block;にする必要があるので少々クセがあります。

IEデフォルトのツールチップを表示させない

html内に<img>で画像を表示させた場合は必ずaltを指定する必要があります。このブログはaltが適当なんでけしからんです!最近ではもっぱらユーザビリティやSEOの要素として扱われる事が多いですが、純粋にちゃんと書いてた方が後々ソースを見直したときにも理解が早いですよね。

しかし色んな人の思惑や意図が絡み合って、どうしてもaltが長くなってしまいツールチップの表示が邪魔になることがたまーにあります。

そんなときは<img>の中にtitle=”"を入れましょう。そうすることでツールチップが表示されなくなります。ですが、本来の意味で考えると本末転倒になってしまうので積極的にはオススメできません。

DTDによる画像の下に出現する意図しない隙間を埋める

僕がサイトを作る場合、基本的にXHTML 1.0 Strictで作ります。そうなると右の画像のようにFirefoxでは画像の下に意図しない隙間が出来てしまいます。

右の場合は特に問題ないのですが、装飾要素のある部位だとこれは致命的です。なのでそういうときはCSSでimgに対して

vertical-align: bottom;

を指定してあげます。こうすることで画像の下に表示されていた隙間は無くなります。

Fiirefoxの縦スクロールバーを常時表示させる

Firefoxはサイト全体が画面内に収まる場合はスクロールバーを表示しません(IEは縦スクロールバー常時表示)。縦にスクロールの必要がある場合にのみスクロールバーが表示されるので、制作側の大きいモニタでは問題なくても、一度に表示できない小さいモニタとFirefoxを使ってサイトを見ている訪問者は、ページ移動の度にスクロールバーが表示・非表示と切り替わってしまいます。

そうなるとページ移動の度にスクロールバーの幅だけ横にズレてしまうので、見ている人に何とも言い難い不安定感を演出してしまいます。サイトの縦幅が全ページ同じなら気にすることもないのですが、なかなかそういう風にはいきません。ですのでそういうときにはCSSに

html>/**/body { overflow-y:scroll;}

を記述することによってFirefoxでの縦スクロールバーの常時表示が実現します。これはIE7以外のモダンブラウザに適用されるようにCSSハックを利用しています。そしてこのハックはW3CのCSS Validatorには通りませんので注意してください。そもそもoverflow-y自体がCSS2.1に存在しないので最初から通らないんですが。

頑張って作ったサイトは自分の作品ですから、できるだけ色んな人に綺麗な状態で見てもらいたいですよね。

またなんか思いついたら書いてみます。

関連する投稿

[CSS]CSSで簡単に拡大画像をアナウンスする

09-07-2008 Category: XHTML+CSS

CNET JAPANのニュースにフォトレポート(リンク先は新型PSPのフォトレポート)という形式の記事があるんだけど、そこでは写真上ににカーソルが乗った瞬間に、「写真をクリックすると次へ移動します」みたいなのが写真の上に出てくるんです。で、それを見てたらふと「写真をクリックすると拡大します」みたいな感じでも使えるような気がしたので、真似したくなった。

フォトレポートの画像周辺のソースをざっと見ただけなんではっきりとは言えないんだけど、<a>と<img>の間に空spanが入ってるんでなんとなくやり方がわかったようなわからないような。以前Web Designer WallでやってたCSS Decorative Galleryみたいなのの延長線上+αかなぁとは思うんだけど確証なし。でもまぁあんまり難しい事は出来ないので、簡易バージョンで再現してみました。

続きを読む…

関連する投稿

[XHTML+CSS] 引用を装飾してみる

08-03-2008 Category: XHTML+CSS

ブログをやってると引用(blockquote)をすることが多いので、とりあえず引用符?ちょんちょん?ダブルクオート?を作って見ました。

引用符 wikipedia
引用符(いんようふ)は、約物の一つ。文中において、他の文や語を引用していることを示す役割を果たす、引用部分を囲む一対の記号。コーテーションマーク、クォーテーションマーク、クオーテーションマーク、引用符号とも言う。

こういうの装飾方法って、おしゃれ系ブログとかで良く見ますよね。うちのCSSはこんな感じです。

blockquote {
	background-color: #F2F2F2;
	background-image: url(/画像1.gif);
	background-repeat: no-repeat;
	background-position: 2% 0.5em;
	width: 95%;
	margin: 0 auto 1em auto;
	padding: 0px;
	border: 4px solid #939393;
}
blockquote p {
	text-align: justify;
	text-justify:inter-ideograph; /* IE独自 */
	background-image: url(img/画像2.gif);
	background-repeat: no-repeat;
	background-position: 98% bottom;
	padding: 2em 13.5% 1.5em 13.5%;
	margin-bottom: 0.5em;
	font-size: 85%;
	line-height: 1.5;
}

blockquoteの背景に左上の”(ダブルクオート)を指定して、中のPの背景に右下の”(ダブルクオート)を指定するかんじです。

うちは横幅が960px-760pxの擬似リキッドですので、ちょっと数値とかが面倒です。あと、いろいろ色指定したりボーダー使ったりしてるんで長いっすね。backgroundはあえてショートハンドで書いてません。

普通にやるなら

blockquote {
	width: 500px;
	padding-left: 60px;
	background: url(img/画像.gif) no-repeat left top;
}
blockquote p {
	padding-right: 60px;
	background: url(img/画像2.gif) no-repeat right bottom;
}

をベースとしていじっていく方がいいと思います。

関連する投稿

[CSS] 追記 - 白銀比固定で指定した横幅までリキッドなエラスティックレイアウト

06-19-2008 Category: Web Design‚  XHTML+CSS

なんか題名が意味不明になってしまいました。メイン部とサイドバーが白銀比を保ちつつ、指定した横幅(例:760px~960px)まで可変なエラスティックレイアウトです。

うんごめん日本語苦手なんだ。こういうのってなんて呼べば良いんだろう。勉強不足で申し訳ない。

たぶんいろんな所でCSSに詳しい人が解説してるんじゃないかと思うので、運悪くこのページを開いてしまった人へ参考までに。
(と予防線を張る)

続きを読む…

関連する投稿

Web担当者になったらハッキリ理解しておきたい単語

06-04-2008 Category: Web Design‚  XHTML+CSS‚  雑記・覚書


わたくしごとで恐縮ですが、Webサイトを作る場合に意思の疎通を妨げるのが言葉に対する認識の違いだったりします。

例として
A「ブログ形式(weblog)で更新していくなんてどうですか?」
B「ブログ形式(日記)?そんなもんいらないよ」
みたいな

まぁこれはどちらも間違いじゃないですし詳しい方が歩み寄れば良いのですが、やはり現場レベルの人間と営業の方が話したりすると、そういう言葉に対する認識のズレによってギスギスしちゃったりするもんです。

続きを読む…

関連する投稿

  OlderPosts »