質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

9013閲覧

マテリアルアイコンを使っているのですが、line-height: 1;がCDNのCSSにあるため、line-heightとheightを同じ値にしても、中央にきません。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/02/13 04:49

編集2016/02/13 08:09

マテリアルアイコンを使っているのですが、line-height: 1;がCDNのCSSにあるため、line-heightとheightを同じ値にしても、中央にきません。
.material-icons {
line-height: 0;
}
で上書きしても、異常に上に行ってしまいます。
リセットするようなものもないようですが、皆さんどうやって変な癖をなくしていますか?
CDNなのでCSSのline-heightを削除することもできないですよね。

・CDNのCSS
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}

・下記で上書きした所、上に異常な移動をする。
.material-icons {
line-height: 0;
}

・line-height: 0;をつけて1remくらいだと中央に来て、サイズを大きくしていくと真ん中から上にずれていくことがわかりました。

.material-icons {
font-size: 1rem;
}

・かきのサイズにした所なぜか真ん中に来ました。
理由はわかりません。
そのようなものと割り切るか、CSS3でアイコンを作ったほうがいいですかね?
.material-icons {
font-size: 8rem;
line-height: 0.75;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

material-iconsにdisplay:inline を当てるのをやめましょう。
使う箇所に応じて修正用のクラスを当てるなどがいいと思います。

html

1<i class="material-icons sample">サンプル</i>

css

1.sample { 2 padding-top: 10px; 3 line-height: 1.5; 4}

別の箇所に使う場合、新たな上書きがどうせ発生するだけなので下記の指定方法は実質無意味です。
CDNの設定をデフォルトとして、うまく調節する方法を個別に考えてください。

css

1/* このやり方は避ける。*/ 2.material-icons { 3 line-height: 0; 4}

投稿2016/02/13 11:33

編集2016/02/13 11:34
yamato_hikawa

総合スコア2092

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/14 05:47

ありがとうございます。material-icons、その他外部のサービスを導入した場合、JSなどは、見た目構造のCSSと別にしてマルチクラスにするのが良いということですね。 それでマルチクラスが4つくらいになっても仕方ないですね、。
yamato_hikawa

2016/02/18 00:17

この修正用のクラスがBEMで言うところのModifierです。
guest

0

CSSは後勝ちのはずなので、読み込み順が正しければ上書きされると思いますけどね。
下記の順序になっていれば、上書けるはずです。

html

1<link rel="stylesheet" type="text/css" href="CDNのCSS" /> 2<link rel="stylesheet" type="text/css" href="自分で用意したCSS" />

上記順序になっているのに上書けない場合は、セレクタで負けている可能性もありますね。
上書き用のCSSを例えば以下のようにして

css

1#icon-area .material-icons { 2 line-height: 0; 3}

HTMLでは以下のように指定

html

1<span id="icon-area"> 2 <span class="material-icons"> 3 </span> 4</span>

ただ、

.material-icons {
line-height: 0;
}
で上書きしても、以上に上に行ってしまいます。

と書かれているので、効いてるのではないですか?
「異常に上」に行ってしまうんですよね?
そうなると、指定する値の問題ということになってきそうです。

投稿2016/02/13 06:27

root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/02/13 06:41

下記のようにしています。 <link rel="stylesheet" href="css/html5reset-1.6.1.css"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link rel="stylesheet" href="css/common.css"> <link rel="stylesheet" href="css/index.css"> インスペクタで確認しているのでCSSは確実に効いています。 インスペクタでのCSS element.style { } .action-hover:hover, .main__top-gnav a:hover { cursor: pointer; opacity: 0.5; } .drawermenu__material-icons { font-size: 7rem; } .material-icons { display: inline; text-align: center; } .material-icons { line-height: 0; } .material-icons { line-height: 0; }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問