html - 如何使用 css 和 flexbox 修复输入的垂直间距

标签 html css

我在网站上工作,我直接从 html、css 和 javascript 对其进行编码。我有一个部分,其中我在 div 中有一个按钮,在一个 div 中有一个文本输入,在一个 div 中有另一个按钮堆叠在一起。出于某种原因,文本输入与顶部按钮之间的空间明显更小,而与底部按钮之间的空间更大。

我打算创建一个简单的示例,这样我就不必在此处发布我的所有代码,但我无法在我的元素之外复制它。我试过在 Chrome、Firefox、IE 和 Edge 中查看它,它们都存在同样的问题。我弄乱了包含的 div 的尺寸,并尝试了几个不同的 css 关键字,但没有成功。

这是我的 index.html:

<html>
    <head>
        <title>DnDnBeyond</title>
        <link rel="stylesheet" type="text/css" href="./style.css"/>
    </head>
    <body>
        <div class="container">
            <div class="ch_sheet">
                <div class="ch_header">
                    <div class="ch_info_wrapper">
                        <div class="ch_info">
                            <div class="ch_info_name" id="name">Gilan</div>
                            <div class="ch_info_secondary">
                                <span class="ch_info_label" id="race">Half Elf</span>
                                <span class="ch_info_label" id="class">Ranger</span>
                                <span class="ch_info_label" id="level">4</span>
                            </div>
                        </div>
                    </div>

                    <div class="ch_stats">

                        <!--STR-->
                        <div class="ch_stat">
                            <div class="ch_stat_header">Strength</div>
                            <div class="ch_stat_primary">
                                <span id="str_primary" class="ch_stat_primary_label">+1</span>
                            </div>
                            <div class="ch_stat_secondary" id="str_secondary">12</div>
                        </div>

                        <!--DEX-->
                        <div class="ch_stat">
                            <div class="ch_stat_header">Dexterity</div>
                            <div class="ch_stat_primary">
                                <span id="dex_primary" class="ch_stat_primary_label">+3</span>
                            </div>
                            <div class="ch_stat_secondary" id="dex_secondary">16</div>
                        </div>

                        <!--CON-->
                        <div class="ch_stat">
                            <div class="ch_stat_header">Constitution</div>
                            <div class="ch_stat_primary">
                                <span id="con_primary" class="ch_stat_primary_label">+3</span>
                            </div>
                            <div class="ch_stat_secondary" id="con_secondary">16</div>
                        </div>

                        <!--INT-->
                        <div class="ch_stat">
                            <div class="ch_stat_header">Intelligence</div>
                            <div class="ch_stat_primary">
                                <span id="int_primary" class="ch_stat_primary_label">+3</span>
                            </div>
                            <div class="ch_stat_secondary" id="int_secondary">16</div>
                        </div>

                        <!--WIS-->
                        <div class="ch_stat">
                            <div class="ch_stat_header">Wisdom</div>
                            <div class="ch_stat_primary">
                                <span id="wis_primary" class="ch_stat_primary_label">+1</span>
                            </div>
                            <div class="ch_stat_secondary" id="wis_secondary">12</div>
                        </div>

                        <!--CHA-->
                        <div class="ch_stat">
                            <div class="ch_stat_header">Charisma</div>
                            <div class="ch_stat_primary">
                                <span id="cha_primary" class="ch_stat_primary_label">+1</span>
                            </div>
                            <div class="ch_stat_secondary" id="cha_secondary">12</div>
                        </div>
                    </div>

                    <div class="ch_health_wrapper">
                        <div class="ch_health">
                            <div class="ch_health_label_wrapper">
                                <span class="ch_health_label" id="health_label">Hit Points</span>
                            </div>
                            <div class="ch_hp">
                                <div class="ch_hp_adjuster">
                                    <div class="ch_hp_adjuster_button">
                                        <button class="ch_hp_heal_button" id="heal_button">Heal</button>
                                    </div>
                                    <div class="ch_hp_adjuster_input_wrapper">
                                        <input type="number" class="ch_hp_adjuster_input"/>
                                    </div>
                                    <div class="ch_hp_adjuster_button">
                                        <button class="ch_hp_damage_button" id="damage_button">Damage</button>
                                    </div>
                                </div>
                                <div class="ch_hp_current">
                                    <div class="ch_hp_label">Current</div>
                                    <span class="ch_hp_number" id="current_hp">36</span>
                                </div>
                                <div class="ch_hp_sep">/</div>
                                <div class="ch_hp_max">
                                    <div class="ch_hp_label">Max</div>
                                    <span class="ch_hp_number" id="max_hp">44</span>
                                </div>
                            </div>
                            <div class="ch_death_saves"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

该部分位于第 86-96 行附近,包含的 div 具有类 ch_hp_adjuster。

以下是相关的 css 类:

.ch_health_wrapper {
    flex: 25%;
    text-align: center;
}

.ch_health {
    margin: 5px;
    display: inline-block;
    width: 250px;
    height: 90px;
    border: 2px solid #B89A67;
    border-radius: 15px;
}

.ch_health_label {
    padding: 4px 4px 6px 4px;
    font-size: 14px;
    text-transform: uppercase;
    font-family: Roboto Condensed,Roboto,Helvetica,sans-serif;
    font-weight: 700;
}

.ch_hp {
    display: flex;
}

.ch_hp_adjuster {
    flex: 30%;
    margin-left: 4px;
}

.ch_hp_adjuster_button {
}

.ch_hp_heal_button {
    width: 75px;
    background-color: white;
    color: #40d250;
    border: 1px solid #B89A67;
    border-radius: 3px;
    font-family: Roboto Condensed,Roboto,Helvetica,sans-serif;
    text-transform: uppercase;
    font-size: 10px;
    cursor: pointer;
}

.ch_hp_adjuster_input {
    width: 75px;
    border: 1px solid #B89A67;
    border-radius: 3px;
    font-size: 14px;
    text-align: center;
    box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);
}

.ch_hp_damage_button {
    width: 75px;
    background-color: white;
    color: #9C2B1B;
    border: 1px solid #B89A67;
    border-radius: 3px;
    font-family: Roboto Condensed,Roboto,Helvetica,sans-serif;
    text-transform: uppercase;
    font-size: 10px;
    cursor: pointer;
}

.ch_hp_display {
    flex: 70%;
}

.ch_hp_numbers {
    display: flex;
}

.ch_hp_label {
    color: #58180D;
    font-size: 10px;
    text-transform: uppercase;
    font-family: Roboto Condensed,Roboto,Helvetica,sans-serif;
    font-weight: 700;
}

.ch_hp_current {
    flex: 30%;
}

.ch_hp_number {
    font-size: 26px;
    font-weight: 500;
}

.ch_hp_sep {
    padding-top: 10px;
    flex: 10%;
    color: #58180D;
    font-size: 26px;
    text-transform: uppercase;
    font-family: Roboto Condensed,Roboto,Helvetica,sans-serif;
    font-weight: 700;
}

.ch_hp_max {
    flex: 30%;
}

很抱歉发布了这么多代码,但我不知道是什么导致了这里的问题。

如果您运行代码并查看右上角,您会看到我所说的间距问题。

非常感谢任何帮助。谢谢。

最佳答案

问题是第一个按钮上方还有一点空间 - 但您看不到它,因为它上面没有任何东西。有几种方法可以去掉按钮上方的这个小空间,但最快的方法是使用 line-height: 0;

例子:

.ch_hp_adjuster_button {
    line-height: 0;
    /* margin: 1px 0; */ /* Uncomment this if you still want a little spacing */
}

关于html - 如何使用 css 和 flexbox 修复输入的垂直间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57228222/

相关文章:

html - 如何在不使用表格的情况下格式化 HTML 表单

html - 如何将 2 个独立的浮子放在一起?

javascript - Bootstrap InputFile Initial Preview 将图像显示为原始大小

html - 在流畅的布局中居中文本

带有 outerheight 函数的 javascript 选择器没有返回任何东西,我也无法在其他任何地方选择选择器

javascript - 如何在调整大小和旋转后重叠两个 div 的中心?

javascript - 有没有办法找出 JavaScript 中更改 HTML 属性的行?

javascript - 使用 jQuery 进行实时会计更改

html - 如何并排设置两个div

css - 不同数量的div布局