移动端的布局

一.流式布局(百分比)

定义

通过盒子的宽度设置成百分比来根据屏幕的宽度进行伸缩。

举例:

屏幕里一行中两个盒子各占一半显示,即50%。

<style>
    div{
        width:50%;
        height: 100px;
        background-color: pink;
        float: left; 
    }
    .two{
        background-color: black ;
    }
</style>
<body>
    <div></div>
    <div class="two"></div>
</body>

 若盒子一行显示不下,则换行显示。

<style>
    div {
        box-sizing: border-box;
        width: 50%;
        height: 100px;
        border: 1px black solid;
        background-color: pink;
        float: left;
    }
</style>

<body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</body>

二.flex布局

优点:

          1.操作方便,布局极为简单,移动端应用很广泛

           2.PC端浏览器支持情况较差

           3.IE11或更低版本,不支持或仅部分支持

布局原理:

              通过给父盒子添加flex属性,来控制子盒子的位置和排列方式。

!!

任何一个容器都可以指定为flex 布局。

添加flex布局后,可以给行内元素设置宽度和高度

举例:

让div中span在一行显示。

<style>
    div {
        display: flex;
        width: 300px;
        height: 300px;
        background-color: black
    }

    div span {
        width: 100px;
        height: 100px;
        background-color: pink;
    }
</style>
</head>

<body>
    <div>
        <span>a</span>
        <span>b</span>
        <span>c</span>
    </div>
</body>

1.父项属性(对父项设置

   flex-direction:设置主轴的方向

   决定项目的排列方向,看flex-direction设置谁为主轴,剩下的就是侧轴。

   默认主轴方向就是×轴方向,水平向右,侧轴方向就是y 轴方向,水平向下

属性值

说明

row从左到右(默认值)

row-reverse

从右到左
column从上到下
column从下到上

   justify-content:设置主轴上的子元素排列方式

   使用之前要确定好主轴是哪个

属性值说明

flex-start

从头部开始(默认),主轴X:从左向右

flex-end从尾部开始
center主轴居中对齐。主轴X轴:水平居中
space-around平分剩余空间

space-between

 先两边贴边 再平分剩余空间

 flex-wrap:设置子元素是否换行

默认情况下,项目都排在一条线上,不换行。

属性值说明
nowrap不换行(默认)
wrap换行

align-items:设置侧轴上的子元素排列方式(单行)

侧轴默认为Y轴,子项为单项的时候使用

属性值说明
flex-start从上到下
flex-end从下到上
center垂直居中
stretch拉伸(默认)子盒子不要给高度

align-content:设置侧轴上的子元素的排列方式(多行)

用于子项出现换行的情况

属性值说明
flex-start侧轴头部开始排列(默认)
flex-end侧轴尾部开始排列
center

侧轴中间显示

space-around侧轴上平分剩余空间
space-between侧轴上先分布在两边,再平分剩余空间
stretch设置子项元素高度平分父元素高度

!!

多行用align-content 

 单行用align-items

flex-flow

是flex-direction 和 flew-warp的复合属性

把设置主轴方向和是否换行(换列)简写。

flex-flow : row warp;

2.子项属性

flex属性:定义子项目分配剩余空间

用flew来表示占多少份数

.item{
     flex:<number>;
}

align-self:控制子项自己在侧轴上的排列方式

允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items

默认为auto(继承父元素的align-end,没有父元素等同于stretch)

span:nth-child(n){
                 align-self: flex-end;
 
}
order:定义项目的排列项目

数值越小,排列越靠前(默认为0,与z-size不同)

 .item{
    order: <numder>;
   }

若想让某盒子提前显示,可改为order:-1。

三.rem适配布局

rem单位

定义:

rem是一个相对单位,基准是html元素的字体大小

优点:

很好的控制整个页面的元素大小

html{
font-size:10px;
}
div{
font-size:2rem;
}

根HTML大小为12px,此时div字体大小为2*12=24px。

技术方案1:less+媒体查询+rem

1.假设把屏幕分成若干等分(15/20/10/...)

2.每一份作为HTML字体大小(屏幕大小/份数)

3.页面元素大小利用rem单位与媒体查询,不同屏幕下页面元素可等比例缩放

<style>
    @media screen and (min-width: 320px) {
        html {
            font-size: 21px;
            /* 320/15 */
        }
    }

    @media screen and (min-width:500px) {
        html {
            font-size: 51px;
            /* 500/15 */
        }

    }
</style>
</head>

<body>
    <div>
        666
    </div>
</body>

技术方案2:flexible.js+rem(简单)

原理:把当前设备划分为10份

1.我们要确定当前设备的HTML文字大小,不需要写不同屏幕下的媒体查询

比如当前设计稿为750px,我们需要把html文字大小设置为75px(750/10),用rem写页面元素即可

四.响应式布局

响应式开发

原理:

使用媒体查询针对不同宽度的设备进行布局和样式的设置

响应式布局容器:

需要一个父级作为布局容器,配合子级来实现变化效果。

通过媒体查询来改变布局容器的大小,再改变子元素的排列方式。

Bootstrap

定义:

目前最受欢迎的前端框架,有一套比较完整的网页功能解决方案,而且控制权再框架本身,

有预制样式库,组件和插件。使用者要按照框架所规定的某种规范进行开发。

使用:

1.创建文件夹结构

2.创建html骨架结构

3.引入相关样式文件

4.书写内容

bootstrap栅格选项参数

栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局。

超小屏幕

<768px

小屏设备

>=768px

中等屏幕

>=992px

宽屏设备

>=1200px

.container最大宽度自动(100%)750px970px1170px
类前缀.col-xs-.col-sm-,col-md-

.col-lg-

                        列数(column)                                     12

按照不同屏幕划分为1-12等份

row可以去除父容器作用15px的边距

xs-extra small:超小;sm-small:小;md-medium:中等;lg-large:大。

列(column)大于12,多余的所在的元素将被作为一个整体另起一行排列

每一列默认有左右15像素的padding

  <div class="row">
        <div class="col-lg-6">1</div>
        <div class="col-lg-2">2</div>
        <div class="col-lg-2">3</div>
        <div class="col-lg-2">4</div>
    </div>

栅格系统列嵌套

一个列内再分成若干份小列 可以通过添加一个新的.row 元素和一系列.col - sm -元素到已经存在的.col - sm -元素内。

<!-﹣列嵌套﹣->
< div class =" col - sm -4">
       < div class =" row ">
          < div class =" col - sm -6">小列</ div >
          < div class =" col - sm -6">小列</ div >
       </ div >
</ div >

栅格系统列偏移

使用.col - md - offset -类可以将列向右侧偏移。这些类实际是通过使用选择器为当前元素增加了左侧的边距( margin )。
 

<!--列偏移-->
< div class =" row ">
   < div class =" col - lg -4">1</ div >
   < div class =" col - lg -4  col - lg - offset -4">2</ div >
</ div >

  

栅格系统列排序

通过使用.col - md - push -和.col - md - pull -类就可以很容易的改变列( column )的顺序。

<!--列排序-->
< div class =" row ">
    < div class =" col - lg -4 col - lg - push -8">左侧</ div >
    < div class =" col - lg -8 col - lg - pull -4">右侧</ div >
</ div >

响应式工具

类名超小屏小屏中屏大屏
.hidden-xs隐藏可见可见可见
.hidden-sm可见隐藏可见可见
.hidden-md可见可见隐藏可见
.hidden-lg可见可见可见隐藏

与之相反的,是visible-xs  visible-sm  visible-md  visible-lg是显示某个页面内容。

Bootstrap 其他(按钮、表单、表格)请参考 Bootstrap 文档。

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS移动布局练习是用于设计和开发适应移动设备的网页的练习。移动设备的屏幕尺寸较小,需要针对不同尺寸的设备进行响应式布局,以保证页面在不同设备上的显示效果和用户体验。 在进行CSS移动布局练习时,需要注意以下几点: 1. 使用媒体查询:媒体查询是CSS中的一种技术,它可以根据设备的屏幕尺寸和其他特性来调整页面的布局和样式。我们可以使用@media规则来设置不同屏幕尺寸的样式,以实现响应式布局。 2. 弹性盒子布局:弹性盒子布局(Flexbox)是CSS中一种用于创建灵活的、自适应的布局的技术。它可以使元素在容器内自动调整大小和位置,适应不同尺寸的屏幕。使用弹性盒子布局可以更方便地实现移动页面的布局。 3. 隐藏不必要的元素:在移动页面中,由于屏幕尺寸有限,可能需要隐藏一些不必要的元素,以提升页面的加载速度和用户体验。可以使用CSS的display属性来隐藏或显示元素。 4. 触摸事件:移动设备上常用的交互方式是通过触摸屏幕来实现的。在移动布局练习中,可以利用CSS的伪类选择器(:hover)和触摸事件来添加交互效果,如改变按钮的背景颜色或是显示隐藏的菜单等。 通过不断练习和实践,可以提高在移动布局方面的能力和经验,更好地适应移动设备的页面设计和开发工作。同时,学习和了解最新的CSS技术和移动设计趋势也是很重要的,以便在实践中使用到新的技术和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值