css 将子div保留在父div内

gc0ot86w  于 2022-12-15  发布在  其他
关注(0)|答案(4)|浏览(222)

好吧,嗨,我觉得这是一个非常愚蠢的问题,我发现了很多类似的问题,但没有一个答案似乎对我有用。
我的问题是有一个部门(任务栏),并在其中添加另一个div(taskbar-bar),我希望taskbar-bar保持在任务栏中。我试着把位置放在绝对和相对位置上,但似乎根本不起作用,它总是在任务栏div下面。我可以用top把它推上去,但我觉得现在不应该这样做。不过,我不知道,老实说,我是非常新的CSS和HTML,仍然在学习。
下面是我的代码的jsfidle:https://jsfiddle.net/5zghzczs/3/

.taskbar {
    width: 100%;
    height: 40px;
    box-shadow: 0px 1px 0px 0px #C2C5CA inset, 0px 2px 0px 0px #FFF inset;
    background-color: #C2C5CA;
    position: absolute;
    left: 0;
    bottom: 0;
}
#taskbar-start {
    margin-top: 4px;
    margin-bottom: 2px;
    margin-left: 2px;
    width: 90px;
    height: 33px;
    background-color: #C2C5CA;
    cursor: pointer;
}
.taskbar-start-inactive {
    box-shadow: -1px -1px 0px 0px #000 inset, 1px 1px 0px 0px #FFF inset, -2px -2px 0px 0px #868A8E inset;
}
.taskbar-start-active {
    box-shadow: -1px -1px 0px 0px #FFF inset, 1px 1px 0px 0px #000 inset, 2px 2px 0px 0px #868A8E inset;
}
.taskbar-start-frame-active {
    margin-top: 2px;
    margin-left: 2px;
    width: 84px;
    height: 27px;
    border-style: dotted;
    border-width: 1px;
    position: absolute;
}
.taskbar-start-logo {
    margin-top: 6px;
    margin-left: 3px;
    width: auto;
    height: 20px;
    -webkit-user-select: none;
}
.taskbar-start-text {
    margin-top: 10px;
    margin-left: 5px;
    display: inline;
    font-size: 12px;
    letter-spacing: -2px;
    -webkit-user-select: none;
    font-family: "Press Start 2P";
    position: absolute;
}
.taskbar-bar {
    height: 35px;
    width: 2px;
    background: green;
  margin-left: 100px;
}
<div class="taskbar">
   <div id="taskbar-start" class="taskbar-start-inactive">
            <div id="taskbar-start-frame">
                <img class="taskbar-start-logo" src="img/logo.png" /> 
                <div class="taskbar-start-text">Start</div>
            </div>
        </div>
  <div class="taskbar-bar"></div>
u1ehiz5o

u1ehiz5o1#

您的问题是您使用了margin-left,它试图在一个div和另一个div之间给予边距。Here是一个新的JSFiddle,我在其中将位置设置为absolute,将margin-left更改为left,并添加了top: 0px;以将其设置为顶部(覆盖另一个div)。

.taskbar-bar {
  position: absolute;
  top: 4px;
  left: 100px;
    height: 35px;
    width: 2px;
    background: green;
}
doinxwow

doinxwow2#

我认为最好的方法是将父容器设置为Flexbox容器,这样可以将所有子容器放置在一行中。

display: flex;

参见https://jsfiddle.net/5zghzczs/7/
阅读更多关于Flexbox的信息:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

1tuwyuhd

1tuwyuhd3#

taskbar-starttaskbar-bar的“显示”更改为“内联块”

.taskbar-start, .taskbar-start {
     display: inline-block;
}
y53ybaqx

y53ybaqx4#

当动态文本迫使我的模态更宽时,fit-content对我来说就像一种魅力。

max-width: fit-content;

有关适合内容https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content的更多信息

相关问题