CSS
HTMLは以下のものを選択することができる。
・Element Selector
・Class Selector
・Id selector
・Attribute Selector
・Element Selector
<p>Here is some text written inside the paragraph tag.</p>
上のようなコードを選択する際には、このように書ける。
p{
/*property value pairs*/
}
これでウェブ上の全ての文章を選択することができる。
Note: /* */ is used to enclose comments in CSS. The things written inside /* and */ is not read by browsers.
➡/**/はCSSにコメントを書く際に用いられる。
<p class=”select-me”>Here is a paragraph tag which also has a class specified inside it.</p>
もしHTMLがclassに関係する場合、CSSに以下のように記入することで、書くことができる。
select-me{
/*property value pairs*/
}
クラスセクター内に記載されていることをこのように書くことができる。これにより、select-me クラスは選択することができる。
<p id=”select-me”>
Here is a paragraph tag which also has an id specified inside it.
</p>
以上のようにid系のHTMLのコードがある際、#を使う事で、CSSでリンクさせることができる。
#select -me{
/*property value pairs*/
}
select-me id系はこのようにCSSで対応する。
<input type="text" />
は、attributeを含むHTMLは、[attribute = value]という書き方で、CSSに対応させることができる。Like this
input[type=text]{
/*property value pairs*/
}
Playing with Colors
CSSでカラーをつけるためには、以下のような方法がある。
・Directly writing the name of colors.
CSSでは140のカラーを利用することが可能。
・Using hex values of colors.
CSSでは140のカラーを利用することが可能。
他にCSSで色を使う場合は、10進法(別名 Hex values)を用いることができる。
Hex valuesは、#rrggbbのフォーマットを用いる。
➡rr, gg and bb are values between 00 and ff
rr - the amount of red
gg - the amount of green
bb - the amount of blue
00がなしでffが一番来い。
#000000 forms black color, #FFFFFF forms white.
・Using RGB/RGBA values.
R- Red, G- Green, B- Blue and A - Alphaを用いて、色を変えることも可能。
alpha: 0.0 (fully transparent) and 1.0 (fully opaque)
➡0.0から1.0までの数字を扱うもの
0は最低の数値を表わし、255が最高の数値を表わす。
RGB formatを用いるには、以下の構文を利用する。
rgb(R, G, B)
➡R, G, Bには0から255まで数値を入れる。
プログラミング言語
ポインタ変数は、他の変数のアドレスを格納する変数である。ポインタ変数自身も、メモリ上の存在してアドレスを持っている。
ポインタ経ンスへのポインタというのも作ることが可能。
pointer pointer.c
//変数a
int a = 3;
//変数aへのポインタ変数p1
int* p1 = &a;
//変数p1へのポインタ変数p2
//ポインタ変数へのポインタ変数
int** p2 = &p1;
//p2が指す者とp1のアドレスは一緒
printf("%p\n", p2);
printf("%p\n", &p1);
// "p2が参照しているp1"が格納している値は
//aのアドレスと一緒
printf("%p\n", *p2);
printf("%p\n", &a):
//”p2が参照するp1"が参照するaの値
printf("%d\n", &a);
//”pが参照するp1”が参照するaの値
printf("%d\n", **p2);
ポインタ変数へのポインタ変数は、int** pのようにアスタリスクを重ねて使う。参照先にアクセスするときも同様。
もちろん、ポインタへのポインタへのポインタなんてことも可能。
ポインタと文字列
文字列は、char型の配列。よって文字列へのポインタを扱うことも可能。
str_pointer.c
//文字列リテラル”Hello"をstr[]に代入
char str[] = "Hello";
char* p = str; //str == &str[0]
//pは’H’を参照している。
putchar(*p);
//p+1は’e'を参照している
putchar(*(p+1));
//pが参照している’H’を'A'に書き替える
*p ='A';
//printf("&s\n", p);と同じ
printf("&s\n", str); //Aello
文字列は、あくまで文字列あので、ポインタで配列を扱うときに同じ感覚で使うことが可能です。
文字列の表現の仕方
まず、下のコードを見てみる。
str_pointer.c
//パターン1、配列で表現した文字列
char str[0] = "Hello";
//パターン2、ポインタで実現した文字列
char* p = "Hello";
パターン2のように書くと、char型のポインタ変数は、直接文字列リテラルの先頭字のアドレスを格納することができる。
便宜上ここでは、前者の文字列を、配列による文字列、後者の文字列を、ポインタによる文字列と呼ぶことにする。
両者の違い
まず、メモリ上に確保される領域の違いがある。
配列による文字列は、配列の要素数分の領域を確保された後、そきに文字列が入る。
ポインタによる文字列では、メモリ上に文字列リテラル分の領域+ポインタ変数文の領域が確保される。
もう一つの違いは、再代入が可能か否か、といったもの。
str_pointer_array.c
// 配列の再代入不可×
char str[] = "Hello";
str = "World";
//ポインタ変数は、参照先を変えるだけなので
char *p = "Hello":
p = "World";
ポインタによる場合は、ポインタ変数を参照先におけるだけなので問題ない。