热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS布局(弹性盒模型)

一、弹性盒模型介绍1、弹性盒模型介绍—基础知识弹性盒模型(FlexibleBox或Flexbox)是一个CSS3新增布局模块,官方称为CSSFlexibleBoxLayoutMod

一、弹性盒模型介绍

1、弹性盒模型介绍 — 基础知识

  弹性盒模型( Flexible Box  Flexbox)是一个CSS3新增布局模块,官方称为CSS Flexible Box Layout Module,用于实现容器里项目的对齐、方向、排序(即使在项目大小位置、动态生成的情况)。弹性盒模型最大的特性在于,能够动态修改子元素的宽度和高度,以满足在不同尺寸屏幕下的恰当布局。

  *弹性容器(flex container)

  *弹性子元素(flex item)

  *轴分为主轴(main axis) 侧轴(cross axis),弹性子元素沿着主轴依次排列,侧轴垂直于主轴。

  *弹性容器的主轴开始(main start)、主轴结束(main end)和侧轴开始(cross start)、侧轴结束(cross end) 代表了弹性子元素排列的起始和结束位置。

    技术分享

2、弹性盒模型介绍 — 属性分类

  (1)弹性容器属性

    技术分享

  (2)弹性子元素属性

    技术分享

3、属性详解

  (1)语法:flex-direction:row | row-reverse | column | column-reverse
  含义:设置主轴方向,确定弹性子元素排列方式

  技术分享

  技术分享

  (2)语法: flex-wrap:nowrap | wrap | wrap-reverse
    含义:设置弹性子元素超出弹性容器范围时是否换行

    技术分享

    技术分享

  (3)语法:flex-flow:[ flex-direction ] || [ flex-wrap ]
    含义:复合属性(flex-direction和flex-wrap),设置弹性子元素排列方式

  (4)语法:justify-content:flex-start | flex-end | center | space-between | space-around
    含义:设置弹性子元素主轴上的对齐方式

  技术分享

  技术分享

  (5)语法:align-items:flex-start | flex-end | center | baseline | stretch
    含义:设置弹性子元素侧轴上的对齐方式

  技术分享

  技术分享

  (6)语法:align-content:flex-start | flex-end | center | space-between | space-around | stretch
    含义:侧轴有空白且有多行时,设置弹性子元素侧轴上的对齐方式

  技术分享

技术分享

  (7)语法:order:
    含义:设置弹性子元素的顺序,数值小的排在前面,可以为负值。

技术分享

  (8)语法: flex-grow:
    含义:设置弹性子元素的扩展比率,不允许为负值,默认值为0。 根据弹性盒子元素所设置的扩展因子作为比率来分配剩余空间

技术分享

  (9)语法: flex-shrink:
    含义:设置弹性子元素的收缩比率,不允许为负值,默认值为1
      根据弹性盒子元素所设置的扩展因子作为比率来收缩空间

技术分享

  (10)语法 : flex-basis: |  | auto

  含义 : 设置弹性子元素的伸缩基准值,不允许为负值。       默认值为auto,无特定宽度(高度)。

   (11)语法:flex:none | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ]
    含义:复合属性,设置弹性子元素的如何分配空间。

  (12)语法:align-self:auto | flex-start | flex-end | center | baseline | stretch
    含义:设置弹性子元素的在侧轴上的对齐方式,与align-item的相同。设置某个弹性子元素的独立对齐方式。

  技术分享


二、Flexbox菜单项目实战

 1、要求:

    大屏幕下:

  技术分享

    中屏幕下:

  技术分享

    小屏幕下:

  技术分享

2、body部分:

技术分享
1 <ul class="menu">
2     <li><a href="#">HTMLa>li>
3     <li><a href="#">CSSa>li>
4     <li><a href="#">Javascripta>li>
5     <li><a href="#">Sassa>li>
6     <li><a href="#">Rubya>li>
7     <li><a href="#">Mongoa>li>
8 ul>
技术分享

3、css样式部分:

技术分享
 1 <style>
 2         *{
 3             padding: 0;
 4             margin: 0;
 5             border: none;
 6         }
 7         html{
 8             font-size: 12px;
 9         }
10         .menu{
11             width: 100%;
12             border: 1px solid rgba(0,0,0,.1);
13             display: flex; /*激活弹性布局*/
14             flex-flow: row wrap;  /*设置主轴方向以及是否换行*/
15         }
16         .menu li{
17             list-style-type: none;
18             text-align: center;
19             height: 40px;
20             line-height: 40px;
21             flex: 1 1 100%;
22         }
23         .menu li:nth-child(1){
24             background-color: #39ADD1;
25         }
26         .menu li:nth-child(2){
27             background-color: #3079AB;
28         }
29         .menu li:nth-child(3){
30             background-color: #982551;
31         }
32         .menu li:nth-child(4){
33             background-color: #E15258;
34         }
35         .menu li:nth-child(5){
36             background-color: #CC6699;
37         }
38         .menu li:nth-child(6){
39             background-color:  #52AC43;
40         }
41         .menu a{
42             text-decoration: none;
43             color: #fff;
44             font-size: 2rem;
45         }
46          @media (max-width: 768px) {
47             .menu{
48                 flex-wrap: wrap;
49             }
50             .menu li{
51                 flex: 1 1 50%;
52             }
53          }
54           @media (max-width: 480px) {
55             .menu{
56                 flex-direction: column;
57             }
58             .menu li{
59                 flex: 1 1 100%;
60             }
61          }
62     
技术分享

三、媒体查询解析

1、基础知识

  响应式布局(Responsive Web design)指的是在网页开发过程中针对不同设备开发一套网站,然后根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)自适应地显示不同布 局。 响应式布局的核心是媒体查询。媒体查询( Media Query )是获取用户行为和设备环境、然后提供相应的CSS规则的过程的简称。 媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件。

 2、基础语法

  技术分享

  语法  :[[‘,‘ ]*]?  :[only | not]? [and ]* | [and ]*  :‘(‘[:]?)’

    <表达式>: ‘(‘<媒体特征>[: <值>]?’)’  <媒体查询>: [only | not]?  <媒体类型> [and <表达式>*] | <表达式>[and <表达式>]*  <媒体查询列表>:  [<媒体查询>[,<媒体查询>]*]?

3、媒体特征

  技术分享

4、媒体类型

技术分享

5、媒体查询规则

技术分享

6、媒体查询解析— 屏幕尺寸

  常用的屏幕尺寸从小到大如下所示:
    *老智能机:    320px-480px
    *智能手机: ≥ 480px
    *平板电脑: ≥ 768px
    *中等屏幕(桌面显示器): ≥ 992px
    *大屏幕(大桌面显示器): ≥1200px
  实现过程中,遵循移动优先原则

CSS布局(弹性盒模型)


推荐阅读
  • 22.Container With Most Water(能装最多水的容器)
    thecontainercontainsthemos ... [详细]
  • AsyncDisplayKit2.0教程(下)
    AsyncDisplayKit2.0Tutorial:AutomaticLayout原文:AsyncDisplayKit2.0Tutorial:Automatic ... [详细]
  • docker整体了解
    Docker是一个基于LXC技术构建的容器引擎,基于Go语言开发,遵循Apache2.0协议开源Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移 ... [详细]
  • 1、对于List而言,要不然就使用迭代器,要不然就从后往前删除,从前往后删除会出现角标越界。因为我List有两个remove方法,一个是int作为形参(删除指定位置的元素),一个是 ... [详细]
  • iOS Auto Layout Demystify
    BookDescripterAutoLayouttransformsthewayyoucreateiOSuserinterfaces.Asflexibleasitispowerfu ... [详细]
  • python 解决多张相同的excel取某一些数据合同到一张EXCEL
    这样的表单有几百张把姓名和从事专业类别代码的值取出合并到一张总表里importpandasaspdimportos#第一步读取文件储存在是s列表中pathD:001#文件夹目录fi ... [详细]
  • 稀松数组
    稀松数组1.稀松数组什么?在一个数组中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该数组为稀疏数组;如图,一个5*5的数组arr上只有3个有效数值 ... [详细]
  • 九宫格计算. ... [详细]
  • 论文阅读及复现 | Improved Semantic Representations From TreeStructured Long ShortTerm Memory Networks
    两种形式的LSTM变体Child-SumTree-LSTMsN-aryTree-LSTMshttps:paperswithcode.compaperimproved-semanti ... [详细]
  • 看这里,教你如何快速将pdf文件翻译成中文
    因为网上下载的PDF资料,往往掺杂着一些英文,所以中英文翻译是一件很平常的事,毕竟不是每个人的英文都那么好,轻轻松松的就能够看完一篇英文的文件,那么,我们就要寻找翻译工具来帮助我们 ... [详细]
  • 以SOA服务为导向的信息系统构建是通过有计划地构建信息系统时,一种简单而有柔性的方法,就是组件化与服务导向架构。过去的信息系统,是在使用者需要新功能时才开发的,也就是响应不同时 ... [详细]
  • 简单动态字符串redis里面很多地方都用到了字符串,我们知道redis是一个键值对存储的非关系型数据库,那么所有的key都是用字符串存储的,还有字符串类型,这些都是用字符串存储的 ... [详细]
  • 例子如Table表有性别字段,1代表男2代表女、3代表中性、还有没填就代表未说明selectid,decode(sex,'1','男', ... [详细]
  • 接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对 ... [详细]
  • C#的Type对象的简单应用
    通过Type对象可以获取类中所有的公有成员直接贴代码:classMyClass{privatestringname;privateintid;publicstringcity;pu ... [详细]
author-avatar
mobiledu2502899727
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有