Authentication




Cancel OK
B!コメントする  2013-01-25 20:11:00 by old

CSSを変更せずに上書きする

本当はもっといいやり方あるのかもしれませんが・・・。

bootstrapを使っているとデザイン的にちょっとだけ変えたいというところが結構あったりします。
日本語のフォントを使うとズレたりするのが原因なんですが、bootstrapのCSS自体に手を加えるとバージョンアップのたびに修正が必要になったりして面倒です。

なので本体には手を加えずに動作を上書きしてしまう方法です。
たとえばこんな感じでCSSを読み込むわけですが

<head>
<meta charset="utf-8">
<title>Sample</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
</head>


この中の一部を変更したいけど、本体には手を付けたくない場合は
この下にファイルを1個追加します。

<head>
<meta charset="utf-8">
<title>Sample</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap.custom.css" rel="stylesheet">
</head>


bootstrap.custom.cssという名のCSSファイルを1個作成します。
(実際のファイル名は何でも構いません)
その中にbootstrap.min.cssの中にある変更したい部分のコードの
変更した内容をcustom.cssに記述します。

例えば
bootstrap.min.css内の

.carousel-control {
position: absolute;
top: 40%;
left: 15px;
width: 40px;
height: 40px;
margin-top: -20px;
font-size: 60px;
font-weight: 100;
line-height: 30px;
color: #ffffff;
text-align: center;
background: #222222;
border: 3px solid #ffffff;
-webkit-border-radius: 23px;
-moz-border-radius: 23px;
border-radius: 23px;
opacity: 0.5;
filter: alpha(opacity=50);
}


の部分のfont-sizeだけ30pxにしたい場合
bootstrap.custom.cssに以下のように記述します。

.carousel-control {
position: absolute;
top: 40%;
left: 15px;
width: 40px;
height: 40px;
margin-top: -20px;
font-size: 30px;
font-weight: 100;
line-height: 30px;
color: #ffffff;
text-align: center;
background: #222222;
border: 3px solid #ffffff;
-webkit-border-radius: 23px;
-moz-border-radius: 23px;
border-radius: 23px;
opacity: 0.5;
filter: alpha(opacity=50);
}


こうすることでbootstrap.min.cssの.carousel-controlにあるfont-sizeを30pxにすることが出来ます。

要はCSSを読み込む順番で中の値が変わるわけです。
こうしておけばバージョンアップするたびにフレームワークをいじることもないですし、変更箇所のファイルだけ触ればOKというすっきりした環境に出来ます。


TIPS  

  • コメント
  • コメントはまだありません