• 网页布局--自适应


    CSS很多人都会写也用的很溜,毕竟这是一门描述性语言,不需要太多的语法,算法知识,上手非常容易,因此遭到很多人轻视,但用好CSS真的不是一件很容易的事,常见的自适应布局就很考验技能,你不光要会写,还得懂内在原理。

    前端面试都会考到圣杯布局,以前写过很多次,但一直没做个总结,以至于每次别人问都不能很好的表述,下面做个整理,先来看看HTML,CSS结构

    方法一:

    html,body{ margin:0px; padding: 0px; height: 100%; }
    body div{ height: 100%; }
    .left{  150px; border:1px solid red; float: left; }
    .right{  150px; border:1px solid red; float: right; }
    .main{ background-color: gray; overflow: hidden; }
    
    <div class="left">left</div>
    <div class="right">right</div>
    <div class="main">main</div><!-- 一定要放在最后 -->
    

    这里用到几个知识点:

    1、浮动元素会以某种方式脱离文档流(absolute,fixed定位也会导致元素脱离文档流),不过还是会影响布局(表现就是内容会环绕该元素)

    2、如果源文档中一个浮动元素之前出现另一个元素,浮动元素的顶部不能比包含该元素所生成框的任何行框的顶端更高

    3、BFC区域不会和float 重叠

    有了以上几点,就能明白用户代理是如何布局的

    首先.left元素往左浮动,然后.right往右浮动,因为浮动会导致元素脱离文档流,.mian元素就无视他们的存在,左右边界直接延伸到两个浮动元素的下面(我们要的显示不是这种延伸),然后给.main元素触发BFC,使.main区域不和float重叠,三栏自适应布局就此生成。

    这里要特别强调的是.main元素一定要放在最后,第二条知识点已经明确说明,不这样放会导致其中一个浮动元素出现在.main元素的下方

    方法二

    html,body{ margin:0px; padding: 0px; height: 100%; position: relative; }
    body div{ height: 100%; }
    .left{  150px; border:1px solid red; float: left; }
    .right{  150px; border:1px solid red; float: right; }
    .main{ background-color: gray; overflow: hidden; position: absolute; left: 152px; right: 152px; }
    
    <div class="left">left</div>
    <div class="main">main</div>
    <div class="right">right</div>
    

    这种方法就简单多了也很好理解,用到了定位的相关知识点

    1、absolute元素会脱离文档流

    2、left值定义了定位元素左外边距边界与其包含块左边界之间的偏移

    3、right值定义了定位元素有外边距边界与其包含块右边界之间的偏移

    给.mian元素left,right偏移,width默认值为auto,这里不做设置,由用户代理进行计算,从而实现三栏自适应布局

  • 相关阅读:
    git常用命令笔记(二)
    Git for Windows安装和从Github下载工程
    为什么Mac或者Windows经常要配置环境变量?
    javagradle安装gradle的两种方式以及配置环境变量
    Macmac安装和使用homebrew
    收藏之关键词[git]搜索结果
    MAC电脑配置MYSQL JAVA MAVEN环境变量
    多测师讲解 python+selenium自动化测试讲解线性脚本(2) 高级讲师肖sir
    多测师讲解__app面试指导课_高级讲师肖sir
    多测师讲解__linux_高级讲师肖sir
  • 原文地址:https://www.cnblogs.com/diantao/p/6108182.html
Copyright © 2020-2023  润新知