CSS的网页布局总结

简介: CSS的网页布局总结

一、CSS的网页布局

 网页布局结构按照列数可分为单列、两列和三列等几种布局。

1.单列布局

单列布局相对简单,很多复杂布局往往以单列布局为基础。单列布局中的对象位置可固定在左侧、浮在右侧或居中;宽度可用像素值固定、百分比或相对于字号设置。

举个例子

代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>用HTML5结构元素布局</title>
    <style type="text/css">
    body {
    margin: 0;
    padding: 0;
    min-width: 1000px;
    text-align: center; /*定义文本居中*/
    }
    
    header {
    width: 80%; /*自适应页面大小*/
    height: 80px;
    margin: 0px auto;
    background: #FFC;
    }
    
    article {
    width: 80%; /*自适应页面大小*/
    height: 240px;
    margin: 5px auto;
    background: #D0FFFF;
    text-align: left;
    }
    
    footer {
    width: 80%; /*自适应页面大小*/
    height: 100px;
    margin: 5px auto;
    background: #FFC;
    text-align: left;
    }
    </style>
    </head>
    <body>
    <header><h2>搜索引擎改变记忆方式 人们忘记网上找到的信息</h2></header>
    <article>
    Article:<p>美国科学家在7月15日出版的《科学》杂志上报告称,相关研究表明,谷歌等搜索引擎的出现改变了我们学习和记忆信息的方式。在一个遍及搜索引擎的新世界中,更好地理解记忆的工作原理有望改变各个领域的教学和学习方式。
    
    <p>哥伦比亚大学的心理学家贝齐•斯帕罗和同事进行了一系列实验后得出结论说,人们会忘记自己能在网上找到的信息,而记住自己认为无法在网上找到的信息。研究也发现,人们更容易记住在互联网的何处能找到这些信息,而不是……
    </article>
    <footer>
    Footer:<p> 更深层次的分析表明,当人们能够记住信息时,他们不会记住在何处能找到某些信息;而当人们无法记住信息本身时,才会倾向于记住在何处能找到这些信息。</p>
    </footer>
    </body>
    </html>
    

 

效果

snipaste_20220209_224648.png

 

2.两列布局

1.传统的两列布局

两列布局使用两个盒子,第一个盒子位置应在页面左侧,第二个盒子(应在页面右侧,可用fixed属性或float属性设定。

snipaste_20220209_225232.png

 

思考:如果左右两个盒子没有设置统一的高度“height: 400px”,页面效果会有什么变化呢?

  

2.用CSS3改进的盒布局

如果使用盒布局,需要设置左右两个盒子的外层容器的box属性,不需要使用float属性。

snipaste_20220209_225407.png

 

  1. 嵌套的2列布局

顶部固定,一列固定、一列变宽的布局是在博客类网站中很受欢迎的布局形式,这类网站常把侧边的导航栏宽度固定,而主体的内容栏宽度是可变的。

与盒布局相关的部分属性

snipaste_20220209_225830.png

 

下面例子是一个典型的嵌套2列布局,用到了盒布局中的弹性布局属性-webkit-box-flex。

代码

snipaste_20220209_230033.png
snipaste_20220209_230112.png
 

效果

snipaste_20220209_230128.png

 

3.使用CSS3盒布局的三列布局

三列布局可以使用float属性实现,对3个盒子(列)对象分别设定位置和宽度,再设置浮动属性即可。

#left{ height: 400px;

width: 120px;

float: left;

}

#right{ background:#FFC;

height: 400px;

width: 100px;

float: right;

}

#main{

background:  #D0FFFF;

height: 400px;

margin-left:120px;

}

  

1.简单的三列布局

下面例子是一个使用盒布局实现的三列布局。左右两列宽度固定,中间列自适应。

代码

snipaste_20220209_230607.png

snipaste_20220209_230637.png

 

效果

snipaste_20220209_230702.png

嵌套的三列布局

前面布局采用的策略是将盒子(div块)从上到下、从左到右依次排列。

snipaste_20220209_230815.png

代码实现

snipaste_20220209_230851.png

snipaste_20220209_230934.png

 

二、DIV+CSS布局的应用

在设计网页之前,首先对网页布局有一个总体思路,然后就可以用盒子对网页进行大致分块设定。

1.图文混排的实现

1.用DIV+CSS布局方式实现图文混排效果

snipaste_20220209_231118.png

 

举个例子

效果

snipaste_20220209_231209.png

代码实现
 

snipaste_20220209_233106.png

snipaste_20220209_233145.png

 

对上面例子进行改进

效果

snipaste_20220209_231453.png

代码实现

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <style type="text/css">
    body {
    font-size: 12px;
    background-color: #CCC;
    }
    
    .text {
    padding-top: 10px;
    margin: 5px;
    line-height: 150%;
    }
    
    div#first:first-letter {
    /*实现首字下沉*/
    float: left;
    font: 24px 黑体; /*注意font属性顺序*/
    padding: 0px 5px;
    }
    
    img {
    width: 97px;
    height: 136px;
    }
    
    .img {
    /*内层虚线框*/
    float: left;
    border: thin dotted #F00;
    margin: 2px;
    }
    
    .imgtag{
    /*图标题*/
    margin: 5px;
    text-align: center;
    clear: left;
    background-color: #E8FFFF;
    }
    
    .outer{
    /*外层实线框*/
    border: thin solid #00F;
    width: 214px;
    float: left;
    margin: 8px;
    }
    </style>
    </head>
    <body>
    <div id="first">美国著名的《连线》杂志,曾就一系列事物的发展前景向一批各自领域的专家征询。这些专家的看法可能有些武断,但令人欣赏地直奔主题。下面是他们对互联网络所预言的另一张时间进程表:</div>
    <div class="outer"> <!--图片部分 -->
    <div class="img"> <!-- 第一张图片及标识-->
    <div><img src="images/4.jpg"/></div>
    <div class="r"/>
    尼葛洛庞帝
    </div>
    </div>
    <div class="img"><!-- 第二张图片及标识-->
    <div><img src="images/5.jpg"/></div>
    <div class="imgtag">阿伦•凯</div>
    </div>
    <div class="imgtag"><!--总标识-->代表人物</div>
    </div>
    <div class="text">2001 远程手术将十分普及,最好的医学专家可以为全世界的人诊断治疗疾病。<BR>2001《财富500家》上榜者中将出现一批"虚拟企业"。<BR>2003
    全球可视电话将支持更普遍的"远程会议",企业家将通过网络管理公司。<BR>2003 "远程工作"将是更多的人主要的"上班"方式。<BR>2007 光纤电缆广泛通向社区和家庭,"无限带宽"不再停留在梦想中。<BR>2016
    出现第一个虚拟大型公共图书馆,虚拟书架上推满了虚拟书籍和资料。<BR></div>
    <div class="text">这些预言中,还包括了所谓"食品药片"、"冷冻复活"等匪益所思的言论。仅从与网络相关的预言看,人类全方位的"数字化生存"──包括工作、生活和学习等相当广泛的领域── 都不是那么遥远。</div>
    <div class="text">这一张时间进度表究竟能不能如期兑现?阿伦•凯(A.Kay)首先提出,又被尼葛洛庞帝引用过的著名论断说得好:"预测未来的最好办法就是把它创造出来。"
    当今的社会,预测再也不是消极地等待某个事实的出现,而是积极地促成这个事实。从这个意义上讲,创造和创新才是我们对21世纪电脑发展趋势最准确的预测,远胜过一切天才的预言。
    </div>
    <div class="text" style="text-align:right;">摘自《大师的预言》</div>
    </body>
    </html>

 

2.制作二级导航菜单

导航菜单通常分为横向导航菜单和纵向导航菜单。DIV+CSS布局中多通过控制列表样式制作导航菜单,主要用到<ul><li><a>等3组标记。

1.建立一级菜单

效果和代码实现

snipaste_20220209_231704.png

2.定义CSS样式

创建样式#menu,设置菜单整体大小等属性,并添加到<div>标记中;创建样式#menu ul,设置隐藏列表符号、清除边距等属性,代码如下。

效果和代码实现

snipaste_20220209_231808.png

 

3.创建二级菜单

二级导航菜单是指当鼠标经过一级菜单项时,会弹出相应的二级菜单,鼠标离开该项后二级菜单自动消失。接下来在上例的基础上制作二级菜单,以一级菜单项“CSS”为例,在其下添加二级菜单。

snipaste_20220209_231903.png

 

效果和代码实现

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <style type="text/css">
    #menu {
    width: 100px;
    border: 1px solid #999;
    }
    
    #menu ul {
    margin: 0px;
    padding: 0px;
    list-style: none; /*隐藏默认列表符号*/
    }
    
    #menu ul li {
    background: #06C;
    height: 26px;
    line-height: 26px; /*行距*/
    text-align: center;
    border-bottom: 1px solid #999;
    position: relative;
    }
    
    a {
    display: block;
    font-size: 13px;
    color: #FFF;
    text-decoration: none; /*隐藏超链接默认下划线*/
    }
    
    a:hover {
    color: #F00;
    font-size: 14px;
    }
    
    #menu ul li ul {
    display: none; /*默认隐藏*/
    top: 0px;
    width: 130px;
    border: 1px solid #ccc;
    border-bottom: none;
    position: absolute;
    left: 100px;
    }
    
    #menu ul li:hover ul {
    display: block;
    }
    
    #menu ul li:hover ul li a {
    display: block;
    }
    </style>
    </head>
    <body>
    <div id="menu">
    <ul>
    <li><a href="#">HTML</a></li>
    <li><a href="#">CSS</a>
    <ul>
    <li><a href="#">Selector</a></li>
    <li><a href="#">Use CSS File in HTML</a></li>
    <li><a href="#">Formatting Document</a></li>
    <li><a href="#">Layout</a></li>
    </ul>
    </li>
    <li><a href="#">JavaScript</a></li>
    <li><a href="#">XML</a></li>
    <li><a href="#">PHP</a></li>
    <li><a href="#">Ajax</a></li>
    </ul>
    </div>
    </body>
    </html>
    

 

snipaste_20220209_232117.png

 

4.横向二级导航菜单

 

效果和代码实现

snipaste_20220209_232527.png

 

snipaste_20220209_232552.png

snipaste_20220209_232507.png

三、总结

这部分内容是CSS的重中之重,学会了这一部分CSS掌握的就基本差不多了,这一部分就是CSS内容的综合应用,也是工作中常用的地方,请大家务必要重视,并且在理解的基础上多加练习。

相关文章
|
8天前
|
前端开发 UED
【专栏:HTML与CSS实战项目篇】创建一个具有复杂布局的电商详情页
【4月更文挑战第30天】构建复杂布局的电商详情页涉及页面结构规划、样式设计和交互效果实现。首先规划顶部导航栏、商品图片展示区、商品信息区、用户评价区和相关商品推荐区。在样式设计上,注重色彩搭配、字体选择、布局与间距及图片处理。交互效果包括图片放大、添加到购物车按钮、滚动监听和评论互动,以提升用户体验。实际开发中需考虑跨设备兼容性和用户体验优化。
|
8天前
|
缓存 前端开发 JavaScript
【专栏:HTML与CSS移动端开发篇】移动端网页性能优化策略
【4月更文挑战第30天】本文探讨了移动端网页性能优化的重要性,并提出了优化策略。HTML方面,建议精简结构、使用语义化标签、异步加载脚本和压缩文件;CSS优化包括精简样式、使用CSS3动画、媒体查询和压缩文件。其他策略涉及图片和字体压缩、缓存利用、数据压缩、减少HTTP请求及根据网络状态调整加载。综合运用这些策略能提升网页性能和用户体验。
|
8天前
|
编解码 缓存 前端开发
【专栏:HTML与CSS移动端开发篇】移动端网页布局与适配
【4月更文挑战第30天】本文探讨了如何使用HTML和CSS优化移动端网页布局与适配,强调响应式设计、灵活布局和媒体查询的重要性。针对移动设备的屏幕尺寸、操作方式、网络速度和性能差异,提出了断点选择、触摸优化、图像和性能优化等最佳实践。测试和调试、框架工具的应用也是关键步骤,以确保在多设备上提供优秀用户体验。开发者需持续学习新趋势和工具,以适应移动端发展。
|
8天前
|
前端开发 UED
【专栏:工具与技巧篇】CSS Sprites 与图标字体:优化网页图标加载
【4月更文挑战第30天】本文探讨了网页图标优化的两种方法:CSS Sprites和图标字体。CSS Sprites通过合并图标减少HTTP请求,提高加载速度,但维护复杂;图标字体则提供良好扩展性和定制性,易于调整大小和颜色。两者各有优劣,适用于不同场景。在实际应用中,应结合使用,根据项目需求灵活选择,以实现最佳性能优化和用户体验。
|
8天前
|
移动开发 缓存 前端开发
【专栏:HTML与CSS实践篇】网页性能优化:CSS与HTML的最佳实践
【4月更文挑战第30天】本文探讨了优化CSS和HTML以提升网页性能的最佳实践。HTML优化包括:精简结构、压缩代码、异步加载脚本和利用缓存。CSS优化则涉及:精简代码、合并文件、使用CSS Sprite、善用CSS3属性、避免@import及响应式设计。这些方法能加快加载速度,改善用户体验。
|
8天前
|
编解码 前端开发 UED
【专栏:HTML 与 CSS 实践篇】网页图标与字体图标的使用
【4月更文挑战第30天】本文探讨了网页设计中两种主要图标形式——传统图标和字体图标。传统图标(PNG, JPEG, GIF)视觉效果丰富但文件大,易影响加载速度且维护不便。字体图标占用空间小,易于维护和定制,但视觉效果相对简单,选择有限。实际应用中,两者可结合使用,以导航栏、操作按钮和提示信息为例说明了图标的重要性。设计师需注意兼容性、清晰度和性能优化问题,根据项目需求选择合适图标类型,以提升网页质量和用户体验。
|
8天前
|
开发框架 前端开发 搜索推荐
标题:【专栏:CSS进阶篇】CSS样式重置与框架:快速构建统一风格的网页
【4月更文挑战第30天】本文探讨了CSS样式重置和框架在确保网页跨浏览器一致性中的作用。样式重置通过消除默认样式差异实现一致外观,而CSS框架如Bootstrap提供预设样式和组件,加速开发并保证页面一致性。框架还有响应式设计和易于维护的优点,但也可能限制自定义和增加性能开销。选择使用哪种工具应根据项目需求、团队技能和设计复杂度来决定。开发者可结合使用两者以平衡灵活性和控制。
|
8天前
|
前端开发 UED 容器
【专栏:CSS进阶篇】CSS Grid布局:构建复杂的二维布局
【4月更文挑战第30天】CSS Grid布局是二维布局系统,适用于复杂页面结构,如页眉、主体和侧边栏。通过定义网格线和单元格,能轻松创建行和列。基本语法包括设置容器为grid容器,定义`grid-template-rows`和`grid-template-columns`。高级特性包括命名网格线、网格区域、网格间隙、重复网格线和自动填充。在实际应用中,CSS Grid能有效提升开发效率和用户体验,尤其在响应式设计和复杂布局场景下。
|
8天前
|
前端开发 开发者 容器
【专栏:CSS进阶篇】CSS Flexbox布局:实现灵活的响应式设计
【4月更文挑战第30天】CSS Flexbox是现代网页设计中创建响应式布局的关键工具,它提供了一种一维布局模型,使元素能灵活适应各种屏幕尺寸。通过设置容器的`display`属性为`flex`,开发者可以利用主轴和交叉轴调整元素排列和对齐方式。核心概念包括弹性项、伸缩性、空间分配和对齐。通过实例,如导航栏、卡片布局、图片画廊和响应式表单,展示了Flexbox在实现响应式设计中的应用。尽管需要注意浏览器兼容性,但掌握Flexbox能帮助开发者构建出功能强大且适应性强的界面。
|
8天前
|
前端开发 开发者 容器
【专栏:CSS基础篇】CSS定位与布局:从静态到浮动、定位
【4月更文挑战第30天】本文介绍了CSS定位与布局的基础,包括静态、相对、绝对、固定定位以及浮动。静态定位遵循HTML顺序,相对定位可在正常位置基础上偏移,不占用额外空间。绝对定位基于最近已定位祖先元素定位,脱离文档流。固定定位相对于浏览器窗口定位,无视页面滚动。浮动用于文字环绕图片等,可能导致父元素高度塌陷。Flexbox布局提供更灵活的元素排列和对齐方式,适配各种复杂布局需求。理解并掌握这些布局技术能提升网页设计的灵活性和响应性。