Technology

[CSS] CSSで何も設定してないのに画像周りに勝手に空白が起きてしまう時の対処

画像などを貼り付けた時に、自分では何もCSSを設定していないのに、画像周りに勝手に空白が起きてしまう時がある。

そんな時の対処法を整理した。


原因は何か?

chromeのデベロッパーツールで確認すると、”user agent stylesheet”という部分で、marginやpaddingが勝手に適用されてしまっていた。

この”user agent stylesheet”とは一体なんなのか?


”user agent stylesheet”とは

”user agent stylesheet”とは、ブラウザ毎でページを読み込む時にデフォルトで設定されているCSSのこと。

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

だから空白部分をみた時に”user agent stylesheet”で表示されているならば、それはデフォルトのせい。


対処法は「リセットCSS」を適用させる

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

要するに「padding: 0, margin 0」のようなコードを適用させることで、デフォルトの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を検索できると良い。

-Technology