web-dev-qa-db-ja.com

マットアイコンがそのdivの中央にない

私はcssを初めて使い、マットアイコン(思考バブル)をdiv class = img(左側の緑の四角)に合わせることができません-添付の画像を参照してください。この時点で、アイコンは上部の少し近くにあります

Svgアイコンを追加するために、Material Angular-MatIconRegistryクラス(重要かどうかわからない)を使用しました)

私の結果: enter image description here

これが私のhtmlです。

<div class="container">
  <div class="img"><mat-icon svgIcon="info"></mat-icon></div>
  Some text here!
</div>

これが私のCSSです。

$conainer-min-width: 256px !default;
$conainer-max-width: 512px !default;
$conainer-height: 50px !default;

div.container {
  max-width: $container-max-width;
  min-width: $container-min-width;
  height: $container-height;
  margin: auto;
  color: #000000;
  background-color: #ffffff;
  line-height: $container-height;
  text-align: center;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  border-width: 1px;
  border-style: solid;
  border-color: #9e9e9e;
  padding-right: 20px;
  position: fixed;
  z-index: 1000;
  left: 0;
  right: 0;
  top: 30px;
}


div.img {
  width: $container-height;
  height: $container-height;
  float: left;
  display: block;
  margin: 0 auto;
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: #9e9e9e;
  line-height: $container-height;
  justify-content: center;
  background-color: #3f9c35;
}

これを修正する方法についての考えはありますか?

8
Mike Me

vertical alignmat-icon要素または.mat-iconクラスに追加する必要があります。

すべてのマテリアルアイコンをオーバーライドするには:Stackblitz

.mat-icon {
   vertical-align: middle;
}

FLEXの場合:Stackblitz

CSS:

.icon-text {
    display: flex;
    align-items: center;
}

HTML:

<div class="icon-text">
   <mat-icon>home</mat-icon>
   <span>Some text here 1</span>
</div>

ユーティリティクラスで特定のマテリアルアイコンをスタイルするには:Stackblitz

一部のグローバルcssファイル:

.v-align-middle { 
   vertical-align: middle;
}

HTML:

<div>
   <mat-icon class="v-align-middle">home</mat-icon>
   <span class="v-align-middle">Some text here 1</span>
</div>

**一部のcssフレームワークにはすでにこのようなクラスがあります。例:bootstrap =4 **


特定のマテリアルアイコンをスタイルするには:Stackblitz

CSS:

.custom-class mat-icon {
   vertical-align: middle;
}

/** or using the class .mat-icon */
.custom-class .mat-icon {
   vertical-align: middle;
}

HTML:

<div class="custom-class">
   <mat-icon>home</mat-icon>
   <span>Some text here 1</span>
</div>
14
The.Bear

あなたの問題はこれらの変数名のタイプミスだと思います:

$ conainer-min-width:256px!default;
$ conainer-max-width:512px!default;
$ conainer-height:50px!default;

ここで使用される変数と一致しません:

div.container {
max-width:$ container-max-width;
min-width:$ container-min-width;
height:$ container-height; }

conainercontainerに変更すると動作するはずだと思います:)

0
A. U.