将 link 垂直居中到 div 中的图像

vertically center a link to an image in a div

我想在 'left' div.

中将图像(也是 link)垂直居中

a {
  outline: 0;
}

.main {
  background: red;
  position: relative;
  display: inline-block;
  width: 400px;
  height: 200px;
}

.left {
  position: absolute;
  width: 20%;
  height: 100%;
}
<body>
  <div class="main">
    <div class="left">
      <a href="left.png">
        <img src="left.png">
      </a>
    </div>
  </div>
</body>

注1:在我的真实页面中,.main的width/height是不知道的

注意 2:为了不造成混淆,我已经删除了所有以上述代码为中心的尝试:-)

注意 3:我已经测试了很多在网上找到的东西,但其中 none 对我有效。

你可以使用这个:

.left{
    display: flex;
    align-items: center;
}

您可以将 .left 中的 link 与现有的 markup/css 垂直居中,方法是将 .left 中的 link 绝对定位在 top: 50% ,然后使用 translateY(-50%) 将其向上移动到自身高度的 50%,这样它就真正垂直居中了。

.left a {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

a{
  outline:0;
}
.main{
  background:red;
  position:relative;
  display:inline-block;
  width:400px;
  height:200px;
}
.left {
  position:absolute;
  width:20%;
  height:100%;
}

.left a {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

img {
  max-width: 50px;
}
<body>
  <div class="main">
    <div class="left">
      <a href="left.png">
        <img src="https://futurism.com/wp-content/uploads/2015/11/neildegrassetyson.jpg">
      </a>
   </div>
  </div>
</body>