HTML前端入门归纳——布局

  本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳。

  本系列将主要分为4个模块:

    控件

    样式

    布局

    JavaScript

  根据多年WPF的开发经验,界面就是控件及样式与布局的组合,再加上代码来控制交互逻辑,本期先对HTML常用布局方法进行归纳。

  

  控件元素

  块元素

  块元素的显示通常会以新起一行的方式进行展示吗,比如<h><ul><p>

1  <body>
2     <h1>这里我演示是块元素</h1>
3     <p>这里我演示是块元素</p>
4     <ul>这里我演示是块元素</ul>
5   </body>

  内联元素

  内联元素通常会在一行内进行显示,比如<b><a><img>

<b>这里我演示是块元素</b>
<a>这里我演示是块元素</a>
<img src="pika.png"></img>

显然这些默认元素并不能满足我们对控件元素布局的要求,下面我们就以最常用的容器<div>来讲解如何灵活的进行布局。

  通过float进行<div>布局

  首先需要知道,<div>是块级元素,在页面上会独占一行,自上而下排列,这种排列方式被称为流,或标准流。

  需要了解的另一个概率就是float(悬浮),悬浮属性可以让块元素脱离标准流,悬浮在标准流之上。

1 <div id="prat1">块1</div>
2 <div id="prat2">块2</div>
3 <div id="prat3">块3</div>
4 <div id="prat4">块4</div>

 1 #prat1 {
 2   width: 100px;
 3   height: 100px;
 4   background: blue;
 5 }
 6
 7 #prat2 {
 8   width: 100px;
 9   height: 100px;
10   background: red;
11 }
12
13 #prat3 {
14   width: 200px;
15   height: 200px;
16   background: yellow;
17 }
18
19 #prat4 {
20   width: 100px;
21   height: 100px;
22   background: green;
23
24 }

  此处将块3变大是为了更好的看到悬浮效果,我们将块2添加float:left 或者float:right,将得到如下两种结果

                                                       

  如图,块1和块3块4还在流里按照块元素进行显示,但块2已经脱离流,但所处行位置未发生变化。

  清除浮动的关键字是clear,官方定义如下:

语法:

clear : none | left | right | both

取值:

none  :  默认值。允许两边都可以有浮动对象

left   :  不允许左边有浮动对象

right  :  不允许右边有浮动对象

both  :  不允许有浮动对象

  在div2的css样式中添加clear:right,理解为不允许div2的右边有浮动元素,如果div3也是浮动元素,div3会自动下移一行来满足规则。但这种理解是不对的,这样做没有任何效果,原因如下:

对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

  我们用例子来讲解。

首先我们可以给<div>加上float属性

 1 #prat1 {
 2   width: 100px;
 3   height:100px;
 4   background: blue;
 5   float:left;
 6 }
 7
 8 #prat2 {
 9   width: 100px;
10   height: 100px;
11   background: red;
12   float: left;
13 }
14
15 #prat3 {
16   width: 100px;
17   height: 100px;
18   background: yellow;
19   float: left;
20 }
21
22 #prat4 {
23   width: 100px;
24   height: 100px;
25   background: green;
26   float:left;
27
28 }

  

现在我们可以尝试以下clear属性,比如让第二块清除浮动clear:left,会怎样呢

  如果我们给第二块清除浮动clear:right会怎样,我们看看效果

  没有任何效果,就是因为块2的clear不会对块3产生影响。

  那我们如何让块1块2块3块4按照2*2的方阵进行显示呢,方法如下:

  ①    块1、块2、块3、块4 Float:left    块3clear:left     或者

  ①    块1块2块3块4 float:right     块3clear:right

                                         

  

  另外还有其他方式进行布局,比如适用于父容器的flex,这里就不进行讲解。

  页面布局

  看到这里大家可能会问,前面将的都是将几个小方块进行布局,要怎样才能实现对一个网页的布局,其实非常简单,width/height属性除了可以赋值为数字比如100px外,还可以赋值百分号比如10%,这个即所在容器长或宽的百分比。我们可以通过这个还实现将整个网页撑满。

  就以前面的块1块2块3块4为例,比如显示4行,第一行高占10%,第二行高20%,第三行高30%,第四行高40%,宽度设100%,即可得到如下效果

 1 #prat1 {
 2   width: 100%;
 3   height: 10%;
 4   background: blue;
 5 }
 6
 7 #prat2 {
 8   width: 100%;
 9   height: 20%;
10   background: red;
11 }
12
13 #prat3 {
14   width: 100%;
15   height: 30%;
16   background: yellow;
17 }
18
19 #prat4 {
20   width: 100%;
21   height: 40%;
22   background: green;

  

  奇怪了为什么height设置百分比没有效果呢,原因是因为百分比是相对父控件的比例,父控件默认尺寸是0,会被撑到所有子控件的尺寸。

  所以要解决这个问题,首先要处理父控件<body>的尺寸问题,采用绝对定位能够让父控件占满整个页面。如下

1 body {
2   position: absolute;
3   top: 0;
4   bottom: 0;
5   left: 0;
6   right: 0;
7 }

  

  再运行到的效果如下:

  

  如果要做成顶部固定高度header,左边20%宽度guider,右边80%宽度content,下边固定高度bottom的形式,即实现下面这种布局,可以这么做

  

  首先,先将块2悬浮左,块3右悬浮,块4左悬浮并清除左右两边的悬浮属性(实现单独起一行的作用)。

 1 #prat1 {
 2   width: 100px;
 3   height: 100px;
 4   background: blue;
 5 }
 6
 7 #prat2 {
 8   width: 100px;
 9   height: 100px;
10   background: red;
11   float:left;
12 }
13
14 #prat3 {
15   width: 100px;
16   height: 100px;
17   background: yellow;
18   float:right;
19 }
20
21 #prat4 {
22   width: 100px;
23   height: 100px;
24   background: green;
25   clear:both;
26 }

  

  现在来设置宽高,先将<body>占满整个窗体,假设块1的高度为200px,块2的宽度为20%,块3宽度80%,块4的高度为250px.则可进行如下设置,注意:块2块3在同一行,如果宽度之和超过100%,会导致块3另起一行

  

  块4因为块2块3的高度与整个页面一致所以需要滚动到下面才可显示。

  通常情况下height较少使用百分数来设置,一般会根据内容来进行动态调整。

  布局就讲到这里,到现在为止我们已经可以进行网站页面的布局已经控件的布局了,后面我将对控件如何调用后台接口来进行讲述。

  

原文地址:https://www.cnblogs.com/chenchaochao034/p/10925589.html

时间: 2024-10-17 12:31:00

HTML前端入门归纳——布局的相关文章

HTML前端入门归纳——样式

本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳. 本系列将主要分为4个模块: 控件 样式 布局 JavaScript 根据多年WPF的开发经验,界面就是控件及样式与布局的组合,再加上代码来控制交互逻辑,本期先对HTML常用的样式属性进行归纳. 选择器 选择器用于对HTML控件及css的样式进行匹配,常用的选择器有如下几种: id选择器 以下的样式规则应用于元素属性 id="para1": 1 #para1 2 {

转摘_结合个人经历总结的前端入门方法

转载请注明出处: https://github.com/qiu-deqing/FE-learning Table of Contents generated with DocToc FE-learning 必备基础技能 基本开发工具 学习方法和学习目标 入门之路 继续提高 一些个人经历 LingyuCoder的学习经历 工具 技能 语言基础 进阶 项目 未来 其他 入门书 一些不错的网站 历程 MrRaindrop的学习经历 缘起 项目,下一个项目 收集癖和知识管理 跟对神 读书 前端的定位 最

前端入门方法(大全)

转载请注明出处: https://github.com/qiu-deqing/FE-learning Table of Contents generated with DocToc FE-learning 必备基础技能 基本开发工具 学习方法和学习目标 入门之路 继续提高 一些个人经历 LingyuCoder的学习经历 工具 技能 语言基础 进阶 项目 未来 其他 入门书 一些不错的网站 历程 MrRaindrop的学习经历 缘起 项目,下一个项目 收集癖和知识管理 跟对神 读书 前端的定位 最

HTML入门归纳--JavaScript

本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳. 本系列将主要分为4个模块: 控件 样式 布局 JavaScript 根据多年WPF的开发经验,界面就是控件及样式与布局的组合,再加上代码来控制交互逻辑,本期先对JavaScript基本知识进行归纳. 字符串 数组 对象 名称:值对被称为属性. var person = {firstName:"Bill", lastName:"Gates", ag

web前端入门与java入门

关于web前端入门一.软件结构划分1.C/S结构:Client(客户)-Server(服务器)之间的交互.特点:客户端的软件必须升级才能使用服务器高版本的功能.例如:阿里巴巴等.2.B/S结构:Browser(浏览器)-Server(服务器)之间的交互.特点:浏览器端的软件无需特定的升级就可访问服务器端的网站.例如:网易新闻等.JavaWeb/EE均基于B/S结构.二.网站基本认识基于B/S结构的应用都叫网站.组成:由很多的html标签组成.三.W3C组织规范了html.css.js(javas

Thinkphp入门 四 —布局、缓存、系统变量 (48)

原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调节器 TP变量调节器:普通的php函数 (count  strlen   str_replace) 定义:前者的输出,是后者的输入 [子模板包含] 当前模块彼此包含 <include  file=”模板名称”  /> [使用布局layout] 1. 开启布局,配置变量信息config.php 2.

Web前端入门学习(2)——HTML常用标签

HTML标签 a标签 a标签是一个超链接标签,用于从一个页面链接到另一个页面.在<Web前端入门学习(1)>有提到过4个伪类,分别是a:link.a:visited.a:hover.a:active. a:link代表的是未访问过的链接,当访问者首次打开网页未点击链接时,所表现的形式: a:visited代表的是访问过的链接,相对于link,是访问者点击了连接后,所表现的形式: a:hover代表的是当鼠标经过链接上面时所表现的形式,鼠标经过后,链接会有所变化: a:active代表的是当用户

Web前端入门学习(5)——浮动原理及清除浮动

浮动原理及清除浮动 上节回顾 在上节的<Web前端入门学习(4)-- 块级元素和行内元素之特征与转换>中(http://cherry360.blog.51cto.com/12176744/1863945),介绍了块级元素和行内元素的特征,及粗略介绍了如何进行转换.加上display属性,可以指定元素的类型,如display:block.display:inline,以及display:inline-block.当然用得最多的是最后一个display:inline-block.结合例子来看: 例

web前端入门:一小时学会写页面

一小时学会写页面 作为一个懒癌晚期患者,总是习惯找各种简单的解决问题的方法,也习惯性把问题简单化,所以今天想分享给大家简单的web前端入门方法.既然题目已经定了一个小时那么废话就不多说了,计时开始 1.什么是前端 简单来说,前端就是做网页(大神勿喷,本文一切从简) 2.前端技术 html,是首字母缩写,具体意义请百度,大家要记住“t”代表text,ok你们没有想错,text就是文本文件text,好了准备工作做好了,现在开始做网页 3.我们的第一个网页 请身边有电脑的小伙伴和我一起开始,在桌面鼠标