html – CSS中SVG的垂直对齐

前端之家收集整理的这篇文章主要介绍了html – CSS中SVG的垂直对齐前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有内联SVG对齐的问题.我创建了一个带有一些文本和SVG的按钮.当SVG高度小于文本时,当SVG至少与文本一样大时,对齐正常工作.

我创建了一个带有双色背景按钮的测试用例,以指示中间的确切位置.您可以看到,如果您仔细观察第二种情况未完全对齐,因为SVG的高度小于文本中的高度.

有没有什么办法解决这一问题?做其他方式(请不要js)?

测试用例:https://goo.gl/KYDKGH

解决方法

jsfiddle 1 – 您可以在容器上使用position:relative,并在对象上使用absolute:absolute,如下所示:
position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;

顶部:50%将对象移动到容器的垂直中心,选择对象的顶部作为参考(而不是其中心),因此变换:translateY将其向上移动50%的距离,使其完全位于中间容器(由物体中心).

ps:text-align:center;左:0;右:0;和margin:auto用于水平对齐.

jsfiddle 2 – 或者使用display:flex在容器上使用align-items来垂直对齐内容,如下所示:

display: -webkit-flex; /* Safari */  
  display: flex;
  -webkit-align-items: center; /* Safari 7.0+ */
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;

ps:对齐内容用于水平对齐.

猜你在找的HTML相关文章