SlideShare a Scribd company logo
1 of 34
Download to read offline
文字とアイコンが
なぜずれるのか?
よくある文字+アイコン
• 画像(<img>)とリンク(<a>)

<a href=“#”><img src=“./images/icon.gif”>文字</a>
• インプット(<input>)とラベル(<label>)

<label><input type=“radio”>文字</label>

<input type=“radio” id=“link”><label for=“link”>文字</label>
• 背景画像(<li>のbackground等)

<li class=“icon”>文字</li>

.icon {

background-image:url(“./images/icon.png”) no-repeat right bottom;

}
原因
そろえないからです!
よくある「あれ、 わない」
• 「marginで調整しようとしたんだけど

効かない」
• 「vertical-align:middleにしたんだけど

真ん中に来ない」
まずは…
block lebel要素とinline要素の違いを

正しく理解しましょう
block lebel 要素
h1 h6,p,div,dl,ol,ul,pre,table…
• ブロック。前後に改行が入る。
• 高さ、幅の指定が可能
• margin / padding
inline要素
• 文章の一部。前後に改行が入らない。
a,span,img,input,label,select,sup,li…
inline要素
• 文章の一部。前後に改行が入らない。
1. 文章の一部 = 行
a,span,img,input,label,select,sup,li…
inline要素
• 文章の一部。前後に改行が入らない。
1. 文章の一部 = 行
2. 行間に影響を受ける。
a,span,img,input,label,select,sup,li…
inline要素
• 文章の一部。前後に改行が入らない。
1. 文章の一部 = 行
2. 行間に影響を受ける。
3. それ自体は高さを持たない(中身に依存)
a,span,img,input,label,select,sup,li…
inline要素
• 文章の一部。前後に改行が入らない。
1. 文章の一部 = 行
2. 行間に影響を受ける。
3. それ自体は高さを持たない(中身に依存)
4. 上下のmarginは効かない(img等の例外はあります)
a,span,img,input,label,select,sup,li…
「margin効かない」
inline要素はmarginでは調整できない
(上下は。)
たぶんこうすればOK
inline要素の場合、
• vertical-align:middle,top,bottomで調整する
• 画像に余白を付けて調整
• 行間を調整する
• CSSで、block lebel要素に変えてしまう

影響範囲をよく確認
margin 効かない=inlineだから
vertical-alignが効かない
vertical-align
block lebel要素には効きません。

divやh1∼6、pタグには効かない
仕様です
たぶんこうすればOK-2
• marginで調整する
• display:table-cell、inline等、有効なdisplay要
素に変える
• 当然、影響範囲をよく考えましょう

WEBアプリケーションの中で

きちんと統一することが重要
ここからが問題
• vertical-align:middle

middleは何に対してのmiddle ?
タイポグラフィの基本
textの各エレメントについて
ここで
The quick brown fox
jumps over 

the lazy dog
base line
The quick brown fox
jumps over 

the lazy dog
base line
descender line
mean line
ascender line
capsline
小文字の「x」の高さ = 1ex
大文字の「M」の高さ = 1em
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
同じフォントサイズでも、フォントによってサイズが違う
同じフォントでも、文字によってサイズが違う
html/cssの「vertical-aling:middle」 は
x-heightの中央
The quick brown fox
jumps over 

the lazy dog
The quick brown fox
jumps over 

the lazy dog
フォントサイズはascender lineとdescender lineの間
日本語も欧文も
ベースラインで う
日本語の場合、仮想ボディという箱が基準
どちらも100pxの高さ
画像、日本語、英語が混在する場合は?
画像の場合
デフォルトではbase lineで う
画像の中央が、(欧文のx-heightの)

middleになる
画像の中央線
って見えるように

画像とCSSを

設計する必要がある
つまり
じゃあどうする?
• 背景画像にして、background-positionで

調整するのが楽かも。
• dispay:inline-tableまたは、displayにしてfloatさ
せ、marginを指定する手もありますが使いドコロ
をよく選んで、考えましょう。
• 調整が大変なので、アイコンサイズは

絶対に統一(パターン化)しておきましょう。
まとめ
プログラムは思った通りには

動かない。書いた通りに動く。
CSSも同じです。

設計をきちんと/オブジェクト化/DRY…etc

プログラムを書くつもりでCSSも。
参考

MDN/CSS

https://developer.mozilla.org/ja/docs/Web/CSS

More Related Content

What's hot

ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
H Iseri
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 

What's hot (20)

ソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かうソフトウェアの核心にある複雑さに立ち向かう
ソフトウェアの核心にある複雑さに立ち向かう
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
ざっくり DDD 入門!!
ざっくり DDD 入門!!ざっくり DDD 入門!!
ざっくり DDD 入門!!
 
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
 
ドメインモデルの育て方
ドメインモデルの育て方ドメインモデルの育て方
ドメインモデルの育て方
 
HoloLensでONNXを使って推論(Custom Vision - Object Detection編)
HoloLensでONNXを使って推論(Custom Vision - Object Detection編)HoloLensでONNXを使って推論(Custom Vision - Object Detection編)
HoloLensでONNXを使って推論(Custom Vision - Object Detection編)
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
ドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみようドメイン駆動設計 コアドメインを語り合ってみよう
ドメイン駆動設計 コアドメインを語り合ってみよう
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6DDDモデリング勉強会 #6
DDDモデリング勉強会 #6
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!
『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!
『データベースのどこが問題?』を時間かけずにレスポンス・タイム分析(RTA)!
 
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
 

Viewers also liked

Badminton minggu aktiviti
Badminton minggu aktivitiBadminton minggu aktiviti
Badminton minggu aktiviti
Nur Fatehah
 
Amr Training Certificates - 2002-2005-2010
Amr Training Certificates - 2002-2005-2010Amr Training Certificates - 2002-2005-2010
Amr Training Certificates - 2002-2005-2010
Amr Sakran
 

Viewers also liked (20)

Cartilla Moral- PDF Alfonso Reyes
Cartilla Moral- PDF Alfonso ReyesCartilla Moral- PDF Alfonso Reyes
Cartilla Moral- PDF Alfonso Reyes
 
サンプルTodoから見るreact,flux,redux(古川)
サンプルTodoから見るreact,flux,redux(古川)サンプルTodoから見るreact,flux,redux(古川)
サンプルTodoから見るreact,flux,redux(古川)
 
SWTT2016 ミニハックをふりかえる
SWTT2016 ミニハックをふりかえるSWTT2016 ミニハックをふりかえる
SWTT2016 ミニハックをふりかえる
 
Circle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみるCircle ciで結果をslackに通知してみる
Circle ciで結果をslackに通知してみる
 
静的解析、はじまったな
静的解析、はじまったな静的解析、はじまったな
静的解析、はじまったな
 
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
Tokyo Salesforce DG Meetup 2017新年会〜Advent Calendarふりかえり〜
 
Wordpress 2
Wordpress 2Wordpress 2
Wordpress 2
 
Badminton minggu aktiviti
Badminton minggu aktivitiBadminton minggu aktiviti
Badminton minggu aktiviti
 
Sisältömarkkinointi on verkkokauppiaan salainen ase
Sisältömarkkinointi on verkkokauppiaan salainen aseSisältömarkkinointi on verkkokauppiaan salainen ase
Sisältömarkkinointi on verkkokauppiaan salainen ase
 
Cardiac tamponade sample paper for neet pg, usmle, plab, fmge (mci screening ...
Cardiac tamponade sample paper for neet pg, usmle, plab, fmge (mci screening ...Cardiac tamponade sample paper for neet pg, usmle, plab, fmge (mci screening ...
Cardiac tamponade sample paper for neet pg, usmle, plab, fmge (mci screening ...
 
Live proud
Live proudLive proud
Live proud
 
Mapas mentales 3
Mapas mentales 3Mapas mentales 3
Mapas mentales 3
 
วารสาร พ.ย. ธ.ค.59
วารสาร พ.ย. ธ.ค.59วารสาร พ.ย. ธ.ค.59
วารสาร พ.ย. ธ.ค.59
 
Goal worksheet
Goal worksheetGoal worksheet
Goal worksheet
 
PwC 2016 Top Issues - The Aging Workforce
PwC 2016 Top Issues - The Aging WorkforcePwC 2016 Top Issues - The Aging Workforce
PwC 2016 Top Issues - The Aging Workforce
 
Employee of the month
Employee of the monthEmployee of the month
Employee of the month
 
Planificación de Educación física sexto bloque II
Planificación de  Educación física sexto bloque IIPlanificación de  Educación física sexto bloque II
Planificación de Educación física sexto bloque II
 
Amr Training Certificates - 2002-2005-2010
Amr Training Certificates - 2002-2005-2010Amr Training Certificates - 2002-2005-2010
Amr Training Certificates - 2002-2005-2010
 
Leticia alonso inmaculada concepcion
Leticia alonso inmaculada concepcionLeticia alonso inmaculada concepcion
Leticia alonso inmaculada concepcion
 
Revorg, New Delhi, Ladies Bags
Revorg, New Delhi, Ladies BagsRevorg, New Delhi, Ladies Bags
Revorg, New Delhi, Ladies Bags
 

アイコンがなぜずれるのか?