gpt4 book ai didi

javascript - Div 没有正确排列

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:18 26 4
gpt4 key购买 nike

我有以下 HTML:

<div id="main">
<div id="calendar">
<div class="column" id="time_slots">
</div>

<div class="column" id="day1">
<div class="route_container">
<div class="date"></div>
<button class="add_route" name="add_route" onclick="">Add New Route - 1</button>
<div class = "truck" id="day1_route1">
<div class="ts8-10">J Smith</div>
<div class="ts10-12">10-12 AM</div>
<div class="ts12-2">12-2 AM</div>
<div class="ts2-4">2-4 AM</div>
<div class="ts4-6">4-6 AM</div>
</div>
</div>
</div>

以及以下 CSS:

.label
{
width:20px;
}

.table
{
font-size: 1.2em;
}
#main
{
border-style: solid;
border-width: 1px;
border-color: black;
width:97%;
height:900px;
margin:auto;
overflow: auto;
white-space: nowrap;

}
h2
{
font-size: 24px;
}
#calendar
{
padding:1%;

}
.column
{
border-style: solid;
border-width: 1px;
border-color: black;
min-width:10%;
max-width:100%;
width:17%;
height:1000px;
display: inline-block;
overflow: auto;
padding:5px;
font-size: 0px;
}
.header
{
padding:0;
margin:0;
text-align: center;
font-style: bold;
}
.route_container
{
height:100%;
display: inline-block;
font-size: 0px;


border-style: solid;
border-width: 1px;
border-color: black;
min-width:10%;
max-width:100%;
width:100%;
overflow: auto;
padding:5px;
font-size: 0px;
}
.truck
{
width:275px;
height:100%;
border-style: solid;
border-width: 1px;
border-color: black;
display:inline-block;
margin:auto;
font-size: 16px;
padding:2%;

position: relative;
}

.column#time_slots
{
width:5%;
min-width:5%;
max-width: 10%;
}
.date
{
text-align: center;
width:100%;
border-style: solid;
border-width: 1px;
border-color: black;
}
.column button
{
display:block;
width:100%;
width:100%;
border-style: solid;
border-width: 1px;
border-color: black;
font-size: 16px;
}
.full_time
{
display: none;
}

.ts8-10, .ts10-12, .ts12-2, .ts2-4, .ts4-6
{
border-style: solid;
border-width: 1px;
border-color: black;
width:90%;
height:20%;
font-size: 28px;
text-align: center;
padding:5px;
}

我正在使用以下 Javascript 添加另一个 div:

$(".add_route").click(function(){
var truck = $(this).parent().find('.truck').length
truck += 1;
var w = $(this).parent().width();
$(this).parent().animate({width:(w+405)}, 1000);
$(this).parent().parent().animate({width:(w+425)}, 1000);
$(this).parent().append('<div class = "truck" id="'+$(this).parent().parent().attr('id')+'_route'+truck+'"><p>There are '+ truck +' routes</p></div>');
$('#'+$(this).parent().attr('id')+'_route'+truck).hide();


var route_num = $(this).parent().find('.truck').length;
var route_w = (100/route_num)-1;

$('#'+$(this).parent().attr('id')+'_route'+truck).fadeIn(200);

$(this).parent().parent().css("padding", "5px");
console.log($(this).parent().parent().css("padding", "5px"))
$(this).parent().find('.truck').css("margin-right", "3px");
});

我得到以下结果:

enter image description here

如您所见,添加的 div(带有“有 2 条路线”的那个)比另一个 div 低很多。更糟糕的是,当我通过扩展 div(ts8-10 等)和边框来更改此 HTML 的内容时:

<div class = "truck" id="day1_route1">
<div class="ts8-10">J Smith</div>
<div class="ts10-12">10-12 AM</div>
<div class="ts12-2">12-2 AM</div>
<div class="ts2-4">2-4 AM</div>
<div class="ts4-6">4-6 AM</div>
</div>

偏移量要差得多。它实际上位于第一个 div(带有 JSmith 的那个)的底部。

我知道这些被设置为“inline-block”,我已经尝试进行调整,如您所见,但似乎没有任何效果。我已经检查以确保没有额外的边距或填充问题,至少在我使用 Chrome 网络开发工具时没有显示。

谁能告诉我这是怎么回事?我究竟做错了什么?我怎样才能解决这个问题?

最佳答案

inline-block 元素根据 vertical-align 属性对齐,默认为 baseline。添加 vertical-align:top;.truck

(这是一个比使用 table-cell hack 更灵活、更直观的解决方案。inline-block 之后仍会按您预期的方式运行。)

关于javascript - Div 没有正确排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com