我确定以前曾以某种形式或其他方式询问过,但我找不到答案.
我有一些嵌套的div
<div class="parent">
<div class="child">A</div>
</div>
Run Code Online (Sandbox Code Playgroud)
并且孩子有显示:内联块和溢出:隐藏
.parent{
background-color:red;
}
.child{
background-color:green;
display:inline-block;
overflow:hidden;
}
Run Code Online (Sandbox Code Playgroud)
它会像这样呈现:

您可以注意到父母比孩子高5px.
额外高度来自哪里?
以下是示例:http://jsfiddle.net/w8dfU/
编辑: 我不想删除display:inline-block或overflow:hidden,这是一个简单的例子来说明问题,但在我的真实布局中我需要它们.我只是想明白为什么会出现这个额外的高度.是否指定它应该是这样的?这是其他一些css功能的结果吗?
在下面,您可以在Window Phone Unit Test App中看到一些用Mstest编写的代码。
我有一个称为TestMethod1的普通TestMethod 和一个名为TestMethod2的DataTestMethod ,它具有三个DataRows:
[TestClass]
public class UnitTest1
{
[TestInitialize]
public void Setup()
{
Debug.WriteLine("TestInitialize");
}
[TestMethod]
public void TestMethod1()
{
Debug.WriteLine("TestMethod1");
}
[DataTestMethod]
[DataRow("a")]
[DataRow("b")]
[DataRow("c")]
public void TestMethod2(string param)
{
Debug.WriteLine("TestMethod2 param=" + param);
}
[TestCleanup]
public void TearDown()
{
Debug.WriteLine("TestCleanup");
}
}
Run Code Online (Sandbox Code Playgroud)
如果以调试模式运行测试(在Visual Studio中为Ctrl + R,Ctrl + T),则会在输出面板中看到以下内容:
TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 param = c
TestMethod2 param = a
TestMethod2 param = b
TestCleanup
如您所见,TestInitialize仅执行了两次:一次在TestMethod1之前,一次在带有参数c的TestMethod2之前。
对于TestCleanup来说是相同的,它在TestMethod1之后执行一次,并在最后一次执行一次。
我希望无论测试是TestMethod还是DataTestMethod,在每次测试之前和之后都要执行TestInitialize和TestCleanup。否则,一项测试的执行会影响下一项测试。
我希望它是这样的: …
c# unit-testing windows-phone vs-unit-testing-framework windows-phone-8