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";

ポインタによる場合は、ポインタ変数を参照先におけるだけなので問題ない。


いいなと思ったら応援しよう!