Web前端初步——布局0

大笑脱离搬砖,走深度路线大笑——对自己的期待

布局思想——利用CSS

在设计网页或者仿制一个网页前,弄清楚其网页布局是至关重要的。就像你学习写一个字,总要弄清楚它是上中下结构还是左右结构吧,否则贸然下手,只能是涂鸦喽~

就像字的通用结构无非有独体字(大 )、左右结构(纺)、左中右结构(树)、 上下结构(雷)、上中下结构(意)、 半包围结构(同)、 全包围结构(围 )、品字形结构(晶)等这几种,就我现在的认识范畴,大齐把通用的布局结构化为一列布局、两列布局、及混合布局这三种,其余复杂的布局均是由这三种结构嵌套形成。

   先介绍下涉及到的额外tip点:自适应概念——当你缩小|扩大浏览器界面时,其布局模块也同比例缩小|扩大。

                                                       清除初始格式——body{margin:0;padding: 0}
                                                       设置div居中   ——margin: 0 auto

                                                       设置自适应宽度|高度——使用百分比%;如设置宽度自适应,width:30%

                                                       设置固定宽度|高度——使用像素px;如设置固定宽度,width:500px,或者亦可在其外加一个div作为其父盒子。

一:一列布局(由顶部+主体+底部三部分构成)

a、界面布局展示:


b、html+CSS实现一列布局的代码结构及不断进阶

      第一种:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一列布局</title>
    <style type = "text/css">
    body{margin:0;padding: 0}
    div{text-align:center;font-size:30px;}
    .top{height:100px;background: #F66060}
    .mainbody{width:50%;height:800px;background:#F68950;margin: 0 auto}
    .foot{width:50%;height:50px;background: #957AEA;margin: 0 auto}

    </style>
</head>
<body>
<div class="top">top</div>
<div class="mainbody">mainbody</div>
<div class="foot">foot</div>

</body>
</html>
 

在这种方法下,.top{}体中未设置width,使其自适应浏览器宽度,而采用的width:50%的形式,表明其宽度为浏览器自适应宽度的50%。当你缩小或扩大浏览器时,top,mainbody和footy也会同比例改变。

   第二种:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>一列布局v0</title>
    <style type = "text/css">
    body{margin:0;padding: 0}
    div{text-align:center;font-size:30px;}
    .top{height:100px;background: #F66060}
    .mainbody{width:900px;height:800px;background:#F68950;margin: 0 auto}
    .foot{width:900px;height:50px;background: #957AEA;margin: 0 auto}
    </style>
</head>
<body>
<div class="top">top</div>
<div class="mainbody">mainbody</div>
<div class="foot">foot</div>
</body>
</html>

红色标记即为与第一种方法不同的地方,width属性通过px值设为固定值,不随浏览器的缩小或扩大而改变。

二、两列布局(left+right两部分组成)

a、页面布局展示

第一种方法下实现的界面:


第二种方法实现的界面:


b、html+CSS实现两列布局的代码结构及不断进阶

第一种方法:自适应宽度

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两列布局v0</title>
<style type="text/css">
        body{margin: 0;padding: 0}
div{text-align: center;font-size: 30px}
.left{width:30%;height:500px;background: #66DDA2;float: left;}
.right{width:70%;height:500px;background: #D6D838;float: right;}

</style>
</head>
<body>
<div class="left">left</div>
<div class="right">right</div>
</body>
</html>

第二种方法:固定宽度值(目前多使用)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两列布局v1</title>
<style type="text/css">
body{margin: 0;padding: 0}
div{text-align: center;font-size: 30px}
.main{width:800px;height:500px;margin:0 auto;}
.left{width:30%;height:500px;background: #5F5ACD;float: left;}
.right{width:70%;height:500px;background: #D35337;float: right;}

</style>
</head>
<body>
<div class="main">
<div class="left">left</div>
<div class="right">right</div>

</div>
</body>
</html>

当然,你也可以将蓝色部分代码替换为:

                 .left{width:240px;height:500px;background: #5F5ACD;float: left;}
.right{width:560px;height:500px;background: #D35337;float: right;}

会得到同样的效果。

拓展:

那么,你是否会自己编写多列布局了呢?这里,我给出一个四列布局的代码示范:

彩蛋:

a 页面展示:


b.代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>四列布局</title>
<style type="text/css">
body{text-align: center;font-size: 30px}
div{margin: 0;padding: 0}
.main{width:800px;height:500px;margin: 0 auto}
.col0{width:20%;height:500px;background: #EFCDDA;float: left}
.col1{width:24%;height:500px;background: #F66BAC;float: left}
.col2{width:28%;height:500px;background: #F14646;float:left;}
.col3{width:28%;height:500px;background: #F60707;float:left;}
</style>
</head>
<body>
<div class="main">
<div class="col0">col0=20%</div>
<div class="col1">col1=24%</div>
<div class="col2">col2=28%</div>
<div class="col3">col3=28%</div>
</div>
</body>
</html>

那么,让我们加大一下难度,如果要求如下:

第一:总体布局要求不变,居中,宽度为800px,高度为500px

第二:四列高度均为500px

第三:col0宽度为100px,col2宽度为200px,col3宽度为100px,

第四:col1宽度根据输入文字的长短自适应宽度

a、界面展示


b、代码——去掉浮动方法,通过相对定位和绝对定位以及margin相关设置加以实现

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>四列布局</title>
<style type="text/css">
body{text-align: center;font-size: 20px}
div{margin: 0;padding: 0}
.main{width:800px;height:500px;margin: 0 auto;position:relative;}
.col0{
width:100px;height:500px;background: #EFCDDA;
position: absolute;top:0;left:0;
}
.col1{height:500px;background: #F66BAC;margin: 0 300px 0 100px}
.col2{width:200px;height:500px;background: #F14646;
position: absolute;top:0;right:100px;
}
.col3{width:100px;height:500px;background: #F60707;
position: absolute;top:0;right:0;
}
</style>
</head>
<body>
<div class="main">
<div class="col0">col0=100px</div>
<div class="col1">col1=自适应宽度<br />
在就像字的通用结构无非有独体字(大 )、左右结构(纺)、左中右结构(树)、 上下结构(雷)、上中下结构(意)、 半包围结构(同)、 全包围结构(围 )、品字形结构(晶)等这几种,就我现在的认识范畴,大齐把通用的布局结构化为一列布局、两列布局、及混合布局这三种,其余复杂的布局均是由这三种结构嵌套形成。
</div>
<div class="col2">col2=200px</div>
<div class="col3">col3=100px</div>
</div>
</body>
</html>

进一步优化:若想实现col0与col1间隔50px,col1与col2间隔100px,该怎样实现呢?

a、界面展示:


b、代码:(蓝色部分即为修改的代码,将右边从300px变为400px,将左边从100px改为150px,大家若不明白,可搜索学习margin的相关使用方法)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>四列布局</title>
<style type="text/css">
body{text-align: center;font-size: 20px}
div{margin: 0;padding: 0}
.main{width:800px;height:500px;margin: 0 auto;position:relative;}
.col0{
width:100px;height:500px;background: #EFCDDA;
position: absolute;top:0;left:0;
}
.col1{height:500px;background: #F66BAC;margin: 0 400px 0 150px}
.col2{width:200px;height:500px;background: #F14646;
position: absolute;top:0;right:100px;
}
.col3{width:100px;height:500px;background: #F60707;
position: absolute;top:0;right:0;
}
</style>
</head>
<body>
<div class="main">
<div class="col0">col0=100px</div>
<div class="col1">col1=自适应宽度<br />
在就像字的通用结构无非有独体字(大 )、左右结构(纺)、左中右结构(树)、 上下结构(雷)、上中下结构(意)、 半包围结构(同)、 全包围结构(围 )、品字形结构(晶)等这几种,就我现在的认识范畴,大齐把通用的布局结构化为一列布局、两列布局、及混合布局这三种,其余复杂的布局均是由这三种结构嵌套形成。
</div>
<div class="col2">col2=200px</div>
<div class="col3">col3=100px</div>
</div>
</body>
</html>

三、混合布局

a、页面展示


b、代码(其实就是将一列布局和两列布局的结构嵌套而成,就像“嵌套”一词中的”嵌“字,整体为上下结构,但下面又可拆解为左右结构)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>混合布局</title>
<style type="text/css">
body{margin:0;padding: 0}
div{text-align: center;font-size: 30px}
.top{height:100px;background: #59EAF2;}
.head,.main,.foot{width:800px;margin: 0 auto;}
.head{height: 100px;background: #3355DA;}
.main,.left,.right{height:500px;}
.left{width:30%;background: #42D47A;float: left;}
.right{width:70%;background: #9ADA24;float:right;}
.foot{height:50px;background: #F66418}
</style>
</head>
<body>
<div class="top">
<div class="head">head</div>
</div>
<div class="main">
<div class="left">left</div>
<div class="right">right</div>
</div>
<div class="foot">foot</div>
</body>
</html>

拓展:尝试实现以下界面


代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>混合布局v1</title>
<style type="text/css">
body{margin:0;padding: 0}
div{text-align: center;font-size: 30px}
.top{height:100px;background: #59EAF2;}
.head,.main,.foot{width:800px;margin: 0 auto;}
.head{height: 100px;background: #3355DA;}
.main,.left,.right{height:500px;}
.left{width:30%;background: #42D47A;float: left;}
.right{width:70%;background: #9ADA24;float:right;}
.foot{height:50px;background: #F66418}
.r_top{height:50px;background: #DE24C6;}
.r_main,.r_left,.r_mid,.r_right{height:450px;}
.r_main{position: relative;}
.r_left{width:100px;background: #611BBF;position: absolute;top:0;left:0;}
.r_mid{background: #E60B7A;margin: 0 130px 0 130px}
.r_right{width:100px;background: #881D1B;position: absolute;top:0;right:0;}
</style>
</head>
<body>
<div class="top">
<div class="head">head</div>
</div>
<div class="main">
<div class="left">left</div>
<div class="right">
   <div class=r_top>r_top</div>
<div class="r_main">
<div class="r_left">r_left</div>
<div class="r_mid">r_mid</div>
<div class="r_right">r_right</div>
</div>
</div>
</div>
<div class="foot">foot</div>
</body>
</html>

那么,布局就学习到这啦奋斗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值