【发布时间】:2020-01-01 00:39:00
【问题描述】:
我知道这个问题经常被问到,但似乎没有解决方案适用于我的情况。我想这很简单,我没有看到。希望有人能指出我正确的方向。
问题
当向下滚动时,我有一堆垂直的图标保留在页面的左侧。一切似乎都可以正常工作,只是包含的 div 不会缩小到它们的内容,这会阻止用户与界面的一部分进行交互:
请注意,Div 的扩展范围远远超出其包含的图像。这会干扰选择单选按钮。这是标记:
.navStack {
display: table;
position: fixed;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
margin-left: -5%;
}
.navStack div {
width: auto;
}
.navIcons {
transition: all 0.3s ease;
width: auto;
max-Width: 10%;
max-Height: 10%;
margin: 4px 0;
-webkit-filter: brightness(100%);
filter: brightness(100%);
cursor: pointer;
display: inline-block;
}
.navIcons:hover {
transform: scale(1.5);
-webkit-filter: brightness(70%);
filter: brightness(70%);
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
<div class='navStack'>
<div>
<img class='navIcons' title='Definition' src="https://i.stack.imgur.com/fadxm.png" alt="" />
</div>
<div>
<img class='navIcons' title='Example' src="https://i.stack.imgur.com/fadxm.png" alt="" />
</div>
</div>
我尝试过的事情
- Display: inline-block / Display: table 是最常见的解决方案。将它们放在“navStack”上什么都不做。在 'navStack div' 上放置 inline-block 让我明白:
- 显示:内联 - 在“navStack”上没有响应;在“navStack div”上:
放置宽度没有任何作用。
width: min-content - 无论是 'navStack' 还是 'navStack div',应用时图像完全消失。
根据一条评论,我在“navIcons”中使用了 max-width/height,并将其添加到“navStack div”中,如下所示:
.navStack div {
max-height: 10%;
max-width: 10%;
border: 1px solid;
}
.navIcons {
transition: all 0.3s ease;
width: auto;
max-width: 100%;
max-height: unset;
/* max-Width: 10%;
max-Height: 10%; */
margin: 4px 0;
-webkit-filter: brightness(100%);
filter: brightness(100%);
cursor: pointer;
display: inline-block;
}
<div class='navStack'>
<div>
<img class='navIcons' title='Definition' src="https://i.stack.imgur.com/fadxm.png" alt="" />
</div>
<div>
<img class='navIcons' title='Example' src="https://i.stack.imgur.com/fadxm.png" alt="" />
</div>
</div>
结果如下:
进展
感谢以下人员的善意帮助,取得了进展。使用最新的 CSS(上面的最后一个 CSS),'navStack div' 元素不再扩展,但是,'navStack' 是:
【问题讨论】:
-
感谢您的评论。似乎没有工作:/。将更新帖子。
-
我在第一条评论中写错了,试试这个:
.navStack div{max-height: 10%; max-width:10%}和.navIcons {max-width: 100% max-height: unset} -
我对你的问题做了一点修改,添加了一个边框,让我们看到真正的 div 大小,这对我来说似乎没问题
-
任何时候你限制父级大小,子级将跟随父级的最大大小(特殊情况除外),但如果你将
.navStack大小限制为 10%,则可以添加 100%给它的孩子,因为它不会溢出父母 10% 的大小。 -
很高兴知道。做到了!谢谢@CalvinNunes