[CSS] CSSのuser agent stylesheetとは

google chromeの検証で見た時などに現れる、CSSのuser agent stylesheetとは何か説明する。

また、user agent stylesheetを無効化し、デフォルトのCSSを消すための「リセットCSS」についても説明する。



”user agent stylesheet”とは

「user agent stylesheet」とは、ブラウザ毎に定義されているデフォルトのCSS設定のことだ。

デフォルトなので、CSSを自分で書かなくても最初は適用されている状態にある。

だからgoogle chromeの検証をみた時に”user agent stylesheet”で表示されているならば、それはデフォルトでCSSが適用されている。


”user agent stylesheet”によって何が起こる?

user agent stylesheetによって画像やボタン周りに隙間ができたり、ボーダーカラーが表示されたり、自分の指定したCSSより優先して反映されることがある。

このデフォルトは、自分がどんなブラウザを使っているかによっても異なる。

下記は、user agent stylesheetによって勝手にボタンにボーダーカラーがついてしまった例。


user agent stylesheet example


”user agent stylesheet”を無効化するには「リセットCSS」

対処法として、「リセットCSS」というものがある。

要するに「padding: 0, margin 0」のようなコードを適用させることで、デフォルトのCSSを打ち消すことができる。


なぜ「リセットCSS」を使うの?

デフォルトのCSSを打ち消すことで、Google ChromeやSafariなど、異なるブラウザを使ってもウェブサイトを同じように表示させることができるから。

リセットCSSを行わないと、完成後異なるブラウザでウェブサイトを見たらデザインが異なっていたということもあり得るので、そういった事態をなくすためにリセットCSSを使う必要がある。


リセットCSSはどのように使うのか

こちらはリセットCSSのコードの一例。

http://html5doctor.com/html-5-reset-stylesheet/

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin:0;
  padding:0;
  border:0;
  outline:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}

body {
  line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
  display:block;
}

nav ul {
  list-style:none;
}

blockquote, q {
  quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content:'';
  content:none;
}

a {
  margin:0;
  padding:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}

/* change colours to suit your needs */
ins {
  background-color:#ff9;
  color:#000;
  text-decoration:none;
}

/* change colours to suit your needs */
mark {
  background-color:#ff9;
  color:#000;
  font-style:italic;
   font-weight:bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom:1px dotted;
  cursor:help;
}

table {
  border-collapse:collapse;
  border-spacing:0;
}

/* change border colour to suit your needs */
hr {
  display:block;
  height:1px;
  border:0;
  border-top:1px solid #cccccc;
  margin:1em 0;
  padding:0;
}

input, select {
  vertical-align:middle;
}


このコードを最初にCSSファイルに書く。

自分の書くCSSコードの前に上記のようなCSSリセットコードを記述する。

すると思わぬところでCSSが効かなかったり、逆に自分が設定した覚えのないCSSが効くという事態もなくなる。


さまざまな種類のリセットCSS

リセットCSSにも種類がある。

「destyle.css」と呼ばれる、デフォルトのCSSを全て打ち消すスタイルもあれば、「Normalize.css」といったある程度CSSを効かせつつ、ブラウザでの表示を統一させるというようなリセットCSSもある。

「リセットCSS」というキーワードで検索してみるとさまざまな種類が出てくるので、自分にあったリセットCSSを検索できると良い。


HTML・CSSサイトの作り方の関連記事

下記の記事でHTML・CSSをウェブ上に表示させる方法からヘッダーやカラム作成、レスポンシブ対応、画像の扱いなど、HTML・CSSでのサイトの作り方をまとめている。

● HTMLとCSS、Javascriptを使ったwebサイトの作り方まとめ


コンピュータの全体像

ウェブサイト作成という分野において、コンピュータの全体像を把握することも大切だ。コンピュータの構造、ネットワークや通信プロトコル、ウェブ技術など、ベースとなる知識を持っていることでウェブサイトの制作や運営においてより高度な問題解決や効率的な開発が可能となる。

下記にコンピューターの基礎やITの全体像についてもまとめている。

● コンピューターサイエンスとITの全体像