javascript - 将内容添加到 inline-block-div 会以意想不到的方式弄乱布局

标签 javascript html css layout

<分区>

我有一段 HTML/CSS/JS,其行为方式与我不期望的一样。三个 div 显示为 inline-block,并给定了固定的高度和宽度。在这些 div 中还有我正在填充内容的其他 div。

我的期望是,内容将从顶部开始,到达 div 的底部,然后以某种方式溢出。至少我过去见过这样的情况。

但出于某种原因,我将在下面发布的代码片段中的代码表现不同 - 两个灰色框向下移动。如果能解释为什么会这样,我将不胜感激。也许这对我来说太明显了,现在看了两个小时的代码并摸不着头脑。

function demo() {
    document.getElementById("clock5").innerHTML = "test<br/>sometext";
}
.user {
    display: inline-block;
	width: 128px;
	height: 128px;
	font-size: 18pt;
	color: white;
    background-color: #999;
}

.present {
	background-color: green;    
}
<div id="users">
    <div class="user">
        <div class="username">user4</div>
        <div id="clock4"></div>
    </div>
    <div class="user present">
        <div class="username">user5</div>
        <div id="clock5"></div>
    </div>
    <div class="user">
        <div class="username">user6</div>
        <div id="clock6"></div>
    </div>
</div>
<hr />
<button type="button" onclick="demo()">demo</button>

只需单击底部的演示按钮即可查看我在说什么。

最佳答案

vertical-align 属性(几乎任何值,因为你固定了高度)设置为 .user 规则应该可以解决这个问题。

    function demo() {
        document.getElementById("clock5").innerHTML = "test<br/>sometexttest";
    }
    .user {
        display: inline-block;
    	width: 128px;
    	height: 128px;
    	font-size: 18pt;
    	color: white;
        background-color: #999;
        vertical-align: top;
    }

    .present {
    	background-color: green;    
    }
    <div id="users">
        <div class="user">
            <div class="username">user4</div>
            <div id="clock4"></div>
        </div>
        <div class="user present">
            <div class="username">user5</div>
            <div id="clock5"></div>
        </div>
        <div class="user">
            <div class="username">user6</div>
            <div id="clock6"></div>
        </div>
    </div>
    <hr />
    <button type="button" onclick="demo()">demo</button>

关于javascript - 将内容添加到 inline-block-div 会以意想不到的方式弄乱布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30494820/

相关文章:

javascript - 图例对话框的传单标记 HTML

javascript - 自动填充预定值的输入框

Javascript 日期比较忽略时间戳值

html - 输入元素宽度小于选择元素宽度

html - highchart center align tspan inside text 标签

html - 即使我使用 url ('../../images/image.png' 背景图像路径也不起作用)

javascript - 无法让我的 Javascript 在 Joomla 中工作

java - 将动态 Javascript 树结构加载到 JSP 中

javascript - AngularJS : get translate key in app. js

html - 制作 CSS 过滤器 : drop-shadow() goes through others elements