我正在设计一个展示带有信息的汽车的积木,特别是对于这个问题,我只保留了重要的东西,即默认背景(图像):
问题出在背景色上,它随示例-视图中的 red 中接收到的颜色而变化。直到我调整窗口大小(使用 Toggle设备工具栏)或在最终设备中对其进行测试(1920x1080)之前,一切都像魅力一样。如果进行此更改,将会看到幻影边框:
我尝试添加box-shadow属性,并且在某些分辨率下结果是相同的:
box-shadow: inset -3px -3px 0px 8px rgb(255, 255, 255);
-webkit-box-shadow: inset -3px -3px 0px 8px #fff;
-moz-box-shadow: inset -3px -3px 0px 8px #fff;
box-shadow: inset -3px -3px 0px 8px #fff;**
我正在使用:
.listitem {
height: 200px;
padding: 6px 3px 10px 10px;
}
.listitem-block {
width: 362px;
float: left;
margin-right: 10px;
}
.listitem-body {
height: 125px;
padding: 0px 5px 5px 6px;
width: 290px;
}
.listitem-content {
position: absolute;
width: 290px;
height: 120px;
}
.listitem-bg {
height: 105px;
background: #777 url('https://i.imgur.com/FsTDxBK.png') no-repeat;
width: 287px;
position: absolute;
opacity: 0.6;
border-right: 1px solid #e5e5e5;
/* box-shadow: inset -3px -3px 0px 8px rgb(255, 255, 255); */
/* -webkit-box-shadow: inset -3px -3px 0px 8px #fff; Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
/* -moz-box-shadow: inset -3px -3px 0px 8px #fff; Firefox 3.5 - 3.6 */
/* box-shadow: inset -3px -3px 0px 8px #fff; */
}
<div class="listitem-block">
<div class="ibox">
<div class="ibox-content product-box">
<a class="href-none">
<div class="listitem">
<!-- Body -->
<div class="listitem-body">
<div class="listitem-bg" style="background-color: red"></div>
<div class="listitem-content">
</div>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
在此处完成JSFiddle(更新25/6):https://jsfiddle.net/1uod0ptb/19/
答案 0 :(得分:1)
我的最后一个想法是使用::before
和::after
伪元素以及一个CSS变量…
使用这种可变颜色的::before
的位置允许其周围留有一些空间:
.listitem {
height: 200px;
padding: 6px 3px 10px 10px;
}
.listitem-block {
width: 362px;
float: left;
margin-right: 10px;
}
.listitem-body {
position: relative; /* ADDED THIS */
height: 125px;
padding: 0px 5px 5px 6px;
width: 290px;
}
.listitem-content {
position: absolute;
width: 290px;
height: 120px;
}
.listitem-bg { /* Modified a little here */
position: relative;
height: 105px;
width: 287px;
border-right: 1px solid #e5e5e5;
opacity: 0.6;
}
.listitem-bg::before { /* Added all this */
position: absolute;
top: 5px;
bottom: 5px;
left: 5px;
right: 5px;
background-color: var(--bg-color); /* Using CSS var here */
content: "";
}
.listitem-bg::after { /* Added all this */
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-image: url('https://i.imgur.com/FsTDxBK.png');
content: "";
}
<div class="listitem-block">
<div class="ibox">
<div class="ibox-content product-box">
<a class="href-none">
<div class="listitem">
<!-- Body -->
<div class="listitem-body">
<div class="listitem-bg" style="--bg-color: red;"></div><!-- Using CSS var here -->
<div class="listitem-content">
</div>
</div>
</div>
</a>
</div>
</div>
</div>
⋅ ⋅ ⋅
在我看来,您正在使用position: absolute;
且没有任何position: relative
元素。
即使不能解决您的问题,也应该使用它!
请告诉我使用该代码会发生什么情况
.listitem {
height: 200px;
padding: 6px 3px 10px 10px;
}
.listitem-block {
width: 362px;
float: left;
margin-right: 10px;
}
.listitem-body {
position: relative; /* ADDED THIS */
height: 125px;
padding: 0px 5px 5px 6px;
width: 290px;
}
.listitem-content {
position: absolute;
width: 290px;
height: 120px;
}
.listitem-bg { /* Modified a little here */
position: absolute;
height: 105px;
width: 287px;
border-right: 1px solid #e5e5e5;
background-image: url('https://i.imgur.com/FsTDxBK.png');
opacity: 0.6;
}
<div class="listitem-block">
<div class="ibox">
<div class="ibox-content product-box">
<a class="href-none">
<div class="listitem">
<!-- Body -->
<div class="listitem-body">
<div class="listitem-bg" style="background-color: red"></div>
<div class="listitem-content">
</div>
</div>
</div>
</a>
</div>
</div>
</div>
⋅ ⋅ ⋅
我尝试使用background-size: 101% 101%;
稍微放大图像。
我还添加了background-position: center center
和background-origin: border-box
。
所有这些都可以在排序手background
中使用:
.listitem {
height: 200px;
padding: 6px 3px 10px 10px;
}
.listitem-block {
width: 362px;
float: left;
margin-right: 10px;
}
.listitem-body {
height: 125px;
padding: 0px 5px 5px 6px;
width: 290px;
}
.listitem-content {
position: absolute;
width: 290px;
height: 120px;
}
.listitem-bg {
height: 105px;
background: #777 url('https://i.imgur.com/FsTDxBK.png') center center / 101% 101% no-repeat border-box;
width: 287px;
position: absolute;
opacity: 0.6;
border-right: 1px solid #e5e5e5;
}
<div class="listitem-block">
<div class="ibox">
<div class="ibox-content product-box">
<a class="href-none">
<div class="listitem">
<!-- Body -->
<div class="listitem-body">
<div class="listitem-bg" style="background-color: red"></div>
<div class="listitem-content">
</div>
</div>
</div>
</a>
</div>
</div>
</div>
⋅ ⋅ ⋅
我还想尝试一些不同的方法并重设一些样式。
我只使用了* { margin: 0; padding: 0; }
,对我来说问题似乎已经消失了:
* {
margin: 0;
padding: 0;
}
.listitem {
height: 200px;
padding: 6px 3px 10px 10px;
}
.listitem-block {
width: 362px;
float: left;
margin-right: 10px;
}
.listitem-body {
height: 125px;
padding: 0px 5px 5px 6px;
width: 290px;
}
.listitem-content {
position: absolute;
width: 290px;
height: 120px;
}
.listitem-bg {
height: 105px;
background: #777 url('https://i.imgur.com/FsTDxBK.png') no-repeat;
width: 287px;
position: absolute;
opacity: 0.6;
border-right: 1px solid #e5e5e5;
}
<div class="listitem-block">
<div class="ibox">
<div class="ibox-content product-box">
<a class="href-none">
<div class="listitem">
<!-- Body -->
<div class="listitem-body">
<div class="listitem-bg" style="background-color: red"></div>
<div class="listitem-content">
</div>
</div>
</div>
</a>
</div>
</div>
</div>
我希望这些方法之一对您有用!
答案 1 :(得分:0)
添加以下样式,它为我解决了此问题。
.listitem-bg {
background-size: cover;
}
还可以在position:relative
上添加listitem-body
,这实际上不是必需的,但是对于绝对元素具有相对父div是一种很好的做法。
您的html也有一些未关闭的标签。使用我的HTML。我已经解决了。
从背景属性中删除了no-repeat
。在listitem-bg
.listitem {
height: 200px;
padding: 6px 3px 10px 10px;
}
.listitem-block {
width: 362px;
float: left;
margin-right: 10px;
}
.listitem-body {
height: 125px;
padding: 0px 5px 5px 6px;
width: 290px;
position: relative;
}
.listitem-content {
position: absolute;
width: 290px;
height: 120px;
}
.listitem-bg {
height: 105px;
background: #777 url('https://i.imgur.com/FsTDxBK.png');
top: 0;
left: 0;
width: 100%;
position: absolute;
opacity: 0.6;
border-right: 1px solid #e5e5e5;
background-size: cover;
/* box-shadow: inset -3px -3px 0px 8px rgb(255, 255, 255); */
/* -webkit-box-shadow: inset -3px -3px 0px 8px #fff; Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
/* -moz-box-shadow: inset -3px -3px 0px 8px #fff; Firefox 3.5 - 3.6 */
/* box-shadow: inset -3px -3px 0px 8px #fff; */
}
<div class="listitem-block">
<div class="ibox">
<div class="ibox-content product-box">
<a class="href-none">
<div class="listitem">
<!-- Body -->
<div class="listitem-body">
<div class="listitem-bg" style="background-color: red"></div>
<div class="listitem-content">
</div>
</div>
</div>
</a>
</div>
</div>
</div>
在此处检查snippet