我正在使用reactjs,react-bootstrap,bootstrap和fontawesome作为依赖项。
我在react-bootstrap按钮中有一个fontAwesome组件,它以text-center
作为className,所有其他图标都以相同的方式居中,没有问题,除了faPlay图标最左侧
我应该补充一点,父按钮是一个长度为2em的正方形。
它在action中。
这是在仓库中包含该组件的module。
faPlay没有特殊的CSS或类似的东西, 那么是什么原因导致它没有居中,而其他一切却是?
答案 0 :(得分:1)
添加Flexbox CSS属性以使其居中
button {
display: flex;
justify-content: center;
align-items: center;
}
答案 1 :(得分:0)
这是光学illusion
。当前位于horizontally
和vertically
的中心。
答案 2 :(得分:0)
这是scss中的解决方案。 looks的样子。需要一些反馈,这只是一种视觉幻觉还是对吗?
@function sqrt($r) {
$x0: 1;
$x1: $x0;
@for $i from 1 through 10 {
$x1: $x0 - ($x0 * $x0 - abs($r)) / (2 * $x0);
$x0: $x1;
}
@return $x1;
}
.fa-play-circumcenter svg {
/* the faPlay icon is centered by the point that meets the (triangle hight)/2 .
this class centers it by its circumcenter .
consider that the faPlay icon is an equilateral triangle ,
horizontally centered (left and right white spaces are equal )
and because of these two rules in the parent button :
width: 2em;
height: 2em;
the width of the button is equal to two times a triangle side .
you can then calculate the percentage to offset
the whole svg icon so that the circumcenter of the triangle
meets the center of the button .*/
-webkit-transform: translateX(percentage(sqrt(3) / 24));
-ms-transform: translateX(percentage(sqrt(3) / 24));
transform: translateX(percentage(sqrt(3) / 24));
}