【发布时间】:2017-04-12 02:22:23
【问题描述】:
我正在尝试将font-awesome 图标置于bootstrap 3 中的图像的中心。
这是一个 div 中包含的图像代码:
<div id="quickVideo">
<a data-fancybox href="https://player.vimeo.com/video/153113362?autoplay=1&color=54b3e4" class="adminDemoVideo">
<img src="~/Images/..." class="img-responsive">
</a>
</div>
我可以在 div 元素上使用 ::before 来做到这一点,但这里的问题是它默认不响应。
.adminDemoVideo::before {
font-family: 'FontAwesome';
content: '\f04b';
margin-top: 1.35em;
margin-left: 2.8em;
color: white;
z-index: 1000;
font-size: 50px !important;
position: absolute;
padding-bottom: 3px;
padding-top: 3px;
padding-left: 25px;
padding-right: 15px;
background-color: rgba(23, 35, 34, 0.75);
border-radius: 5px 5px 5px 5px;
}
这是它在桌面显示尺寸中的样子:
当我把它变成手机或平板电脑视图大小时,它会因为边距等而变形,如下所示:
有什么方法可以在不知道屏幕尺寸的情况下解决它吗?
解决方案在css 或javascript 或jquery 中对我来说并不重要。
希望这不是重复的,但在这里没有找到任何合适的解决方案...
提前致谢。
【问题讨论】:
-
在边距和内边距中使用百分比怎么样?
-
您尝试过使用
top和left属性吗?像top: calc(50% - width)和left: calc(50% - width)这样的宽度是你图标的宽度? -
我也尝试了
calc函数。我设法将它修复为特定的显示尺寸,但是当它再次变成桌面模式时,它变得扭曲了。我尝试了类似left: calc(50% - 10em);的方法,但没有解决所有尺寸的问题,因为当引导程序调整大小时,它会破坏一切:( -
calc()在这种情况下有点不灵活。translate()会是更好的选择。设置一次,然后忘记它。居中的元素可以是任何宽度/高度并且仍然居中,而无需为各种 meida 查询重新声明calc()值或更新它。 -
是的,这是正确的答案,非常感谢@hungerstar :) 你为我节省了很多工作。干杯
标签: javascript jquery css twitter-bootstrap font-awesome