作为Asp.NET 程序猿,我们经常会遇到客户端HTML 元素与 WebPage Server端控件互操作的情景。如果没有很好的掌握两种技术的细节就很容易发生一些“莫名其妙的错误”。
我最近犯的一个错误就是在将服务器控件的Visible属性赋值为False后,在客户端用Jquery 选择器获取 服务端控件生成的 HTML元素,在几次调试没有得到预期效果后,我利用IE F12开发工具->DOM资源管理器发现DOM中并不存在这个元素。在MSDN上查看Visible定义发现。当其属性值设置为False后,IIS在响应客户端WebPage请求时并不会生成对应的页面元素。
知其然更要知其所以然,现将CSS样式属性display的具体定义,陈列如下以备温故知新。
浏览器支持
所有主流浏览器都支持 display 属性。
定义和用法
display 属性规定元素应该生成的框的类型。
可能的值
值 | 描述 |
---|---|
none | 此元素不会被显示。 |
block | 此元素将显示为块级元素,此元素前后会带有换行符。 |
inline | 默认。此元素会被显示为内联元素,元素前后没有换行符。 |
inline-block | 行内块元素。(CSS2.1 新增的值) |
浏览器支持
所有主流浏览器都支持 visibility 属性。
定义和用法
visibility 属性规定元素是否可见。
提示:即使不可见的元素也会占据页面上的空间。请使用 "display" 属性来创建不占据页面空间的不可见元素。
说明
这个属性指定是否显示一个元素生成的元素框。这意味着元素仍占据其本来的空间,不过可以完全不可见。值 collapse 在表中用于从表布局中删除列或行。
可能的值
值 | 描述 |
---|---|
visible | 默认值。元素是可见的。 |
hidden | 元素是不可见的。 |
collapse |
当在表格元素中使用时,此值可删除一行或一列,但是它不会影响表格的布局。被行或列占据的空间会留给其他内容使用。如果此值被用在其他的元素上, 会呈现为 "hidden"。 |
inherit | 规定应该从父元素继承 visibility 属性的值。 |
注:以上关于 display 与 visiblity知识均摘于http://www.w3school.com.cn/css/index.asp
当谈论display 和 visibility 属性时,顺便提及disabled属性,当我们想要“禁用”一个元素,直到符合某个条件时,就可以设置元素的disabled=“disabled”;当符合条件后通过 .removeAttr("disabled") 解除元素的禁用状态。
注释:disabled 属性无法与 <input type="hidden"> 一起使用。