Как выровнять изображение по вертикали с текстом - PullRequest
0 голосов
/ 07 мая 2020

Я делаю свой первый веб-сайт, но я не могу заставить значок вертикально выровняться с текстом

если я использовал значки Font Awesome, он отлично работает, но я не хочу его использовать .

вот мой код и изображение, чтобы лучше описать мою проблему.

«Невозможно выровнять значок стрелки с текстом» Изображение

enter image description here

.icon {
  width: 20px;
  height: 20px;
  padding-left: 10px;
  margin-right: -12px;
}

.link {
  display: block;
  text-decoration: none;
  font-size: 20px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.leftDiv {
  width: 200px;
  height: 100%;
  background-color: lightgray;
  padding-top: 10px;
  box-shadow: rgba(0, 0, 0, 0.5) 3px 0px 10px;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title>Nature Gallery</title>
  <link rel="shortcut icon" href="Icon/NG.png" />
  <link href="Style/StyleSheet1.css" rel="stylesheet" />
  <link href="Content/font-awesome.css" rel="stylesheet" />
</head>

<body>
  <div class="leftDiv">
    <a href="Home.html" class="link">
      <i class="fa fa-long-arrow-right"></i> Home
    </a>

    <a href="Home.html" class="link">
      <img src="Icon/long-arrow-alt-right-solid.svg" class="icon" /> Home
    </a>

    <a href="Home.html" class="link">
      <img src="Icon/long-arrow-alt-right-solid.svg" class="icon" style="vertical-align:middle;" /> Home
    </a>
  </div>
</body>

</html>

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Сначала добавьте это к .link:

display: flex;
align-items: center;
justify-content: center;

Затем добавьте это к .leftDiv:

display: flex;
align-items: flex-start;
justify-content: center;
flex-direction: column;

Ваш код должен выглядеть так:

.icon {
  width: 20px;
  height: 20px;
  padding-left: 10px;
  margin-right: -12px;
}

.link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  text-decoration: none;
  font-size: 20px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.leftDiv {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  width: 200px;
  height: 100%;
  background-color: lightgray;
  padding-top: 10px;
  box-shadow: rgba(0, 0, 0, 0.5) 3px 0px 10px;
}

Вот полное руководство по flexbox: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

0 голосов
/ 07 мая 2020

Я думаю, что проблему можно решить, используя padding-bottom для значка:

.icon {
  width: 20px;
  height: 20px;
  padding-left: 10px;
  padding-bottom: 5px;
  margin-right: -12px;
}

Затем padding-bottom можно добавить или вычесть в зависимости от количества padding, которое вам может понадобиться выровняйте элементы по вертикали.

...