Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

[CSS] clearfixの使い方を考える

公開日: : 最終更新日:2014/08/09 CSS, Web制作 , ,


Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524

現在のclearfix

以前は、IE6に対応させるためにソースがちょっと多かったですが、現在はかなりシンプルです。

.clearfix:after
{
 content: "";
 clear: both;
 display: block;
}

これだけです。
これで、IE7以上の全てのブラウザに有効です。

clearfixの使い方

たまに、依頼先のソースが変だから修正してって依頼が舞い込んできたりします。
そういうときによくみかけるのが、floatさせた要素の下に空のdivでclass=”clearfix”っていうのがあります。

僕は個人的にこういうソースは大嫌いです。
floatを解除するために空のdivを置く意味がわかりません。
こういうことをすると、ソースが見にくくなり、修正もしにくくなります。

例えば下記のような感じです。

<div class="ul_left">
 <ul class="float ns redarrow padl30">
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
 </ul>
 <ul class="float ns redarrow padl30">
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
  <li><a href="#">横並びリンク</a> </li>
 </ul>
</div>
<div class="clear"> clear both </div>

いかがですか?違和感がありませんか?

これは、実際にあった案件のソースです。
この場合、<div class=”clear”>の中にあるclear bothという文字はtext-indentで隠していました。
これを見た時は、さすがにがっくしきました。

全くサイトに関係ない文言を勝手に置き、それを見えなくしているのは制作サイドの手前勝手な都合でしかありません。

こういう場合、最悪のソースとしては下記の様になります。

<ul class="float ns redarrow padl30 clearfix">
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
</ul>
<ul class="float ns redarrow padl30 clearfix">
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
</ul>

これでfloatは解除されています。
最悪、これで十分です。

もっとスマートに!

僕は基本的にclassをたくさんつけるのが好きではありません。
多くても、2〜3個です。

書籍などでは、パーツとして部品化して、それを組み合わせることで、目的のレイアウトにすることを推奨もしていますが、あまりなじめません。
大体使うパーツが決まっているわけだから、最初からそれに合わせて作ってしまう方が理にかなっていると思います。
部品化してしまうと、個別に対応するのにどんどんclassが増えていきます。

さて、先ほどのソース、僕のやり方だとこうなります。

<ul class="float_list">
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
 <li><a href="#">横並びリンク</a> </li>
</ul>

シンプルでしょ?
これだけで十分だと思っています。
必要なpaddingだとか、marginだとかは、このclassにしっかり設定してしまえばいいんです。

そして、clearfixは僕の場合、一個一個clearfixのところに追加していってます。
だから、clearfix部分だけは、ソースがごちゃごちゃになっている印象です。
実際、下記のようになっています。

.clearfix:after,
.float_list:after
{
 content: "";
 clear: both;
 display: block;
}

これは、例えなので2個しかありませんが、実際の案件では20近くはあります。
各classで改行しているので、そこまでぐちゃぐちゃというわけではありませんが、それぞれに:afterが付いているので、見にくいといえば見にくいです。
そのかわり、htmlのソースがシンプルになっているので、実際の修正とかは全然ラクです。

まとめ

マークアップは個人の自由なので、どのような方法でもいいですが、なるべく余計なものはなくしたいですね。
あまり人のものを批判したくないですが、たまーに、ほんとにたまーに、なんでこんなことしてんの?っていうソースに出会っちゃうんです。
そういう時は、シンプルにしているのも悪くないなと思いながら、修正してますw

clearfixなんて取り上げても、既にいろんなところで紹介されていますし、誰も見ないだろうけど、こうやるとclassを追加しなくてもいいんだよっていう事も覚えておいて損はないです。

ad

関連記事

[jQuery] 実際の案件でよく使っていたプラグイン4選!

1.bxSlider bxSliderは、コンテンツスライダーのプラグインです。 使い勝手が非常

記事を読む

[html5] おさらいがてらWordPressのテーマを作るためにHTML5で一から作るよ![第2回]

忙しくて忘れてました。僕です。 さて、今回はもうちょっと見栄えもよくしたいなーなんて考

記事を読む

[jQuery] FlickerPlateを紹介します。

かっこいいプラグインで、フリックにも対応します。 Flickerplateは、シンプルでとても使い

記事を読む

[jQuery] 360°回転させたり、マウスでシーンを移動するプラグイン

rollerblade-js Rollerbladeを使えば、Webサイトに360°回転させてプロ

記事を読む

[javascript] Google Maps javaScript API v3の使い方(応用編:Mapの色を変更する)

まだまだあるぞ!Google Maps javaScript API v3 さて、2回にわたって紹

記事を読む

[CSS] 今さらだけど、必ず覚えておきたいCSSセレクタ

CSSセレクタとは? CSSセレクタを意識する事はあまりないと思いますが、今回はおさらいがてら、C

記事を読む

[Dreamweaver] オプション領域を極める!テンプレート上級編

オプション領域は、難しい! これまで、数回に渡りDreamweaverでのテンプレートの使い方を紹

記事を読む

[CSS] リンク先やファイルタイプに合わせてアイコンを自動で付くようにする!

柔軟に対応出来るCSS リンク先やリンクしているファイルに合わせて、こういうファイルだよと一目でわ

記事を読む

[jQuery] クリック時に波紋のような効果をつける

今回は、クリックした時に波紋のような効果をつけるjQueryプラグインの紹介です。 Ripple

記事を読む

[CSS] 角丸は便利だけど理解に苦しむ時もある

一般的な角丸の使い方 よく使う角丸は、divを角丸にしたり、画像を角丸にしたりすることでしょう。

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

[PHP] curl転送してみる(googleに)

curlでgoogle画像検索APIにアクセスしてみます。 cu

[PHP] PDOでMySQLの接続確認をする

PDO PHPでMySQLに接続する際には、mysql_connec

[PHP] ランダムな英数字を生成する

便利系メソッド 今回はPHPでランダムな英数字を作成してみます。

[Swift] プロパティリスト(plist)の値を取得

plistからデータを取得してみます。 こちらのエントリーも参考にし

[Swift] Asset Catalogについて

XCode5から追加されたAsset Catalog。 いままで標準

→もっと見る

  • 1978年の七夕生まれ。 25才でweb業界の門を叩き、28才でフリーランスに。 現在は、フリーランスでマークアップ中心に、wordpressのカスタマイズやデザインをしております。 また、iPhoneアプリの開発もしております。

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524
PAGE TOP ↑

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524