你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习: 
  第一种可能是你还没有理解CSS处理页面的原理。在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义、结构添加CSS。这篇文章将告诉你应该怎样把HTML结构化。 
  另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,、hspace、align="left"等等)束手无策,不知道该转换成对 应的什么CSS语句。  
  当你解决了第一种问题,知道了如何结构化你的HTML,我再给出一个列表,详细列出原来的表现属性用什么CSS来代替。

  结构化HTML 
  我们在刚学习网页制作时,总是先考虑怎么设计,考虑那些图片、字体、颜色、以及布局方案。然后我们用Photoshop或者Fireworks画出来、切割成小图。最后再通过编辑HTML将所有设计还原表现在页面上。 
  如果你希望你的HTML页面用CSS布局(是CSS-friendly的),你需要回头重来,先不考虑“外观”,要先思考你的页面内容的语义和结构。 
  外观并不是最重要的。一个结构良好的HTML页面可以以任何外观表现出来,CSS Zen Garden是一个典型的例子。CSS Zen Garden帮助我们最终认识到CSS的强大力量。 
  HTML不仅仅只在电脑屏幕上阅读。你用photoshop精心设计的画面可能不能显示在PDA、移动电话和屏幕阅读机上。但是一个结构良好的HTML页面可以通过CSS的不同定义,显示在任何地方,任何网络设备上。

  开始思考 
  首先要学习什么是"结构",一些作家也称之为"语义"。这个术语的意思是你需要分析你的内容块,以及每块内容服务的目的,然后再根据这些内容目的建立起相应的HTML结构。 
  如果你坐下来仔细分析和规划你的页面结构,你可能得到类似这样的几块: 
  标志和站点名称 
  主页面内容 
  站点导航(主菜单) 
  子菜单 
  搜索框 
  功能区(例如购物车、收银台) 
  页脚(版权和有关法律声明)

  我们通常采用DIV元素来将这些结构定义出来,类似这样: 
  <div id="header"></div> 
  <div id="content"></div> 
  <div id="globalnav"></div> 
  <div id="subnav"></div> 
  <div id="search"></div> 
  <div id="shop"></div> 
  <div id="footer"></div> 
  这不是布局,是结构。这是一个对内容块的语义说明。当你理解了你的结构,就可以加对应的ID在DIV上。DIV容器中可以包含任何内容块,也可以嵌套另一个DIV。内容块可以包含任意的HTML元素---标题、段落、图片、表格、列表等等。 
  根据上面讲述的,你已经知道如何结构化HTML,现在你可以进行布局和样式定义了。每一个内容块都可以放在页面上任何地方,再指定这个块的颜色、字体、边框、背景以及对齐属性等等。 
  使用选择器是件美妙的事 
  id的名称是控制某一内容块的手段,通过给这个内容块套上DIV并加上唯一的id,你就可以用CSS选择器来精确定义每一个页面元素的外观表现,包括标 题、列表、图片、链接或者段落等等。例如你为#header写一个CSS规则,就可以完全不同于#content里的图片规则。 
  另外一个例子是:你可以通过不同规则来定义不同内容块里的链接样式。类似这样:#globalnav a:link或者 #subnav a:link或者#content a:link。你也可以定义不同内容块中相同元素的样式不一样。例如,通过#content p和#footer p分别定义#content和#footer中p的样式。从结构上讲,你的页面是由图片、链接、列表、段落等组成的,这些元素本身并不会对显示在什么网络 设备中(PDA还是手机或者网络电视)有影响,它们可以被定义为任何的表现外观。 
  一个仔细结构化的HTML页面非常简单,每一个元素都被用于结构目的。当你想缩进一个段落,不需要使用blockquote标签,只要使用p标签,并对p 加一个CSS的margin规则就可以实现缩进目的。p是结构化标签,margin是表现属性,前者属于HTML,后者属于CSS。(这就是结构于表现的 相分离.) 
  良好结构的HTML页面内几乎没有表现属性的标签。代码非常干净简洁。例如,原先的代码<table width="80%" cellpadding="3" border="2" align="left">,现在可以只在HTML中写<table>,所有控制表现的东西都写到CSS中去,在结构化的HTML中, table就是表格,而不是其他什么(比如被用来布局和定位)。

  亲自实践一下结构化 
  上面说的只是最基本的结构,实际应用中,你可以根据需要来调整内容块。常常会出现DIV嵌套的情况,你会看到"container"层中又有其它层,结构类似这样: 
  <div id="navcontainer"> 
  <div id="globalnav"> 
  <ul>a list</ul> 
  </div> 
  <div id="subnav"> 
  <ul>another list</ul> 
  </div> 
  </div> 
  嵌套的div元素允许你定义更多的CSS规则来控制表现,例如:你可以给#navcontainer一个规则让列表居右,再给#globalnav一个规则让列表居左,而给#subnav的list另一个完全不同的表现。

  用CSS替换传统方法 
  下面的列表将帮助你用CSS替换传统方法: 
  HTML属性以及相对应的CSS方法 
  HTML属性

  CSS方法说明 
  align="left" 
  align="right" float: left; 
  float: right; 使用CSS可以浮动 任何元素:图片、段落、div、标题、表格、列表等等

  当你使用float属性,必须给这个浮动元素定义一个宽度。 
  marginwidth="0" leftmargin="0" marginheight="0" topmargin="0" margin: 0; 使用CSS, margin可以设置在任何元素上, 不仅仅是body元素.更重要的,你可以分别指定元素的top, right, bottom和left的margin值。 
  vlink="#333399" alink="#000000" link="#3333FF" a:link #3ff; 
  a:visited: #339; 
  a:hover: #999; 
  a:active: #00f; 
  在HTML中,链接的颜色作为body的一个属性值定义。整个页面的链接风格都一样。使用CSS的选择器,页面不同部分的链接样式可以不一样。 
  bgcolor="#FFFFFF" background-color: #fff; 在CSS中,任何元素都可以定义背景颜色,不仅仅局限于body和table元素。 
  bordercolor="#FFFFFF" border-color: #fff; 任何元素都可以设置边框(boeder),你可以分别定义top, right, bottom和left 
  border="3" cellspacing="3" border-width: 3px; 用CSS,你可以定义table的边框为统一样式,也可以分别定义top, right, bottom and left边框的颜色、尺寸和样式。 
  你可以使用 table, td or th 这些选择器. 
  如果你需要设置无边框效果,可以使用CSS定义: border-collapse: collapse; 
  <br clear="left"> 
  <br clear="right"> 
  <br clear="all"> 
  clear: left; 
  clear: right; 
  clear: both; 
  许多2列或者3列布局都使用 float属性来定位。如果你在浮动层中定义了背景颜色或者背景图片,你可以使用clear属性. 
  cellpadding="3" 
  vspace="3" 
  hspace="3" padding: 3px; 用CSS,任何元素都可以设定padding属性,同样,padding可以分别设置top, right, bottom and left。padding是透明的。 
  align="center" text-align: center; 
  margin-right: auto; margin-left: auto; 
  Text-align 只适用于文本. 
  象div,p这样的块级可以通过margin-right: auto; 和margin-left: auto;来水平居中

  一些令人遗憾的技巧和工作环境 
  由于浏览器对CSS支持的不完善,我们有时候不得不采取一些技巧(hacks)或建立一种环境(Workarounds)来让CSS实现传统方法同样的效 果。例如块级元素有时侯需要使用水平居中的技巧,盒模型bug的技巧等等。所有这些技巧都在Molly Holzschlag的文章《Integrated Web Design: Strategies for Long-Term CSS Hack Management》中有详细说明。 
  另外一个关于CSS技巧的资源站点是Big John和Holly Bergevin的“Position is Everything”。

  理解浮动行为 
  Eric Meyer的《Containing Floats》将帮助你掌握如何使用float属性布局。float元素有时候需要清除(clear),阅读《How To Clear Floats Without Structural Markup》将非常有帮助。

  更多帮助 
  已有的《CSS Discussion》列表是很好的资源,它收集了一个WiKiA讨论组的信息,其中包括CSS布局总结(css- discuss.incutio.com/?page=CssLayouts),CSS 技巧总结 (css-discuss.incutio.com/?page=CssHack) 以及更多。

转载于:https://www.cnblogs.com/cm186man/archive/2008/05/27/1208556.html

HTML结构化CSS网页布局入门指南相关推荐

  1. Google Webmaster Tools 结构化数据标记使用入门指南

    要想使自己的产品在Google搜索结果有一个好的排名,我们不仅可以在提高Google搜索排名上下功夫,也可以改善我们的产品在Google搜索结果页的结构化数据样式,这样就能够以更准确.更具吸引力的方式 ...

  2. 结合HTML5的语义化标签,运用DIV+CSS网页布局技术设计一个个人博客页面

    ** CSS+DIV页面布局 ** 结合HTML5的语义化标签,运用DIV+CSS网页布局技术设计一个个人博客页面.要求: (1)header标签定义页面头部区:nav标签定义导航区:div标签定义中 ...

  3. CSS Grid 布局完全指南(图解 Grid 详细教程)

    CSS Grid 布局完全指南(图解 Grid 详细教程) CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就 ...

  4. html css网页布局实例简单,Div+CSS网页布局项目实战一(含设计图、HTML和CSS源文件)...

    网页的基本结构 新建一个文件夹,命名为"DIV+CSS布局练习",在文件夹下新建两个空的记事本文档,输入以下内容: Div+CSS网页布局项目实战:页面布局与规划|www.125j ...

  5. python学习 day49之CSS网页布局

    CSS网页布局 一 网页布局方式 二 标准流 三 浮动流 什么是脱离文档流? 浮动元素脱标文档流意味着 注意点: 让两个元素显示到一行的 两种实现方式 方式一:修改显示方式为inline-block ...

  6. 054.CSS网页布局

    文章目录 一.网页布局方式 二.标准流 三.浮动流 (一)浮动流相关概念 1.什么是浮动流? 2.什么是脱离文档流? 3.什么是半脱离文档流? (二)如何使用浮动流 1.浮动元素贴靠问题 2.浮动元素 ...

  7. week9 day4 CSS网页布局

    week9 day4 CSS网页布局 一.网页布局方式 二.标准流 三.浮动流 3.1 什么是脱离文档流? 3.2 什么又是半脱离文档流 3.3 浮动元素贴靠问题 3.4 浮动元素字围现象 3.5 浮 ...

  8. Python框架篇:结构化的网页抓取框架-Scrapy

    前言 大家好,我是一身正气的辣条哥 今天主要跟大家分享一下Scrapy,Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的 ...

  9. 005-WebBuilder使用结构元素进行网页布局

    这个太零散了直接在代码上写的注释,第一份前端代码 <!DOCTYPE html> <html> <!--文档基本结构--><head><!--设置 ...

最新文章

  1. 带命令行参数的main函数的误解[到处转载的垃圾]
  2. linux下拒绝用户登录,Linux系统用户管理之禁止用户登录
  3. opencv和python的区别_所有这些OpenCV Python接口之间有何不同?
  4. html百度蜘蛛跳转代码,php搜索引擎劫持,百度蜘蛛劫持,搜索引擎蜘蛛劫持原理及代码分享...
  5. Felix的Nodejs代码风格
  6. REDIS 关键配置简述
  7. 紫书 习题8-14 UVa 1616(二分+小数化分数+精度)
  8. react-native 路由 react-native-router-flux
  9. Git报错:The file will have its original line endings in your working directory
  10. X86汇编语言从实模式到保护模式07:硬盘和显卡的访问控制
  11. 视频会议、视频聊天、手机视频、跨平台视频如何开发之流程篇
  12. android 简介动画,android动画简介
  13. NTKO Office乱码问题
  14. 【实践】地理探测器GeoDetector软件使用
  15. arcgis字段计算器python_ArcGIS字段计算器(Python篇)——字段查重等问题汇总
  16. 简单破解闪电视频转换王
  17. 海思Hi3559A GPIO操作
  18. word怎么删除最后一页空白页
  19. iOS之UITableView
  20. 惊!西游记内幕竟是这样的。

热门文章

  1. mysql带DISTINCT 关键字的查询
  2. 网站的高性能架构--性能测试指标
  3. 怎么优化GO语言服务的内存占用
  4. C++中#if 0 ... #endif的用法
  5. spring29: JdbcTemplate详解
  6. Python单引号、双引号和三双引号的区别
  7. linux 常用命令摘录
  8. POJ-1094 Sorting it All Out
  9. Trie树统计单词前缀
  10. 锐捷RG-S2126G交换机密码恢复实战