我之前在一个项目上已经解决了这个问题,但是我完全忘记了我是如何解决这个问题的,所以我想如果有人知道他们的头脑中有什么问题:)
我绝对在容器底部放置一个按钮,然后使用left:0和right:0使按钮居中但是它会使它全宽,任何想法如何防止这种情况?
小提琴模型:http://jsfiddle.net/1t6Ljkjg/
ul li img {
width: 500px;
}
.ty-subcategories__item {
position: relative;
margin: 0;
display: inline-block;
width: 49%;
}
.ty-subcategories__item .logo-box {
width: 58%;
display: block;
position: absolute;
top: 0;
left: 0;
height: 100%;
text-align: center;
}
.ty-subcategories__item .logo-box.left .ty-btn,
.ty-subcategories__item .logo-box.right .ty-btn {
font-size: 0.7rem;
border: 2px solid #fff;
color: #fff;
text-transform: uppercase;
background: #f14fa1;
position: absolute;
bottom: 20px;
left: 0;
right: 0;
}

<ul>
<li class="ty-subcategories__item">
<a href="http://2015.ambientlounge.com/interior/gold-class-bean-bags/butterfly-sofa-bean-bags/" class="ty-subcategories-block__a">
<img class="ty-pict ty-subcategories-img " src="http://2015.ambientlounge.com/images/detailed/3/category-panel-butterfly.jpg?t=1437997789" alt="left" title="left">
<div class="logo-box left"><span class="ty-btn ty-btn__primary">Shop Now</span>
</div>
</a>
</li>
</ul>
&#13;
答案 0 :(得分:0)
您可以考虑使用CSS转换来使按钮居中,而不是使用left:0
和right:0
。例如,您的声明块可能会变为:
.ty-subcategories__item .logo-box.left .ty-btn,
.ty-subcategories__item .logo-box.right .ty-btn {
font-size: 0.7rem;
border: 2px solid #fff;
color: #fff;
text-transform: uppercase;
background: #f14fa1;
position: absolute;
bottom: 20px;
left: 50%;
transform: translate(-50%, 0);
}
这是一个updated JSFiddle。希望这可以帮助!如果您有任何问题,请告诉我。
编辑:但是,如果您希望将其置于黑匣子中心(而不仅仅是按钮的父元素),则需要将父级的宽度更新为类似:
.ty-subcategories__item .logo-box {
width: 161px;
}
(我假设黑盒子是方形的。)这是一个新的JSFiddle。
EDIT 2 :为了使定心工作起作用,我们可以做一些数学运算:假设黑框是方形的,图像宽高比始终相同,我们可以计算框所占图像宽度的百分比,用:
520(图像高度)/ 1610(图像宽度)* 100%= 32.3%
因此,这是按钮父级所需的宽度。要避免文本中断到按钮中的多行,可以指定white-space
属性。所以你的CSS可能会成为:
ul li img {
width: 100%;
height: 100%;
}
.ty-subcategories__item {
position: relative;
margin: 0;
display: inline-block;
width: 100%;
}
.ty-subcategories__item .logo-box {
width: 32.3%;
display: block;
position: absolute;
top: 0;
left: 0;
height: 100%;
text-align: center;
}
.ty-subcategories__item .logo-box.left .ty-btn,
.ty-subcategories__item .logo-box.right .ty-btn {
font-size: 0.7rem;
border: 2px solid #fff;
color: #fff;
text-transform: uppercase;
background: #f14fa1;
position: absolute;
bottom: 20px;
left: 50%;
transform: translate(-50%, 0);
white-space: nowrap;
}
这是另一个updated JSFiddle。如果这有帮助,请告诉我!