当前位置: 首页 > news >正文

14章 变宽度网页布局剖析于制作

首先要使内容的整体宽度随着浏览器窗口的变化而变化,因此中间的container容器中的左右两列的总宽度也会发生变化。

出现的两种方式
两列按照一定的比例同时变化,还是一列固定,另一列变化。
命名方法:固定宽度记为f   即fixed       变宽度记为l  即liquid
如果1-2-1不居中的两列,左边的为固定宽度,右边的边宽度,可以记为1-(f-l)-1
1.1-2-1等比例变宽布局

#header,#pagefooter,#container{

margin:0 auto;
width:85%;改为比例宽度
}
#content{
float:left;
width:66%;
}
#side{
float:left;
width:33%;
}
content和side的宽度设置为99%,而不是100%避免宽度大于他们容器的总宽度,而使某个div被挤到下一行中。
如果希望精确,可以写成99.9%
要对最大的宽度进行限制。
#header,#pagefooter,#container{
margin:0 auto;
width:85%;
min-width:500px;
max-width:800px;
}
1-2-1单列变宽布局
当有一侧为目录时,而不希望他的宽度发生变化。
      浮动方法
 实现原理  在content未免在套一个div,使它的宽度为100%,和container的宽度相同,然后通过将左侧的margin设置为负的300像素,就使它向左平移了300像素,再将content的左侧margin设置为正的300像素,就实现了100%-300px这个无法表达的宽度
 
代码如下:
#header,#container,#pagefooter{
margin:0 auto;
width:85%;
}
#contentwrap{
margin-left:-300px;
float:left;
width:100%;
}
#content{
margin-left:300px;
}
#side{
float:right;
width:300px;
}
#pagefooter{
clear:both;
}
核心的一点是活动宽度列外面套了一层div  设置为contentwrap
contentwrap的宽度设置为100%宽度,同时将右侧的margin设置为-300px;在content
的里面,以标准流的方式存在。即实现了100%-300px的宽度。
 
如图所示 14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
 
html结构代码
<body>
<div id="header">
<div class="rounded">...这里省略固定结构的代码  圆角框</div>
</div>
 
<div id="container">
<div id="contentwrap">
<div id="content">
<div class="rounded">...这里省略固定结构的代码 圆角框</div>
</div>
</div>//contentwrap结束
<div id="side">
<div class="rounded">...这里省略固定结构的代码 圆角框</div>
</div>//side结束
</div>//container结束
 
<div id="pagefooter">
<div class="rounded">...这里省略固定结构的代码  圆角框</div>
</div>
</div>
</body>

 

1-3-1宽度适应布局
1三列按比例适应宽度;不作介绍
2一列固定,其他两列按照比例适应宽度;
3两列固定,其他一列适应宽度;
 
2一列固定的情况   
14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
 
   outerwrap宽度和container宽度相同,里面的inner以标准刘的方式存在,宽度会自然伸展,由于左侧margin负200,所以宽度就是总卡U年度减去200像素,这样innerwrap里面的navi和content就会以这个新宽度为宽度基准。
#header,#pagefooter,#container{
margin:0 auto;
width:85%;
}
#outerwrap{
float:left;
width:100%;
margin-left:-200px;
}
#innerwrap{
margin-left:200px;
}
#navi{
float:left;
width:40%;
}
#content{
float:right;
width:59.5%;
}
#side{
float:right;
width:200px;
}
#pagefooter{
clear:both;
}
html结构代码省略
1-3-1中间列宽度固定的变宽布局
 
  中间固定列,左右按照比例适应总宽度。常见的两侧的列固定宽度,中间列变化宽度
如图所示
14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客

 

左侧的naviwrap设置为50%的宽度,向左浮动,并通过将左侧margin设置为-150像素,向左平移了150像素。然后再里面的navi中左侧margin设置为150像素,补偿回来这150像素。
接着将content设置为固定宽度,先做浮动,这样就紧贴着navi的边界
最后将sidewrap做与navi部分相似的处理,设置为50%宽度,向左浮动,这是本来宽度已经超过100%,会被挤到下一行,但是将右侧margin设置为-150像素后你就不会超过总宽度了。
实际代码中将其中一个设置为49.9%   一个设置为50%;
css代码如下
#header,#pagefooter,#congtainer{
width:85%;
margin:0 auto;
}

  #naviwrap{

width:50%;
float:left;
margin-left:150px;
}
#navi{
marin-left:150px;
}
#content{
float:left;
width:300px;
}
#sidewrap{
width:49.9%;
float:right;
margin-left:-150px;
}
#side{
margin-right:150px;
}
#pagefooter{
clear:both;
}
 
1-3-1双侧列宽度固定的变宽布局
 
常用的布局方式
14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
 
#header,#pagefooter,#congtainer
{
width:85%;
margin:0 auto;
}
  #side{
width:200px;
float:right;
}
#outerwrap{
width:100%;
margin-left:-200px;
float:left;
}
#innerwrap{
margin-left:200px;
}
#navi{
 
width:150px;
float:left;
}
 
#contentwrap{
float:right;
width:100%;
margin-right:-150px;
}
#content{
margin-right:150px;
}
#pagefooter{
clear:both;
}
 
1-3-1中列和侧列宽度固定的变宽布局
#header,#container,#pagefooter{
margin:0 auto;
width:85%;
}
#navi
{
float:left;
width:150px;
}
#content{
float:left;
width:250px;
}
#sidewrap{
float:right;
margin-right:-400px;
width:100%;
}
#side{
margin-right:400px;
}
#pagefooter{
clear:both;
}
 
边宽度布局方法总结
 
 
14章 变宽度网页布局剖析于制作 - 骡子 - stupidmule@126 的博客
 分列布局背景颜色问题
 

转载于:https://www.cnblogs.com/dongguolei/p/7902874.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 实训之压缩软件
  • HighCharts 特性;Highcharts 环境配置
  • Django - Python3 常用命令
  • 新手对Spring的图解和一点个人理解
  • 项目整体管理
  • 用JDK自带的包来解析XML文件(DOM+xpath)
  • python学习笔记——Day 4
  • 构建自己的知识认知体系
  • LVM
  • 有什么可以免费pdf编辑软件吗
  • bzoj 1022 小约翰的游戏John
  • size();length;length()
  • 基于已构建S2SH项目配置全注解方式简化配置文件
  • Spring Boot 的数据访问:JPA 和 MyBatis
  • js 字符串indexof与search方法的区别
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Babel配置的不完全指南
  • emacs初体验
  • iOS 系统授权开发
  • JavaScript设计模式与开发实践系列之策略模式
  • Java超时控制的实现
  • leetcode46 Permutation 排列组合
  • magento2项目上线注意事项
  • PAT A1017 优先队列
  • Rancher-k8s加速安装文档
  • React组件设计模式(一)
  • 分布式熔断降级平台aegis
  • 面试遇到的一些题
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 小李飞刀:SQL题目刷起来!
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #1015 : KMP算法
  • #pragma预处理命令
  • #QT 笔记一
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四)软件性能测试
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .bat批处理(一):@echo off
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net MySql
  • .Net 高效开发之不可错过的实用工具
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C#⾯试题汇总系列:⾯向对象
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • [ C++ ] STL_list 使用及其模拟实现
  • [ linux ] linux 命令英文全称及解释
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AIGC 大数据基础]hive浅谈