嵌套DIV布局似乎与“布局结构与内容相分离”的原则冲突!
为了合理实现XHTML+CSS格式的布局,似乎免不了在网页内容的HTML文件中写入嵌套的<div>标记,以实现那些常用的布局形式。比如:
...
<body>
<div id="header">this is header</div>
<div id="main">
<div id="navigater">this is navigater</div>
<div id="content">this is content</div>
</div>
<div id="footer">this is footer</div>
</body>
...
然后在CSS文件定义各个div的风格属性。显然,其中名为"main"的<div>标签纯粹是为了控制"navigater"与"content"两个<div>的布局而加入的。这样一来,就形成了嵌套<div>的HTML代码。
问题是,将来如果更改网页布局,需要把navigater放到别的地方,例如"header"的上面。恐怕在修改CSS文件的同时,还必须修改体现内容的HTML文件以去掉那个嵌套的<div>形式。因为那个嵌套<div>结构其实是为了布局而写入HTML内容中的。
这样一来,就违背了XHTML+CSS标准提倡的“布局与内容分离”的原则!
我想,如果把文档结构看作是反映内容的逻辑结构,文档结构就应该是内容的逻辑框架,体现的是内容各个部分之间的逻辑关系,自然是属于内容的一部分。而布局结构应该看作是内容表现形式的物理结构,体现内容之间的排版与显示关系。
文档逻辑结构自然会有存在嵌套,比如,“联系信息”一项内容可以由“电话”与“Email”两项内容组成。可是,在表现内容时也许常常把“电话”与“Email”显示在页面不同的区域。如果,那些<div>标签完全根据文档的逻辑嵌套而形成对应嵌套的话,那么将“电话”与“Email”就会匡在一个<div>标签中,分开显示将非常困难。原因在于,<div>标签的嵌套更多关注的是布局结构,也就是表现形式的物理结构。
而用<div>标签来布局网页事实上是XHTML+CSS最推荐的布局方式。而且,为了控制布局快之间的结构,嵌套<div>随处可见,有的还是网页设计大师推崇的经验。
但,事实上嵌套<div>的确会把布局关系与内容绑在了一起。但不用嵌套<div>标签,恐怕只有在CSS文件中采用绝对定位和绝对尺寸等方法,才能把布局的位置定义好。不过,这样做对于那些需要根据内容来自适应位置和大小的区域又成了问题!
从哲学上看,XHTML+CSS是没法跳出布局与内容的连环阵的。似乎要做到真正的“内容”-“布局”-“表现”之间的分离,只有用XML+XSL+CSS才能做到!但那是最终的目标。 目前,XHTML+CSS方式的可视化开发工具非常罕见,顶多用些CSS设计工具来编写式样表,然后预览调试。因此,XHTML+CSS的开发效率往往比较低。
而XSL的编写是纯手工工艺活儿,其更趋向于编写程序的思维。对于那些不熟悉编程的设计师来说,从可视化工具转到纯编码的思维方式有点难度。难说将来会出现CSS甚至XSL的可视化开发工具,但就目前来说,XML+XSL+CSS开发效率会很低!
未来是美好的,但过渡是痛苦的,熬吧......
李战(leadzen).深圳 2004-12-29
分享到:
相关推荐
很多时候,线性布局需要嵌套其他布局,比如线性布局,相对布局等
实现div+css的整体布局的实例,可以更好地理解这种布局,其中关于float用的比较多,还有div居中处理
全网唯一有用的解决方案!彻底解决VerticalViewPager嵌套RecyclerView引起的滑动冲突!
DIV+CSS布局,DIV嵌套使用,Div上下,左右布局,居中显示。
嵌套DIV布局,会牵扯到CSS的position属性 如果内层DIV将position属性设置为absolute,并设置left,和top等属性,还需要考虑外层DIV的position属性设置。 absolute:absolute绝对定位,直接指定top、left、right、...
千万别下载,csdn私自修改我设置的积分(还不能改回来),去https://github.com/czyt1988/czyBlog/tree/master/tech/QDockWidget_VSStudioMode,下载源码。具体可见:...
最近在做作业中需要在不用iframe的情况下嵌套页面,所以只好在div中嵌套,用的是jquery方法。 复制代码代码如下: [removed] $(document).ready(function() { $(“#button”).click(function() { $(“#content”)....
10.1.2 div与span的区别 10.2 盒子模型 10.2.1 盒子模型的概念 10.2.2 border 10.2.3 padding 10.2.4 margin 10.3 元素的定位 10.3.1 float定位 10.3.2 position定位 10.3.3 z-index...
手动实现仿京东发现页面效果,使用布局嵌套完成,包括ScrollView+TabLayout+ViewPager+RecyclerView,最后有遗留问题需要处理。详情见博客https://blog.csdn.net/hq942845204/article/details/88844272
RecyclerView 嵌套 RecyclerView 滑动冲突解决----------------------- 本人亲测
Cell嵌套UICollectionView自动布局获取高度示例
NULL 博文链接:https://xieruilin.iteye.com/blog/1473020
在项目中遇到的布局问题,解决后拿出来与大家分享一下。
本案例中标准的Fragment导航嵌套,有很好的学习价值,包括底部和顶部导航的嵌套
div标签的使用,自己用所学的一点点html做的
列表内嵌套网格布局,可以在一个listview中内置一个网格视图的布局的,该源码项目也是一个ListView中嵌套GridView的示例,喜欢的朋友可以把这个收藏起来吧。
RecyclerView嵌套RecyclerView滑动冲突
采用flash+div 构建的一个小小的网页 里面嵌套了苹果界面的幻灯片...
ViewPagerScrollView嵌套冲突问题,eclipse版