〇 | calc( 10rem + 10px ) |
Ⅹ | calc( 10px * 10px ) |
〇 | calc( 10% * 2 ) |
〇 | calc( 3 * 10px ) |
Ⅹ | calc( 4 / 10px ) |
〇 | calc( 10px / 5 ) |
□ Example div { pading: calc( 20px - ( 1em * 1.4 - 1em ) / 2); } .item { width: calc( 100vw / 3 -4px ); hight: calc( 100vh / 2 ; 10px ); }
:root { --main-bg-color: #00f;} .one { background-color: var( --main-color );} .tow { background-color: var( --main-color );}
※ 呼び出す時に単位を書き足しても無効
CSS変数では大文字と小文字を区別される
✕ div { --gutter: 30; margin: var(--gutter)px; } ○ div { --gutter: 30px; margin: var(--gutter); } ○ div { --gutter: 30; margin: calc(var(--gutter)*1px); } --bg: pink; --Bg: orange;
第二引数でCSS変数が無効であった場合に代わりに使用される代替値を定義する
.two { color: var(--my-var, red); } /* --my-var が定義されていなければ red */ .three { background-color: var(--my-var, var(--my-background, pink)); } /* my-var 及び --my-background が定義されていなければ pink */ .three { background-color: var(--my-var, --my-background, pink); } /* 指定の仕方が無効 */
CSS .two { --test: 10px; } .three { --test: 2em; } HTML <div class="one"> <!-- 変数(--test)の値を持たない --> <div class="two"> <!-- 変数(--test)の値は 10px --> <div class="three"></div> <!-- 変数(--test)の値は 2em --> <div class="four"></div> <!-- 変数(--test)の値は 10px --> </div> </div>
※ two の変数の値が three と four に継承され 10pxの値を持つ
但し three は自身の値で 2emを持つ
<ul> <li><a href="#">HOME</a></li> </ul>
□ Example 1 li a { display: block; width: 100%; height: 100%; } □ Example 2 ul li { position: relatibve; } li a { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } □ Example 3 <li><a hlef="#"><p>HOME</p></a></li>
HTML <hr class="printCR"> CSS hr.printCR {/* 印刷改行 */ page-break-after: always; visibility: hidden; margin: 0px; padding: 0px; }
HTML <div class="flexbox-container-vertical-center"> <span>中央</span> </div> CSS vertical-center.css .flexbox-container-vertical-center { display: flex; /* 子要素をflexboxで揃える */ flex-direction: column; /* 子要素をflexboxにより縦方向に揃える */ justify-content: center; /* 子要素をflexboxにより中央に配置する */ align-items: center; /* 子要素をflexboxにより中央に配置する */ width: 100px; /* 見た目用 */ height: 50px; /* 見た目用 */ border: 1px solid; /* 見た目用 */ } span { border: 1px solid; /* 見た目用 */ }
sample flexを使って見出しに横線を付ける方法
sample-1 サンプルです
sample-2
複数行になっても大丈夫です
.sample{ display: flex; align-items: center; text-align: center; } /* 共通部分はまとめる */ .sample::before, .sample::after{ content: ""; flex-grow: 1; /* 線の伸び率 */ border-bottom: 1px solid #00f; } /* 左側の線 */ .sample::before{ margin-right:-9px; /*線と文字の間のスペース */ padding-left: 15px; /*線の長さが、最低でも15px以上になるように余白をとる*/ } /* 右側の線 */ .sample::after{ margin-left: -9px; /*線と文字の間のスペース*/ padding-right: 15px;/*線の長さが、最低でも15px以上になるように余白をとる*/ } .sample-1::before, .sample-1::after{ border-bottom: 24px dotted #F00; } .sample-2::before, .sample-2::after{ border-bottom: 24px dashed #0066CC; }
スマーフォトフォンをコーディングしているとiPhoneとAndroidのブラウザで若干見た目が違っている場合があります。 特にAndroidブラウザだけ意図した見え方になっていない場合が多々あります。 その場合は、Androidブラウザの場合だけHTMLタグにclass名「android」を付与してあげると簡単に対応が可能です。
example.js(JQuery) $(function () { if(navigator.userAgent.indexOf('Android') > 0){ $("html").addClass("android"); } }); example.css html.android .hogehoge{ margin-top: 10px; }
iPhoneやAndroidでは、WEBサイトのテキストを自動で大きさを調整する機能が入っています。
この現象を回避するには次のCSSを記述する。
body { -webkit-text-size-adjust: 100%; }
横幅 600px 以下のデバイス @media screen and (max-width: 600px) { div{ width: 100%;} } ---------------------------------------------------------------- 主なメディア特性 width ビューポートの幅 height ビューポートの高さ aspect-ratio アスペクト比(ビューポートの幅と高さから算出) orientation ビューポートの向き。 とれる値は portrait (縦長) または landscape (横長) ------------------------------------------------------------------ ●resolution 出力デバイスの画素密度 -webkit-device-pixel-ratio デバイスピクセル比 ●Retinaディスプレイ(デバイスピクセル比が2以上のデバイス) @media screen and (-webkit-min-device-pixel-ratio: 2) {} 以下と同じ @media screen and (min-resolution: 2dppx) {} ------------------------------------------------------------------ Level4からの記法 Media Queries Lebel4 からは、以下のように記述することができるようになりました。 例:横幅 600px 未満のデバイス @media screen and (width < 600px) {} 例:横幅 320px 以上 600px 未満のデバイス @media screen and (320px <= width < 600px) {} ●メディアタイプがscreen かつ 横幅が600px以下 かつ デバイスピクセル比が2 @media screen and (max-width: 600px) and (resolution: 2dppx) {} 例:横幅が320px 以上かつ600px 以下 ( <= や >=を使うともっと楽ですが) @media (min-width: 320px) and (max-width: 600px) {} ●メディアタイプがscreen かつ 横幅が600px以下」または、「デバイスピクセル比が2」 @media screen and (max-width: 600px), (resolution: 2dppx){} 例:横幅が480px以下、または1200px以上 @media (max-width: 480px), (min-width: 1200px){} ●例えば、レスポンシブデザインに対応するため、私はスマホに適用させるスタイルを 以下のように記述してきました。 @media screen and (max-width: 767px) {} これ、以下でいいんですね。 @media (max-width: 767px) {} もしくは、 @media (width < 768px) {}※参考 SCALABLE TEXT IN CSS --- ビューポートのサイズに合わせてフォントのサイズを変化させる