zoukankan      html  css  js  c++  java
  • html页面布局

       布局的常用方法有几下几种

    一,float布局

    float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。

    浮动元素会生成一个块级框,而不论它本身是何种元素。

    属性值:

    float:left        元素向左浮动。

    float:reght     元素向右浮动。

    float:none     默认值。元素不浮动,并会显示在其在文本中出现的位置。

    float:inherit   规定应该从父元素继承 float 属性的值。

    float案例:

     <div style="100px; height: 40px; background-color: black;float: right;"> </div>
           <div style="100px; height: 40px; background-color: #FF0000;float: left;"> </div>
           <div style="  100px; background-color: #0000FF; height: 40px; float: left;"> </div>

    效果:(如果不用浮动div块将会一次垂直往下排列)浮动后的块元素可以用magin或pading来留白修饰来使其美观。

    二、absolute布局

    absolute译为绝对的,absolute是postion属性一个属性值。当一个元素使用绝对定位时,这个元素将不受页面的布局影响

    可以根据自己的需求来改变其位置,来完成一些不规则的页面布局:

    属性值:

    postion:absolute     生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

    postion:fixed           生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

    postion:relative        生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

    postion:static           默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

    postion:inherit          规定应该从父元素继承 position 属性的值。

    absolute 中有一个值的注意的地方 相对于 static 定位以外的第一个父元素进行定位  在使用绝对定位时要注意他父元素数的定位,假若对父元素没有要求

    可以给父元素设置一个相对定位relative。对于新手来说,定位之间的切换,父级和下一级之间的关系常常扰乱我们(我就是这样)所以要勤加练习更好的

    掌握 。

    absolute 案例:

    <style type="text/css">
                .div1{
                    width: 100px;
                    height: 40px;
                    background-color: #FF0000;
                    position: absolute;
                    top: 20px;
                    left: 30px;
                }
                .div2{
                    width: 100px;
                    height: 40px;
                    background-color: #0000FF;
                }
            </style>
        </head>
        <body>
           <div class="div1"> </div>
           <div class="div2"> </div>
           <div class="div3"> </div>
        </body>

    效果:(使用绝对定位将红色块定位到距离上边框20px左边框30px)如果想让蓝色的div块在上面,可以用在蓝色样式加绝对定位用z-index:1来设置

                         

     三、flex弹性布局

            弹性布局东西太多不写了直接看别人的博客吧我看着蛮好   http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

    四、table布局 (链接:https://blog.csdn.net/Bessicxie/article/details/78572424)

          Table布局的缺点是比其它html标记占更多的字节,会阻挡浏览器渲染引擎的渲染顺序,会影响其内部的某些布局属性的生效,

    优点就是用table做表格是完全正确的

    语法:display:table;

    属性:常见   display:table相当于“table”标签;display:table-row相当于“tr”标签;display:table-cell相当于“td”标签;

     案例:

     五、grid布局(链接:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html

    内容来源  作者:_leonlee

                     链接:https://www.jianshu.com/p/d183265a8dad
                     来源:简书

    作为小白的我还是第一次来了解grid布局,刚刚百度了一下子看了几篇博文,了解到这是一个非常nb的东西

    简介
             CSS网格布局(又称“网格”),是一种二维网格布局系统。CSS在处理网页布局方面一直做的不是很好。一开始我们用的是table(表格)布局,然后用float(浮动),position(定位)和inline-block(行内块)布局,但是这些方法本质上是hack,遗漏了很多功能,例如垂直居中。后来出了flexbox(盒子布局),解决了很多布局问题,
    但是它仅仅是一维布局,而不是复杂的二维布局,实际上它们(flexbox与grid)能很好的配合使用。Grid布局是第一个专门为解决布局问题而创建的CSS模块,2012
    年11月06日成立草案
              使用Grid布局非常简单,你只需要给容器(container)定义:display:grid,并设置列(grid-template-columns)和 行(grid-template-rows)的大小,然后用grid-column和grid-row定义容器子元素(grid-item项目)的位置。与flexbox布局类似,一开始项目的排列顺序并不重要,可以放置在容器的任何位置,这也使得你非常容易通过媒体查询重新排列你的项目。想象一下,当你定义整个页面的布局时,你只需要几行CSS就可以完成页面重排以便适应各种屏幕宽度,这得有多么神奇!
    好东西总是来的晚,不要焦躁,不要沮丧。活好每一天,自然就等到了。
    目前浏览器还不支持Grid布局,IE10和IE11支持老的语法。如果你想体验Grid布局的强大,推荐使用开通过“体验新功能”的Chrome, Opera 或 Firefox, Chrome:打开浏览器,输入chrome://flags,找到"experimental web platform features",启用并重启浏览器;Opera:输入opera://flags,与Chrome一样;Firefox:输入layout.css.grid.enabled。
    属性:
    1. display: grid | inline-grid | subgrid       
                grid: 生成块级网格
                inline-grid: 生成行内网格
                subgrid: 如果网格容器本身是网格项(嵌套网格容器),此属性用来继承其父网格容器的列、行大小。
    2. grid-template-columns: <track-size> ... | <line-name> <track-size> ... ;
                 track-size: 轨道大小,可以使用css长度,百分比或用分数(用fr单位)。
                line-name: 网格线名字,你可以选择任何名字。
    3.grid-template-areas
                 grid-area-name: 网格项的grid-area属性值(名字)
                ‘.’ : 空网格单元
                none: 不定义网格区域
    4. grid-column-gap:<line-size>; 和 grid-row-gap: <line-size> 
              line-size: 网格线间距,设置单位值。
    5. grid-gap:<grid-row-gap> <grid-column-gap>;
             是grid-column-gap 和 grid-row-gap简写。
    6. justify-items: start | end | center | stretch(默认) ;
             start: 左对齐
             end: 右对齐。
             center: 居中对齐。
            stretch: 填满(默认)
    7. align-items: start | end | center | stretch ;
             start: 顶部对齐。
             end: 底部对齐。
             center: 居中对齐。
             stretch:填满(默认)。
    此处省略一万字.....................
        grid 内容原文链接 (链接  https://www.jianshu.com/p/d183265a8dad)
    本来就想写刚刚会的两个的,但是一百度居然有这么多我没用过的布局,所以记下来留个印象,好歹以后有点印象
     内容若侵权请告知
  • 相关阅读:
    php and web service with wsdl
    QT creator出现 no executable specified时解决办法
    ECShop 2.x 3.0代码执行漏洞分析
    关于QtCharts中的映射器与模型的使用
    QT 异步函数转为同步函数的方法
    Win7+Qt5.6.0(64位)+msvc2015编译器 环境配置
    SMTP用户枚举原理简介及相关工具
    Android系统广播机制存在漏洞,恶意软件可绕过安全机制跟踪用户
    Qt 维护工具MaintenanceTool.exe 使用
    漏洞预警 | ECShop全系列版本远程代码执行高危漏洞
  • 原文地址:https://www.cnblogs.com/2979100039-qq-con/p/12676372.html
Copyright © 2011-2022 走看看