精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
关于VS里的设计模式显示不正常的问题,是有多方面的,但这个问题并不是任何时候都需要解决。
面分别说明几种常见的:
比如我做了简单的导航条效果:我在单独的css文件里写了样式,但是因为某种需要,我的css文件加载是代码写进去的。比如:
这时候,如果切换到设计视图下,由于css的地址是一个变量,或者是需要代码执行出来才有结果的,设计视图不可能知道此时css的地址是什么,自然也就没有办法正确的载入css文件。所以预览的效果就变成了:
但实际上,我运行出来,正确执行之后的效果是:
因为css文件在预览的时候无法加载,执行之后,在生成页面的时候变量解释成了正确的地址之后效果就正确了。如果页面里,css连接的部分使用了某些动态的代码来实现,这样,这个问题根本就没有解决的必要。原因前面也说了,你怎么能要求vs去猜你的变量在还没运行时候的值呢?这才是变量的意义。
我们知道html有过好几个标准,而且不同的浏览器内核之间支持的部分还不完全相同。而vs中使用的是ie的内核。在谷歌浏览器中看到的效果有出入是很常见的问题。
比如同样的一个代码:
在IE和谷歌浏览器下运行出来的效果你看到差别在哪了吗?
毫无疑问的,VS的设计模式的确是使用的IE内核,请看设计模式下的预览:
所以,如果你的代码中存在这些兼容性不好的写法,那么是会出现一些不一致的。小的排版问题在内容比较多的页面里会产生一些互相的挤压和移位。导致整体页面变得乱七八糟。
如果是这种情况,那么你可以解决它,你要找到出问题的地方,替换成更兼容的写法。
由于IE从IE9开始才能较好的支持HTML5和CSS3(但是还是比不上谷歌和FF),所以如果你的页面主要是以这些新的技术为主的话,那么确实在设计视图下可能会出现预览不对的情况。
但是我想说的是,可视化的编辑器始终只是一个参考,特别是VS,他的设计模式主要是方便开发人员拖放一些服务器控件上来,和调整他们的大致位置(一些容器控件的包含之类的),VS本身也在设计视图的时候加入了大量的辅助线框和一些占位的但是最后不会显示出来的东西。所以基本上不会有哪个成熟的开发人员真的会用设计视图来完成UI设计。
应该这样讲,这个设计视图的最大作用是用来参考,但不必太在意其中的细节,该有的东西有了,互相之间的包含关系对了,剩下的就看运行出来的效果。最终效果始终是以运行出来后浏览器的效果为基准,所以一般都是直接在vs里调整html源码,然后运行了看效果。