博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html&css布局实践——IFE task 03(三列布局)
阅读量:5793 次
发布时间:2019-06-18

本文共 2200 字,大约阅读时间需要 7 分钟。

====任务描述====

【原链接】http://ife.baidu.com/task/detail?taskId=3

任务目标

  • 掌握HTML/CSS布局的概念
  • 掌握盒模型的概念
  • 掌握position与float的概念以及在布局时的用法

任务描述

  • 使用 HTML 与 CSS 按照  实现三栏式布局。
  • 左右两栏宽度固定,中间一栏根据父元素宽度填充满,最外面的框应理解为浏览器。背景色为 #eee 区域的高度取决于三个子元素中最高的高度。

任务注意事项

  • 尝试 position 和 float 的效果,思考它们的异同和应用场景。
  • 注意测试不同情况,尤其是极端情况下的效果。
  • 图片和文字内容请自行替换,尽可能体现团队的特色。
  • 调节浏览器宽度,固定宽度和自适应宽度的效果始终符合预期。
  • 改变中间一栏的内容长度,以确保在中间一栏较高和右边一栏较高时,父元素的高度始终为子元素中最高的高度。
  • 其他效果图中给出的标识均被正确地实现。

====总结====

总结任务:三列布局,其中左右两列宽度固定,而中间一列宽度自适应

1. 绝对定位:

如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

如下面代码可以实现div元素相对于浏览器窗口向右移动100px,向下移动50px。

#div1{    width:200px;    height:200px;    border:2px red solid;    position:absolute;    left:100px;    top:50px;}

2. 相对定位:

如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。

如下代码实现相对于以前位置向下移动50px,向右移动100px;

#div1{    width:200px;    height:200px;    border:2px red solid;    position:relative;    left:100px;    top:50px;}

3. 固定定位:

position:fixed,表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

4.relative和absolute组合使用

使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后,大家有没有想过可不可以相对于其它元素进行定位呢?答案是肯定的,当然可以。使用position:relative来帮忙,但是必须遵守下面规范:

(1)、参照定位的元素必须是相对定位元素的前辈元素:

相对参照元素进行定位

从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。

(2)、参照定位的元素必须加入position:relative;

#box1{    width:200px;    height:200px;    position:relative;        } (3)、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
#box2{    position:absolute;    top:20px;    left:30px;         }

这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。

5. 宽度自适应

(1)若页面中所有的列(div)都宽度自适应,那么可将该div的width属性值设置为百分比的数值。

(2)若页面中是三列布局,其中左右两列宽度固定,而中间一列宽度自适应

  那么可将左右固定列设置为:position:absolute    width:100px(固定值)

  中间一列直接设置左右的margin值即可:margin:0 110px

【注意】

如果此三个列表都是处于一个包裹层中,那么该层一定不能设定具体的width值,并且需要设置position:relative

转载于:https://www.cnblogs.com/mmmaolj/p/5916668.html

你可能感兴趣的文章
leetcode 116- Populating Next Right Pointers in Each Node
查看>>
php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期...
查看>>
Linux组件封装(四)使用RAII技术实现MutexLock自动化解锁
查看>>
HTML5应用——简易播放器
查看>>
Testbench文件编写纪要(Verilog)
查看>>
mysql多实例部署
查看>>
转:Java 异常结构体系
查看>>
关于Vue vue-cli安装遇到的一些问题
查看>>
我的Java开发学习之旅------>使用循环递归算法把数组里数据数组合全部列出
查看>>
“PDF修改器 2.5.2.0[强大的免费PDF文件编辑软件]”乃是假冒软件
查看>>
一些有用的github收藏(持续更新中...)
查看>>
位操作
查看>>
关于hostapd的调试
查看>>
modsign: could't get uefi db list
查看>>
Firefly Mutil-Boot多系统安装启动程序发布
查看>>
20145240《Java程序设计》课程总结
查看>>
Python paramiko模块
查看>>
设计模式
查看>>
(不)扩展内置原型((Not) Augmenting Built-in Prototypes)
查看>>
W驱开技详.过滤驱动测试
查看>>