当我在div上盘旋时,左边似乎有一个小间隙,右边是黑色边缘。这是div的左右两部分;
这是重现问题的小提琴和代码; https://jsfiddle.net/hqk54p9k/
HTML:
<div class="form">
<div class="poster-list">
<div class="poster">
<div class="poster-overlay">
HELLO
</div>
<div class="poster-image">
</div>
</div>
</div>
</div>
CSS:
.form {
position:absolute;
top: 0;
left: 0;
width: 100%;
height: 500px;
background-color: black;
}
.poster {
position: relative;
display: inline-block;
width: 16.66667%;
padding-bottom: 25%;
border: 4px solid transparent;
vertical-align: top;
transition: all .2s ease-in-out;
overflow: hidden;
&:hover {
border: 4px solid #1599d6 !important;
transform: scale(1.1);
}
.poster-image {
background-color: red;
left: 0;
top: 0;
right: 0;
bottom: 0;
position: absolute;
}
.poster-overlay {
height: 50px;
background-color: white;
opacity: 1;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
z-index: 1;
text-align: center;
}
}
.poster-list {
margin: 20px;
}
这个问题的原因是什么?
答案 0 :(得分:0)
怪异。这是一种视错觉。
我刚尝试将.poster-image { background-color: red; }
颜色更改为green
,然后就消失了。此外blue
没有“空格”,只有red
。
设置background-color: red
时(使用Chrome / Ubuntu),我看不到左侧有任何“间隙”,右侧只有黑色间隙。
修改强>
将CSS更改为此
.poster-image {
...
border: 1px solid transparent;
background-color: white;
&:hover {
outline: 4px solid #1599d6 !important;
...
如果border: 1px
然后有一个微小的白色边框,效果确实不。
如果不存在border: 0px
和微小的白色边框,则会产生效果。
当我使用浏览器缩放放大时,效果会不增加大小。它仍然是一条很小的线,不到一个完整的像素宽。我认为从浏览器的抗锯齿到边缘是一个渲染问题。