小编har*_*ino的帖子

css - 忽略行高的内联元素

我无法弄清楚为什么内联元素会line-height在某些浏览器中忽略(Chrome和Firefox会忽略它,但IE9不会忽略它).

这是一个例子:

<small style="line-height: 1; font-size: 26px;">Hello, World</small>
Run Code Online (Sandbox Code Playgroud)

预期的结果是元素高度为26px,但是,它被设置为31px.如果我将元素的显示设置为块,则高度正确设置为26px.

我读到的所有东西都说应该设置为线高,所以我无法想出这个.这是我在W3C上看到的内容:

计算行框中每个内联级别框的高度.对于替换元素,内联块元素和内联表元素,这是其边距框的高度; 对于内联盒子,这是他们的"线高".

资料来源:http://www.w3.org/TR/CSS2/visudet.html#line-height

html css

10
推荐指数
1
解决办法
8757
查看次数

观察在KnockoutJS中观察到的数组的属性

我正在研究ASP.Net MVC应用程序.我的操作是返回一个视图,其中的模型是一个对象数组(一个具有Name,ID,IsViewable等属性的类).

var model = @Model.ToJson(); // done via extension call
Run Code Online (Sandbox Code Playgroud)

我想观察这个数组,所以每当它改变时我都可以更新一个绑定到模板的表.

var viewModel = {
    accounts = ko.observableArray(model)
}
Run Code Online (Sandbox Code Playgroud)

这适用于添加和删除数组中的元素.但是,我还希望模板在其中一个帐户中的属性更改时更新(即名称或ID).

在KnockoutJS网站上,它说:当然,如果你愿意,你可以观察这些属性,但这是一个独立的选择.这是我无法弄清楚该怎么做的.

我试过这样的事情但没有用:

var viewModel = {
    accounts = ko.oservableArray([])
}

for(var i = 0; i < model.length; i++) {
    ko.observableArray(model[i]);
    viewModel.accounts.push(model[i]);
}
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以发布模板和表格.

model-view-controller templates observable knockout.js

9
推荐指数
1
解决办法
3596
查看次数

ASP.NET MVC - 处理没有返回对象的ajax操作的正确方法

我有一个控制器动作,它在数据库中做了一些工作,然后在它完成时退出.这个动作是通过jQuery的ajax函数调用的,dataType设置为'json'.

如果我将操作的返回类型设置为void,一切都会正常运行,除非Firefox在控制台中显示错误:"找不到元素".

如果期望XML回来,Firefox会抛出这个错误是有道理的.但是,即使我将ajax调用的dataType属性更改为"text",我仍然会收到错误.为了摆脱返回类型为void的错误,我必须将Response的ContentType设置为"text/html".或者我可以将返回类型设置为JsonResult并返回一个新的[empty] JsonResult对象.

我确信有几种方法可以使这个错误消失,但我想知道处理动作的正确方法,没有通过ajax调用返回值.

如果重要,我也使用异步控制器动作模式.

public void DoSomethingAsync(SomeJsonObjectForModelBinding model)
{
    // do some database things
}

public void DoSomethingCompleted()
{
    // nothing to do...
    // what should my return type be?
    // do I need to set the content type here?
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery

7
推荐指数
1
解决办法
4187
查看次数