自分デファクトなCSS定義、mydesign.cssを考えてみる(3)

myparts.cssの適用

前回のmydesign.cssの適用では各要素に対し、font-size、margin/padding、border、colorといった最低限必要な属性の設定のみを行いました。myparts.cssではこれら基本要素の設定だけでは足りない、汎用的に使われる独自のクラス定義を管理します。

ul.my-line-listの定義

例えばサンプルhtmlのページヘッダ部にあるリンクですが、これはul,li要素を使用してるため縦に並んでますが、一般的にはヘッダナビゲーションとして横並びにさせることが多いと思います。

これを実現させるためにmyparts.cssに以下のようul.my-line-listクラスの定義を追加します。

/*
============================================================================
core parts
============================================================================*/  
/*
my-line-list
/----------------------------------------------------------------------------*/  
ul.my-line-list{
/* gap*/
	margin:.5em 16px;
	padding:0;
}
ul.my-line-list li{
/* gap*/
	margin:0;
	padding:4px;
/* structure */
	border:none;
	display:inline;
}

サンプルhtmlのページヘッダ部のulのクラス名をmy-line-listとします。

<ul class="my-line-list">
    <li><a href="#">Javascript</a></li>
    <li><a href="#">CSS</a></li>
    <li><a href="#">HTML</a></li>
</ul>


サンプルページ
こんな感じに横並びになります。次に選択されてるリンクとリンクのhover時に強調表示がされるようにしてみます。myparts.cssにmy-linksクラスの定義を追加します。

/*
my-links
/----------------------------------------------------------------------------*/  
.my-links a{
/* gap*/
    margin:0 2px;
    padding:0 2px;
}

色の設定はmyskin_default.cssで行いますが、保守しやすいようpartsクラス専用の設定エリアを最後部に設け、使用してない色(myskin_default.cssで定義されてるがpartsクラスでは現時点で使用してない色)も含めたカラーセットをまとめて定義してしまいます。これは後々partsクラスが増え個別に色の設定を追加する際、配色に迷わないようにするためです。

/*
============================================================================
Define Parts Color
============================================================================*/  
/*
Base Tone
/---------------------------------------------------------------------------*/  
/*:::::::::::::::::::::::::::: #ffffff :::::::::::::::::::::::::::::::::::::*/
.my-links a:visited.my-active,
.my-links a.my-active{
	color:#fff;
}
/*:::::::::::::::::::::::::::: #fafafa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #f5f5f5 :::::::::::::::::::::::::::::::::::::*/
.my-links a:hover{
	background:#f5f5f5;
}
/*:::::::::::::::::::::::::::: #eeeeee :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #dddddd :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #aaaaaa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #555555 :::::::::::::::::::::::::::::::::::::*/
.my-links a:visited.my-active,
.my-links a.my-active{
	background:#555;
}
/*
Ext Tone
/---------------------------------------------------------------------------*/  
/*:::::::::::::::::::::::::::: #3355aa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #01b0f0 :::::::::::::::::::::::::::::::::::::*/
.my-links a:hover{
	color:#01b0f0;
}

ulのクラス名にmy-linksを追加します。また、選択されてるliのクラス名をmy-activeとします。

<ul class="my-line-list my-links">
    <li><a href="#" class="my-active">Javascript</a></li>
    <li><a href="#">CSS</a></li>
    <li><a href="#">HTML</a></li>
</ul>


サンプルページ
こんな感じになります。

拡張スキン myskin_default_monotone01.cssの追加定義

拡張スキンを読ませることでデザインに多様性を持たせてみます。拡張スキンのファイル名の規約はとりあえず

myskin_スキン名.css

とし、マイナー拡張であれば

myskin_スキン名_マイナー拡張名.css

にしようかと思ってます。ですのでmyskin_default_monotone01.cssはデフォルトスキンのマイナー拡張ということになります。以下がその内容ですが、とりあえずはhtmlとh1の背景色だけを変えた単純なものです。先程と同様にmyskin_default.cssで定義されている色全てをまとめて定義してます。

/*
============================================================================
Define Color Set
============================================================================*/  
/*
Base Tone
/---------------------------------------------------------------------------*/  
/*:::::::::::::::::::::::::::: #ffffff :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #fafafa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #f5f5f5 :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #eeeeee :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #dddddd :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #aaaaaa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #555555 :::::::::::::::::::::::::::::::::::::*/
/*
Ext Tone
/---------------------------------------------------------------------------*/  
/*:::::::::::::::::::::::::::: #3355aa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #01b0f0 :::::::::::::::::::::::::::::::::::::*/


/*
============================================================================
Define Core Color
============================================================================*/  
/*
Base Tone
/---------------------------------------------------------------------------*/  
/*:::::::::::::::::::::::::::: #ffffff :::::::::::::::::::::::::::::::::::::*/
h1 a:hover{
	color:#ffffff!important;
}
/*:::::::::::::::::::::::::::: #fafafa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #f5f5f5 :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #eeeeee :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #dddddd :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #aaaaaa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #555555 :::::::::::::::::::::::::::::::::::::*/
html,
h1{
	background-color:#555555;
}
/*
Ext Tone
/---------------------------------------------------------------------------*/  
/*:::::::::::::::::::::::::::: #3355aa :::::::::::::::::::::::::::::::::::::*/
/*:::::::::::::::::::::::::::: #01b0f0 :::::::::::::::::::::::::::::::::::::*/
h1 a:visited,
h1 a{
	color:#01b0f0;
}


サンプルページ
こんな感じになります。次回エントリにつづきます。