Wiki_CSS - inoueshinichi/Wiki_Web GitHub Wiki
- Can I use... Support tables for HTML5, CSS3, etc
- http://caniuse.com/#search=transition
- Webブラウザにフォントの見た目等UIに関する表現の指示を行うタグ
-
<h1 style="font-size: 24pt;">入会申し込み</h1>'のstyle` - HTMLのすべてのタグに付加できるglobal属性.
- スタイルシート = CSS
プロパティ: 値;-
<h1 style="font-size: 24px; margin: 50px">入会申し込み</h1>上下左右に50pxの余白を作る.
| Property | Contents |
|---|---|
| id | idを指定する |
| class | クラスを指定する |
| hidden | 要素を隠す |
| title | リンク要素などでツールチップに表示する内容を指定する |
| style | スタイルシートを記述する |
| Name | Contents |
|---|---|
| tabindex | タブキーでフォーカスを移すときの順序を指定する |
| accesskey | キーボードショートカットを指定する |
| contentediable | ユーザーによる編集が可能かを指定する |
| contextmenu | 右クリックなどで表示されるコンテキストメニューのidを指定する |
| dir | テキストの方向を示す. 日本語や英語は左から右なので, ltr(left to right), アラビア語などは, rtl |
| draggable | ドラッグが可能かどうかを指定する |
| dropzone | どのような対象をドロップできるかを指定する |
| lang | 言語を指定する |
| spellcheck | スペルチェックを行うかを指定する |
| translate | 多言語に翻訳されるときに翻訳対象にするかを指定する |
| Unit | Content |
|---|---|
| px | 表示スクリーンの画素を基準. コンピュータで最も多用される. |
| mm, cm, in | ミリメートル, センチメートル, インチ. 印刷系で多用されるが, 画面上には正確に表示されない. |
| pt | 1ポイント. 1/72インチ |
| pc | 1パイカ. 12pt 12/72=1/6インチ |
| Unit | Content |
|---|---|
| em | 親要素の文字サイズを1emとした, 相対的な大きさ. 1.5emは1.5倍 |
| rem | ルート要素の文字サイズを1remとした, 相対的な大きさ. |
| ex | 小文字のxの高さ. 一般的には0.5emになるが, フォントによってまちまち. |
| ch |
0の幅を基準とした大きさ |
| vh | ビューポートの高さの1/100 |
| vw | ビューポートの幅の1/100 |
| vmin | ビューポートの高さまたは幅で小さい方の1/100 |
| vmax | ビューポートの高さまたは幅で大きい方の1/100 |
| 優先度 | 種類 | 例 | 説明 |
|---|---|---|---|
| 1000点 | HTMLタグのスタイル属性による設定 | ||
| 100点 | idセレクター(1) | #id { } |
id属性を指定したセレクター. |
| 100点 | idセレクター(2) | p#id { } |
指定要素のid属性による指定 |
| 10点 | 属性セレクター | [type] { } [type='text'] { } |
特定の属性で指定する. 属性の値で指定もできる. <input type="text" name="myname">
|
| 10点 | 疑似クラスセレクター | p:first-child { } p:last-child { } |
特定の条件を満たした要素を指定できる. :の後に条件式を入れる |
| 10点 | クラスセレクター(1) | .class { } |
本文でも紹介した, class属性による指定 |
| 10点 | クラスセレクター(2) | p.required { } |
指定要素のclass属性による指定 |
| 10点 | 子セレクター | .container>span { } |
>でつなぐ. name="container"プロパティを持つ要素の最初のspan要素を指定する |
| 10点 | 子孫セレクター | .container p { } |
「ある要素の中の要素」など階層構造になっている要素を指定できる. 例は, class="container"プロパティを持つ要素に囲まれた/要素に対して適用される. 子孫セレクターは下記の様に, いくつも重ねることができる. .container p span .active
|
| 1点 | タイプセレクター | p { } |
最も基本的な, 要素名を指定したセレクター. この場合 <p>要素に対してスタイルが適用される |
| 1点 | 隣接セレクター | h1+p { } |
「隣り合っている要素」に対して適用する. <h1>COCOA</h1> <p>ここが対象</p> <p>ここは対象でない</p> |
| 0点 | 全称セレクター | * { } |
すべての要素に対してスタイルを適用する |
- 優先度 1点
- HTMLタグ要素が特定の状態になったときにUIスタイルを変える方法.
-
[要素]:[状態]で宣言的に条件分岐させる. - e.g.
a:visited訪問済みリンク - e.g.
a:hoverマウスポインタを置いた状態
| 疑似クラスセレクター | 説明 |
|---|---|
| :active | 「アクティブ」な状態. Tabキーなどでフォーカスを当てたときや,タップしてから放すときまでなど. |
| :checked | チェックボックスでチェックされているもの. |
| :disabled | 「disabled」属性が有効になっている要素. |
| :empty | 空の要素 |
| :enabled | 「disabled」属性が有効になっていない要素. |
| :first-child | 最初の子要素. |
| :first-of-type | 指定した要素のうち子要素として最初に出現する要素 |
| :focus | フォームコントロールなどで, フォーカスが当たった状態 |
| :hover | マウスホバーしている状態 |
| :lang(*) | 言語を指定する. 日本語は「ja」 |
| :last-child | 最後の子要素 |
| :last-of-type | 指定した要素のうち子要素として最後に出現する要素 |
| :link | 訪れたことのないリンク |
| :nth-child(*) | *番目の要素 |
| :nth-of-type(*) | 指定した要素のうち子要素として*番目に出現する要素 |
| :nth-last-child(*) | 同じく, 後ろから*番目の要素 |
| :nth-last-of-type(*) | 同じく, 後ろから*番目に出現する要素 |
| :only-child | 親要素の中に, 1つしかない子要素 |
| :only-of-type | 同じく, 指定した要素と同じで, 1つしかない子要素 |
| :root | 文書のルート要素を指定する. htmlの場合/ |
| :target | ページ内リンクでリンクされている要素 |
| :visited | 既に訪れたリンク先要素 |
- 古いブラウザーは対応できないものがある
- CSSの指定タグの前後(before/after)にタグを追加できる
. {class} {tag}::[before|after] {
constent: '';
display: block;
....
}
- CSSは「よりその要素を詳細に示したものを優先する」というルールの元でスタイルが要素に適用される
- 下記の
<div class="container">に対するCSSスタイルを適用する場合,devよりcontainerが優先される!
.container {
marign: 0;
}
dev {
margin: 10px;
}
- 次の順序で上に行くほど詳細度が高い
- !important
- style属性によるインライン指定 e.g
<h1 style="font-size: 24; margin: 50px">入会申し込み</h1> - idセレクター
- 疑似クラスセレクター
- 属性セレクター
- クラスセレクター
- タイプセレクター
- 全称セレクター
- 優先順位が最高位になる
@media screen and (max-width: 992px) {
.radio-inline {
display: block;
margin: 0 !important;
}
}
font-family: [FAMILY], [serif | san-serif | ヒラギノ角ゴシック | など ];
| font-famiryの値 | 説明 |
|---|---|
| serif | セリフ体(明朝体)で表示される |
| sans-serif | サンセリフ体(ゴシック体)で表示される |
| monospace | 等幅フォントで表示される |
| cursive | 草書体で表示される. ゴシック体などよりも少し装飾された, 手書き感のあるフォントが選ばれることが多い(自動) |
| fantasy | 遊び心のあるフォントが選ばれる |
- フォントサイズ
font-size: ◯; - フォントの幅
font-weight: [bold | light | auto | ...]; - 文字高
line-height: ◯(標準文字に対する文字領域の高さを倍率で示す); - 文字オフセット
text-align: [top | bottom | left | right];
-
枠線を決める
-
ショートバンドプロパティ
border: 枠線の幅 枠線の種類 枠線の色;
- 枠線の幅
border-width: ◯; - 枠線の種類
border-style: ◯; - 枠線の色
border-color: ◯;
border-top: ◯;border-right: ◯;border-bottom: ◯;border-left: ◯;- 枠線の幅
border-[top|left|right|bottom]-width: ◯; - 枠線の種類
border-[top|left|right|bottom]-style: ◯; - 枠線の色
border-[top|left|right|bottom]-color: ◯;
- 要素内側の余白を決める.
- ショートバンドプロパティ
padding: 20px; padding-top: ◯;padding-bottom: ◯;padding-left: ◯;padding-right: ◯;
- 要素外側の余白を決める.
- ショートバンドプロパティ
margin: 20px; margin-top: ◯;margin-left: ◯;margin-right: ◯;margin-bottom: ◯;
-----------------------------
| ↕ margin |
| ---------border---------- |
| | ↕ padding | |
| | [Element] | |
| | | |
| ------------------------- |
-----------------------------
- スタイル属性の簡易表示方法
-
style="margin: 50px;"は,style="margin-top: 50px; margin-left: 50px; margin-bottom: 50px; margin-right: 50px" -
margin: 上の余白 右の余白 下の余白 左の余白;(上下左右をすべて指定するパターン) -
margin: 上の余白 左右の余白 下の余白;(左右をまとめて指定するパターン) -
margin: 上下の余白 左右の余白;(上下と左右をまとめて指定するパターン) -
margin: 上下左右の余白;(上下左右をまとめて指定するパターン)
position: [static(デフォルト) | relative | absolute | fixed | sticky ];
| プロパティ | 意味 |
|---|---|
| static | z-indexが指定できない. |
| relative | 子要素にabsoluteを指定すると,relativeを指定した要素が基準位置となる. |
| absolute | relativeと組み合わせて使う |
| fixed | ブラウザ基準. ブラウザのスクロールに追従しない |
| sticky | 親要素のスクロールに応じて、要素を固定表示. (固定位置はブラウザを基準とする) |
top: ◯;left: ◯;right: ◯;bottom: ◯;
- 値が大きいほど手前に表示される.
z-index: ◯;
セレクター {
プロパティ: 値;
プロパティ: 値;
...
}
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="description" content="これはHTMLの勉強用ページ">
<meta name="keywords" content="Tutorial,Learning">
<style>
h1 {
font-size: 24px;
margin: 0;
}
p {
font-size: 14px;
}
</style>
<title>入会申し込み</title>
</head>
- <link>要素を使用する.
<head>
<title>入会申し込み</title>
<link rel="stylesheet" [type="text/css"] href="./path/to/[FILE].css">
</head>
- あとから読み込むCSSファイルの内容のほうが優先度が高い(当たり前の話)
- スタイルシートに依存関係をもたせる style.css
@import url(path/to/[FILE].css);
~
- black
- gray
- silver
- white
- blue
- navy
- teal
- green
- lime
- aqua
- yellow
- red
- fuchsia
- olive
- purple
- maroon
rgb(Red, Green, Blue)- 0~255, or 0%~100%
- ff : 255
- 0 : 00
- 51 : 33
- 表現方法
#ff0033 - 連続する数値は省略できる
#f03
- 0.0 ~ 1.0
- 色相(Hue), 彩度(Saturation), 明度(Lightness)
- 色相 : 0 ~ 360度
- 彩度,明度 : 0% ~ 100%
- 透明度 : 0 ~ 1.0
box-shadow: 左右 上下 ぼかし 広がり 色 Inset
button {
box-shadow: 0 0 8px rgba(0,0,0,.4);
}
background-image: url(...);background-size: [auto | contain | cover | % | px ];- coverは縦横比を維持したまま画面いっぱいに表示
background-position: [center | left | right | top | bottom | % | px];background-repeat: [repeat(デフォルト) | repeat-x | repeat-y | no-repeat];
outline-style: ◯;outline-width: ◯;outline-color: ◯:
border-style: ◯;border-width: ◯;border-color: ◯:
<label for="<input>要素などのフォームパーツのid属性">ラベル名</label>
<input type="..." id="..."...>
display: [inline|block|flex|grid|none]- inline・・・改行されない(ボックスレイアウト)
- block・・・改行される(ボックスレイアウト)
- ノン(none)・・・表示させない
- flex・・・フレックスボックスレイアウト
- grid・・・グリッドボックスレイアウト
- 100~900までの100ずつの単位
- normal, bold, lighter, bolderの4種類
- 標準は400のnormal
- フォントデータが設定されていないと, font-weightプロパティを設定しても無効になる.
- left
- right
- none(デフォルト)
.description img {
float: left;
margin: 0 10px 10 px 0;
}
- 回り込みを指定した要素以降の要素も全て回り込んでしまうので, プロパティ
clearで解除する.
- clerfixによる, float:left;時の回り込みによる高さ不定(0)になる現象を解除する裏技テクニック
-
floatプロパティで回り込みをするとclearプロパティで解除されるまでの区間が, 要素の高さが不定0になる - 擬似的に対象の最後に空白文字を追加することで, 高さを確定させて背景を描画できるようにする
- 「回り込みをしている要素の親」に対して
clearfixプロパティを定義して, CSSで表示を整える
/* style.css */
.clearfix:after {
content: " ";
display: table;
clear: both;
}
list-style: スタイル名 行頭の位置 行頭に指定する画像
| スタイル名 | 意味 |
|---|---|
| none | なし |
| disc | ● |
| circle | ◯ |
| square | ◾ |
| lower-roman | 小文字のローマ字 |
| upper-roman | 大文字のローマ字 |
| lower-greek | 小文字のギリシャ文字 |
| decimal | 算用数字 |
| decimal-leading-zero | 先頭に0をつけた算用数字 |
| lower-latin, lower-alpha | 小文字のアルファベット |
| upper-latin, upper-alpha | 大文字のアルファベット |
| cjk-ideographic | 漢数字 |
| 行頭の位置 | 意味 |
|---|---|
| inside | 行頭の数字部分を領域の内側に入れる |
| outside | 行頭の数字部分を領域の内側に入れない |
- 行頭に指定する画像には画像のパスを指定
- 不透明度を調整
- 0: 完全透明 ~ 1: 不透明
opacity: 0.5;
- 並進 :
translate() - 回転 :
rotate(),rotateX(),rotateY(),rotateZ(),rotate3D() - 傾斜 : 'skew()`
- 拡縮 : 'scale()`
- 疑似クラスのないセレクターに指定する
- 変化が終了する前の状態のセレクターに指定する
| トランジション | 説明 |
|---|---|
| transition-property | 対象となるCSSプロパティを指定する. 対象を絞らない場合allを指定する |
| transition-duration | トランジションにかける時間を指定する. *s, *ms, など |
| transition-timing-function | トランジションの処理を指定する. デフォルトease. 後述. |
| transition-delay | トランジションの開始を指定時間だけ遅らせる. *s |
| function | 説明 |
|---|---|
| ease | デフォルト. 開始と終了を滑らかにする |
| linear | 常に行っての速度にする |
| ease-in | 開始時だけ滑らかにする |
| ease-out | 終了時だけ滑らかにする |
| ease-in-out | ease-inとease-outを同時におこなう(easeより若干遅くなる) |
| cubic-bezier(x1,y1,x2,y2) | 3次ベジェ曲線を指定できる |
- transition: property, duration, timing-function, delay;
.description img {
float: left;
margin: 0 10px 10px 0;
transition: opacity 1s ease 0s;
}
- position: fixed;
- 上に固定
top: 0; - 下に固定
bottom: 0; - 左に固定
left: 0; - 右に固定
right: 0;
- min : 0
- max : 1,000,000,000
- 100, 200, 300,...と区切りをつけて設定するほうが良い