2行目の始まりを行揃えするCSSの小ネタ。

注意書きや※印が文頭に入った文章を書くとき、1行で収まればいいですけど2行になってしまうときってありません?

画像にしたいけど…ココはテキストじゃなきゃダメ!!
そんなとき、改行入れるとか全角スペース入れるとか私はやっちまおうと思うんですけど、今回は個人的に目からウロコの小技を会社の人に教えてもらったのでメモ。

私は 行揃えしたいだけなんです。


Continue reading »

ボックスの概念

CSSによるデザインの基本は「ボックス」。
Webページでは、HTMLタグで囲んだ部分が1つの「ボックス」として扱われる。
CSSではこの「ボックス」に対してスタイルを指定する。

ボックスは次の4つの領域から構成される。

<内容>
要素に含まれる内容/width(幅)とheight(高さ)で表示領域を指定

<padding : パディング>
内容とボーダーとの間のスペース

<border : ボーダー>
パディングの周囲にある枠線(ボックスの背景はborderの領域まで)

<margin : マージン>
要素のボーダーと他の要素の間の余白
(背景は常に透明のため、親要素の背景に依存)

★ボックスのサイズ
ボックスとして実際にブラウザに表示される領域は、『width+padding+border』を合計したサイズ

例)480px + 50px*2 + 10px*2 = 600px(ボックスの表示領域)
★CSSの記述

#contents{
width:600px;
background-color:#ccc;
padding:50px;
border:solid #f0010px;
margin:30px;
}

★HTMLの記述

<div id="contents">
<h1>ボックス</h1>
<h2>ボックスの基本</h2>
<p>CSSによるデザインの基本は、「ボックス」です。
Webページでは、HTMLタグで囲んだ部分が1つの「ボックス」として扱われます。
CSSではこの「ボックス」に対してスタイルを指定することになります。</p>
<p>ボックスは次の4つの部分から構成されています。</p>
<ul>
<li>内容 (width/height:幅と高さ)</li>
<li>パディング padding(内容と枠線の間の余白)</li>
<li>ボーダー border(枠線)</li>
<li>マージン margin(枠線の外側の余白)</li>
</ul>
<h2>ボックスのサイズ</h2>
<p>ボックスとして実際にブラウザに表示される領域は、
『width+padding+border』を合計したサイズになります。</p>
</div>

★表示例はこちら
ボックスの概念

ブロックレベル要素とインライン要素

★ブロックレベル要素
ブロックレベル要素は見出し、段落など文書を構成する基本要素。
CSSで何も指定しない場合は、ブラウザの横幅いっぱいに広がり幅と高さがある。
(要素の前後には自動的に改行)

例)h要素(見出し)、p要素(段落)、ul要素(リスト)

★インライン要素
文章中の一部として扱われる要素。幅と高さを持たない。
行の一部として扱われるので、要素の前後に改行は入らない。
必ずブロックレベル要素に含まれる形式で記述されなければならない。
※bodyタグに直にインライン要素を記述することは不可

例)a要素(リンク)、strong要素(語句の強調)、img要素(画像)
※img要素もp要素でマークアップする

★要素の基本ルール

1. ブロックレベル要素の中に、別のブロックレベル要素やインライン要素を含めることは可

 <div><p>内容</p></div>
<div><img src="nantoka.png"></div>

2. インライン要素の中に、別のインライン要素を含めることは可

<span>内容<img src="nantoka.png"></span>

3. インライン要素の中に、ブロックレベル要素を含めることは不可

<a href=""><h1>見出し</h1></a>

h1,h2などの見出しにリンクを張る場合

<h1><a href="">見出し</a></h1>

テキストを画像で置換

CSSを使用して「テキストを画像で置換」
backgroundで指定する方法の基本的なやりかた。
※賛否両論ある方法なので注意です。

<HTML>

<h1>cssで画像置換</h1>

<CSS>

<style type="text/css">
h1 {
    background-image:url(title.gif);
    width: 400px;
    height: 50px;
    text-indent: -9999px; /* 左へどーんって飛ばす */
}
</style>

この指定は、SEO的な視点から見ると有効…?
でもユーザーが画像を表示しないようにブラウザを設定している場合、ブラウザ上にはなにも表示されない状態になる。
そのためユーザーのアクセシビリティ上いかがなものか、という意見もアリ。
(ベストなのは背景に画像を指定して上がテキストという状態だから)