直接看代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
<!--
/* 注释符号的作用是当浏览器不认识style标签的时候也不会把css代码显示到页面上 script标签内也可以如此用*/
body {
font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
background: #42413C;
margin: 0;
padding: 0;
color: #000;
} /* ~~ 元素/标签选择器 ~~ */
ul, ol, dl { /* 由于浏览器之间的差异,最佳做法是在列表中将填充和边距都设置为零。为了保持一致,您可以在此处指定需要的数值,也可以在列表所包含的列表项(LI、DT 和 DD)中指定需要的数值。请注意,除非编写一个更为具体的选择器,否则您在此处进行的设置将会层叠到 .nav 列表。 */
padding: 0;
margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
margin-top: 0; /* 删除上边距可以解决边距会超出其包含的 div 的问题。剩余的下边距可以使 div 与后面的任何元素保持一定距离。 */
padding-right: 15px;
padding-left: 15px; /* 向 div 内的元素侧边(而不是 div 自身)添加填充可避免使用任何方框模型数学。此外,也可将具有侧边填充的嵌套 div 用作替代方法。 */
}
a img { /* 此选择器将删除某些浏览器中显示在图像周围的默认蓝色边框(当该图像包含在链接中时) */
border: none;
} /* ~~ 站点链接的样式必须保持此顺序,包括用于创建悬停效果的选择器组在内。 ~~ */
a:link {
color: #42413C;
text-decoration: underline; /* 除非将链接设置成极为独特的外观样式,否则最好提供下划线,以便可从视觉上快速识别 */
}
a:visited {
color: #6E6C64;
text-decoration: underline;
}
a:hover, a:active, a:focus { /* 此组选择器将为键盘导航者提供与鼠标使用者相同的悬停体验。 */
text-decoration: none;
} /* ~~ 此固定宽度容器包含所有其它 div ~~ */
.container {
width: 960px;
background: #FFF;
margin: 0 auto; /* 侧边的自动值与宽度结合使用,可以将布局居中对齐 */
overflow: hidden; /* 此声明可使 .container 了解其内部浮动列的结束位置以及包含列的位置 */
} /* ~~ 以下是此布局的列。 ~~ 1) 填充只会放置于 div 的顶部和/或底部。此 div 中的元素侧边会有填充。这样,您可以避免使用任何“方框模型数学”。请注意,如果向 div 自身添加任何侧边填充或边框,这些侧边填充或边框将与您定义的宽度相加,得出 *总计* 宽度。您也可以选择删除 div 中的元素的填充,并在该元素中另外放置一个没有任何宽度但具有设计所需填充的 div。 2) 由于这些列均为浮动列,因此未对其指定边距。如果必须添加边距,请避免在浮动方向一侧放置边距(例如:div 中的右边距设置为向右浮动)。在很多情况下,都可以改用填充。对于必须打破此规则的 div,应向该 div 的规则中添加“display:inline”声明,以控制某些版本的 Internet Explorer 会使边距翻倍的错误。 3) 由于可以在一个文档中多次使用类(并且一个元素可以应用多个类),因此已向这些列分配类名,而不是 ID。例如,必要时可堆叠两个侧栏 div。您可以根据个人偏好将这些名称轻松地改为 ID,前提是仅对每个文档使用一次。 4) 如果您更喜欢在右侧(而不是左侧)进行导航,只需使这些列向相反方向浮动(全部向右,而非全部向左),它们将按相反顺序显示。您无需在 HTML 源文件中移动 div。 */
.sidebar1 {
float: left;
width: 180px;
background: #EADCAE;
padding-bottom: 10px;
}
.content { padding: 10px 0;
width: 600px;
float: left;
}
.sidebar2 {
float: left;
width: 180px;
background: #EADCAE;
padding: 10px 0;
} /* ~~ 此分组的选择器为 .content 区域中的列表提供了空间 ~~ */
.content ul, .content ol {
padding: 0 15px 15px 40px; /* 此填充反映上述标题和段落规则中的右填充。填充放置于下方可用于间隔列表中其它元素,置于左侧可用于创建缩进。您可以根据需要进行调整。 */
} /* ~~ 导航列表样式(如果选择使用预先创建的 Spry 等弹出菜单,则可以删除此样式) ~~ */
ul.nav {
list-style: none; /* 这将删除列表标记 */
border-top: 1px solid #666; /* 这将为链接创建上边框 – 使用下边框将所有其它项放置在 LI 中 */
margin-bottom: 15px; /* 这将在下面内容的导航之间创建间距 */
}
ul.nav li {
border-bottom: 1px solid #666; /* 这将创建按钮间隔 */
}
ul.nav a, ul.nav a:visited { /* 对这些选择器进行分组可确保链接即使在访问之后也能保持其按钮外观 */
padding: 5px 5px 5px 15px;
display: block; /* 这将为链接赋予块属性,使其填满包含它的整个 LI。这样,整个区域都可以响应鼠标单击操作。 */
width: 160px; /*此宽度使整个按钮在 IE6 中可单击。如果您不需要支持 IE6,可以删除它。请用侧栏容器的宽度减去此链接的填充来计算正确的宽度。 */
text-decoration: none;
background: #C6D580;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* 这将更改鼠标和键盘导航的背景和文本颜色 */
background: #ADB96E;
color: #FFF;
} /* ~~ 其它浮动/清除类 ~~ */
.fltrt { /* 此类可用于在页面中使元素向右浮动。浮动元素必须位于其在页面上的相邻元素之前。 */
float: right;
margin-left: 8px;
}
.fltlft { /* 此类可用于在页面中使元素向左浮动。浮动元素必须位于其在页面上的相邻元素之前。 */
float: left;
margin-right: 8px;
}
.clearfloat { /* 如果从 .container 中删除了 overflow:hidden,则可以将此类放置在 <br /> 或空 div 中,作为 #container 内最后一个浮动 div 之后的最终元素 */
clear:both;
height:0;
font-size: 1px;
line-height: 0px;
}
-->
</style></head> <body> <div class="container">
<!--左栏-->
<div class="sidebar1">
<ul class="nav">
<li><a href="#">链接一</a></li>
<li><a href="#">链接二</a></li>
<li><a href="#">链接三</a></li>
<li><a href="#">链接四</a></li>
</ul>
<p> 以上链接说明了一种基本导航结构,该结构使用以 CSS 设置样式的无序列表。请以此作为起点修改属性,以生成您自己的独特外观。如果需要弹出菜单,请使用 Spry 菜单、Adobe Exchange 中的菜单构件 或其它各种 javascript 或 CSS 解决方案创建您自己的菜单。</p>
<p>如果您想要在顶部进行导航,只需将 ul.nav 移到页面顶部并重新创建样式即可。</p>
<!-- end .sidebar1 --></div>
<!--中栏-->
<div class="content">
<h1>说明</h1>
<p>请注意,这些布局的 CSS 带有大量注释。如果您的大部分工作都在设计视图中进行,请快速浏览一下代码,获取有关如何使用固定布局 CSS 的提示。您可以先删除这些注释,然后启动您的站点。要了解有关这些 CSS 布局中使用的方法的更多信息,请阅读 Adobe 开发人员中心上的以下文章:<a href=http://www.adobe.com/go/adc_css_layouts">http://www.adobe.com/go/adc_css_layouts</a>。您可以先删除这些注释,然后启动您的站点。若要了解有关这些 CSS 布局中使用的方法的更多信息,请阅读 Adobe 开发人员中心上的以下文章:<a href=http://www.adobe.com/go/adc_css_layouts">http://www.adobe.com/go/adc_css_layouts</a>。</p>
<h2>清除</h2>
<p>由于所有列都是浮动的,因此,此布局对 .container 采用 overflow:hidden。此清除方法强制使 .container 了解列的结束位置,以便显示在 .container 中放置的任何边框或背景颜色。如果有任何大型元素突出到 .container 以外,该元素在显示时将被截断。您也不能使用负边距或具有负值的绝对定位将元素拉至 .container 以外,这些元素同样不会在 .container 之外显示。</p>
<p>如果您需要使用这些属性,则需要采用其它清除方法。最可靠的方法是在最后一个浮动列之后(但在 .container 结束之前)添加 &lt;br class="clearfloat" /&gt; 或 &lt;div class="clearfloat"&gt;&lt;/div&gt;。这具有相同的清除效果。</p>
<h3>脚注</h3>
<p>在列后面(但仍在 .container 内)添加脚注将导致此 overflow:hidden 清除方法失败。您可以将 .footer 放到第一个 .container 之外的另一个 .container 中,而不会影响效果。最简单的选择是从含有标题和脚注的布局开始,然后删除标题以便在该布局类型中利用清除方法。</p>
<!-- end .content --></div>
<!--右栏-->
<div class="sidebar2">
<h4>背景</h4>
<p>本质上,所有 div 中的背景颜色将仅显示与内容一样的长度。如果您希望采用分隔线(而不是颜色),请在 .content div 的侧面放置边框(但仅当其将始终包含更多内容时)。</p>
<!-- end .sidebar2 --></div>
<!-- end .container --></div>
</body>
</html>

div+css3列布局,带详尽注释的更多相关文章

  1. css实现div两列布局——左侧宽度固定,右侧宽度自适应(两种方法)

    原文:css实现div两列布局--左侧宽度固定,右侧宽度自适应(两种方法) 1.应用场景 左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应 2.思路 首先把这个问题分步解决,需要攻克以 ...

  2. css-3列布局

    三列布局的步骤是,先定义左右两侧,然后定义中间,并设置'中间'部分的'margin'属性.并且'中间'部分不用设置'width'.例如: <!DOCTYPE html PUBLIC " ...

  3. 一个DIV三列布局100%高度自适应的好例子(国外)

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W ...

  4. div 两列布局,左侧固定宽度px,右侧自适应宽度,满屏

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  5. 转载 html div三列布局占满全屏(左右两列定宽或者百分比、中间自动适应,div在父div中居底)

    原文地址:http://blog.csdn.net/duyelang/article/details/20558899 <p><!DOCTYPE html> <html ...

  6. DIV左、中、右三列布局的各类情况说明

    一.中间定宽.左.右侧百分比自适应: 1.HTML代码: <div id="left"> <div id="innerLeft"> &l ...

  7. HTML/CSS学习之 三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化

    第一种方法:绝对定位 <!DOCTYPE html> <html> <head> <title>三列布局</title> <link ...

  8. 第 28 章 CSS3 多列布局

    学习要点: 1.早期多列问题 2.属性及版本 3.属性解释 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 提供的多列布局,通过多列布局我们方便的创建流体的多列布局. 一.早期多列问题 我们 ...

  9. CSS3之多列布局columns详解

    CSS3之多列布局columns详解 CSS3提供了个新属性columns用于多列布局.基本属性如下: 1. columns: <'column-width'> || <'colum ...

随机推荐

  1. 【转】改善C#程序的建议2:C#中dynamic的正确用法 空间

    dynamic是FrameWork4.0的新特性.dynamic的出现让C#具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性.比如,即使你 ...

  2. 搭建Tornado+Nginx

    Tornado一个高效的异步非阻塞式的实时Web服务器,是Facebook旗下的 FriendFeed 网站开源Web服务器版本.但是它内置的HTTP服务器功能有限,不能在生产环境下使用. 在 Fri ...

  3. 【关于JavaScript】自动计算的实例

    在一些贸易业务Web系统中,某些页面需要提供实时的辅助计算功能,例如:员工录入货物的单价和数量的值,通过JavaScript的事件处理可以直接显示出总价. 如下图所示就是本例的运行效果图: 本例中也采 ...

  4. shuffle ----- mr 董西城

    http://dongxicheng.org/framework-on-yarn/apache-spark-shuffle-details/

  5. c语言技巧--长期更新

    1.   #define LOWER(c)            (unsigned char)(c | 0x20) 换成小写 2.   gcc -Wall -Werror //告警当成 错误来处理 ...

  6. 读懂Java中的Socket编程

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  7. lc面试准备:Repeated DNA Sequences

    1 题目 All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: &quo ...

  8. poj2151

    求每只队伍都回答出题目,且至少有一只队伍回答出n道题的概率存在性问题我们可以转化为任意性问题用P(每支队伍都回答出题目)-P(每只队伍回答的题目数小于n)然后我们可以递推求解 ..,..,..] of ...

  9. [BZOJ2173]整数的lqp拆分

    [题目描述] lqp在为出题而烦恼,他完全没有头绪,好烦啊… 他首先想到了整数拆分.整数拆分是个很有趣的问题.给你一个正整数N,对于N的一个整数拆分就是满足任意m>0,a1 ,a2 ,a3…am ...

  10. KK的新书《必然》对未来科技趋势的预言

    是他第一次在<失控>中提示我们--  要用生物学而不是机械学的角度看待这个世界.  是他第一次在<科技想要什么>提示我们--  科技本身就是一个生命体.  而在新书<必然 ...