弹性项目不会拉伸,当它们合并时,它会将我的所有其他项目移动 div
flex items will not stretch and when they unide it moves all my other items in a div
我试图让一个输入框拉伸整个屏幕的宽度,但由于项目的原因,它 div' 与上面它只占用少量并且当它取消隐藏时它还会拖动上面的项目。我试过 flex-stretch、align-items: stretch 等等,但似乎没有任何效果。我什至给了它一个 div,但我无法让它工作。
如果您单击下面代码中的“回复”按钮,它将向您显示我的确切问题:
document.getElementById("reply64").addEventListener('click', (e) => {
document.getElementById("reply64").classList.toggle("blue");
document.getElementById("reply_form64").classList.toggle("open");
});
document.getElementById("reply71").addEventListener('click', (e) => {
document.getElementById("reply71").classList.toggle("blue");
document.getElementById("submit_reply71").classList.toggle("open");
});
.lk{
display: flex;
margin-bottom: 5px;
font-size: 14px;
gap: 5px;
}
.profile_image{
width: 30px;
height: 30px;
border-radius: 50%;
}
.user{
background: grey;
padding: 10px;
border-radius: 20px;
}
.reply-body{
width: 100%;
flex-shrink: 0;
}
.reply {
display: flex;
justify-content: legacy left;
gap: 10px;
}
.thumb.open, .vl.open, .form-hidden.open{
display: flex;
}
.form-hidden{
display: none;
}
.blue{
color: blue;
}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
<link href="/static/css/style.css" rel="stylesheet">
<script src="https://js.stripe.com/v3/"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
</head>
<body>
<div class="lk">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<div>
<div class="user">
<div class="reply_author">jon 2 days ago </div>
<div class="reply-body">hi dawg!</div>
</div>
<div class="reply">
<div class="d-flex align-items-center">
<i id="upvote64" class="fas fa-arrow-up hover" style="color: gray" onclick="vote(64,1)"></i>
<span id="upvote_count_badge64" class="badge bg-secondary">1</span>
<i id="downvote64" class="fas fa-arrow-down hover" style="color: gray" onclick="vote(64,0)"></i>
</div>
<div class="reply_comment" id="reply64" onclick="open_form(64)">Reply</div>
<div id="facti_award_modal" data-bs-toggle="modal" data-bs-target="#siteModal" onclick="build_award_modal(64)">
<i class="fas fa-award hover"></i>
</div>
</div>
<div id="vl64" class="vl"></div>
<form id="reply_form64" class="form-hidden">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<input class="cmt-reply" type="text" placeholder="Write a reply2">
</form>
<div id="reply_loader64"><!--Nested Replies go here--></div>
</div>
</div>
<div class="lk">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<div>
<div class="user">
<div class="reply_author">jon 2 hours ago </div>
<div class="reply-body">yo</div>
</div>
<div class="reply">
<div class="d-flex align-items-center">
<i id="upvote71" class="fas fa-arrow-up hover" style="color: gray" onclick="vote(71,1)"></i>
<span id="upvote_count_badge71" class="badge bg-secondary">0</span>
<i id="downvote71" class="fas fa-arrow-down hover" style="color: gray" onclick="vote(71,0)"></i>
</div>
<!--This button unides a form, but the form messes up the other divs and does not expand all the way as I want-->
<div class="reply_comment" id="reply71">Reply</div>
<div id="facti_award_modal" data-bs-toggle="modal" data-bs-target="#siteModal" onclick="build_award_modal(71)">
<i class="fas fa-award hover"></i>
</div>
</div>
<form id="submit_reply71" class="form-hidden">
<div class="post_comment">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<input class="comment_input" id="comment_input" maxlength="1024" name="body" placeholder="Write a comment3" required="" type="text" value="">
<div id="comment_input_error" class="invalid-feedback"></div>
</div>
</form>
</div>
<div id="reply_loader71"><!--Nested Replies go here--></div>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js" integrity="sha512-LGXaggshOkD/at6PFNcp2V2unf9LzFq6LE+sChH7ceMTDP0g2kn6Vxwgg7wkPP7AAtX+lmPqPdxB47A0Nz0cMQ==" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"></script>
</body>
隐藏回复按钮示例中的错误...我看到以下内容:
输入和表单都是未命名的 div 的子项,具有默认宽度(指定 none)。
如果您将父项的宽度设置为 100%,那么您的输入(也缺少 width: 100%
)将会拉伸,如下所示:
然后您需要定义您要对灰色聊天框执行的操作,但是请记住:
- 如果没有特定的理由,您不能指望元素会拉伸到任何东西的全宽。检查默认宽度值(自动):
https://developer.mozilla.org/en-US/docs/Web/CSS/width
- 子项通常不能超出其父项的限制,特别是默认情况下,输入的自动宽度和其 div 父项的自动宽度...永远不会导致 100% 宽度。你应该具体一点。
额外
要根据内容的大小调整 .user div 的内容,您可以尝试 max-content,这将使您的示例看起来像这样:
https://blog.logrocket.com/understanding-min-content-max-content-fit-content-css/
请阅读这篇文章,它详细解释了max-content、min-content、fit-content、优缺点等
我试图让一个输入框拉伸整个屏幕的宽度,但由于项目的原因,它 div' 与上面它只占用少量并且当它取消隐藏时它还会拖动上面的项目。我试过 flex-stretch、align-items: stretch 等等,但似乎没有任何效果。我什至给了它一个 div,但我无法让它工作。
如果您单击下面代码中的“回复”按钮,它将向您显示我的确切问题:
document.getElementById("reply64").addEventListener('click', (e) => {
document.getElementById("reply64").classList.toggle("blue");
document.getElementById("reply_form64").classList.toggle("open");
});
document.getElementById("reply71").addEventListener('click', (e) => {
document.getElementById("reply71").classList.toggle("blue");
document.getElementById("submit_reply71").classList.toggle("open");
});
.lk{
display: flex;
margin-bottom: 5px;
font-size: 14px;
gap: 5px;
}
.profile_image{
width: 30px;
height: 30px;
border-radius: 50%;
}
.user{
background: grey;
padding: 10px;
border-radius: 20px;
}
.reply-body{
width: 100%;
flex-shrink: 0;
}
.reply {
display: flex;
justify-content: legacy left;
gap: 10px;
}
.thumb.open, .vl.open, .form-hidden.open{
display: flex;
}
.form-hidden{
display: none;
}
.blue{
color: blue;
}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSS only -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
<link href="/static/css/style.css" rel="stylesheet">
<script src="https://js.stripe.com/v3/"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
</head>
<body>
<div class="lk">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<div>
<div class="user">
<div class="reply_author">jon 2 days ago </div>
<div class="reply-body">hi dawg!</div>
</div>
<div class="reply">
<div class="d-flex align-items-center">
<i id="upvote64" class="fas fa-arrow-up hover" style="color: gray" onclick="vote(64,1)"></i>
<span id="upvote_count_badge64" class="badge bg-secondary">1</span>
<i id="downvote64" class="fas fa-arrow-down hover" style="color: gray" onclick="vote(64,0)"></i>
</div>
<div class="reply_comment" id="reply64" onclick="open_form(64)">Reply</div>
<div id="facti_award_modal" data-bs-toggle="modal" data-bs-target="#siteModal" onclick="build_award_modal(64)">
<i class="fas fa-award hover"></i>
</div>
</div>
<div id="vl64" class="vl"></div>
<form id="reply_form64" class="form-hidden">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<input class="cmt-reply" type="text" placeholder="Write a reply2">
</form>
<div id="reply_loader64"><!--Nested Replies go here--></div>
</div>
</div>
<div class="lk">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<div>
<div class="user">
<div class="reply_author">jon 2 hours ago </div>
<div class="reply-body">yo</div>
</div>
<div class="reply">
<div class="d-flex align-items-center">
<i id="upvote71" class="fas fa-arrow-up hover" style="color: gray" onclick="vote(71,1)"></i>
<span id="upvote_count_badge71" class="badge bg-secondary">0</span>
<i id="downvote71" class="fas fa-arrow-down hover" style="color: gray" onclick="vote(71,0)"></i>
</div>
<!--This button unides a form, but the form messes up the other divs and does not expand all the way as I want-->
<div class="reply_comment" id="reply71">Reply</div>
<div id="facti_award_modal" data-bs-toggle="modal" data-bs-target="#siteModal" onclick="build_award_modal(71)">
<i class="fas fa-award hover"></i>
</div>
</div>
<form id="submit_reply71" class="form-hidden">
<div class="post_comment">
<img class="profile_image" src="https://robohash.org/006cb570acdab0e0bfc8e3dcb7bb4edf?size=50x50">
<input class="comment_input" id="comment_input" maxlength="1024" name="body" placeholder="Write a comment3" required="" type="text" value="">
<div id="comment_input_error" class="invalid-feedback"></div>
</div>
</form>
</div>
<div id="reply_loader71"><!--Nested Replies go here--></div>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js" integrity="sha512-LGXaggshOkD/at6PFNcp2V2unf9LzFq6LE+sChH7ceMTDP0g2kn6Vxwgg7wkPP7AAtX+lmPqPdxB47A0Nz0cMQ==" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"></script>
</body>
隐藏回复按钮示例中的错误...我看到以下内容:
输入和表单都是未命名的 div 的子项,具有默认宽度(指定 none)。
如果您将父项的宽度设置为 100%,那么您的输入(也缺少 width: 100%
)将会拉伸,如下所示:
然后您需要定义您要对灰色聊天框执行的操作,但是请记住:
- 如果没有特定的理由,您不能指望元素会拉伸到任何东西的全宽。检查默认宽度值(自动):
https://developer.mozilla.org/en-US/docs/Web/CSS/width
- 子项通常不能超出其父项的限制,特别是默认情况下,输入的自动宽度和其 div 父项的自动宽度...永远不会导致 100% 宽度。你应该具体一点。
额外
要根据内容的大小调整 .user div 的内容,您可以尝试 max-content,这将使您的示例看起来像这样:
https://blog.logrocket.com/understanding-min-content-max-content-fit-content-css/
请阅读这篇文章,它详细解释了max-content、min-content、fit-content、优缺点等